From: Martin Kepplinger Date: Sun, 25 Jan 2015 14:51:35 +0000 (-0300) Subject: [media] stb0899: use sign_extend32() for sign extension X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=2948c01c2b686f03aa50a3a87323604f7ad39578;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git [media] stb0899: use sign_extend32() for sign extension Instead of implement its own logic, use the already-defined one. Signed-off-by: Martin Kepplinger Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb-frontends/stb0899_algo.c b/drivers/media/dvb-frontends/stb0899_algo.c index 93596e0e640b..3012f196e9bd 100644 --- a/drivers/media/dvb-frontends/stb0899_algo.c +++ b/drivers/media/dvb-frontends/stb0899_algo.c @@ -19,6 +19,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include #include "stb0899_drv.h" #include "stb0899_priv.h" #include "stb0899_reg.h" @@ -1490,9 +1491,7 @@ enum stb0899_status stb0899_dvbs2_algo(struct stb0899_state *state) /* Store signal parameters */ offsetfreq = STB0899_READ_S2REG(STB0899_S2DEMOD, CRL_FREQ); - /* sign extend 30 bit value before using it in calculations */ - if (offsetfreq & (1 << 29)) - offsetfreq |= -1 << 30; + offsetfreq = sign_extend32(offsetfreq, 29); offsetfreq = offsetfreq / ((1 << 30) / 1000); offsetfreq *= (internal->master_clk / 1000000);