OSDN Git Service

[media] dib8000: upd_demod_gain_period should be u32
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 23 Dec 2014 14:21:12 +0000 (11:21 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 2 Feb 2015 15:21:25 +0000 (13:21 -0200)
X-Patchwork-Delegate: m.chehab@samsung.com
As shown at the code, upd_demod_gain_period is used to write
to two 16-bit registers:
    dib8000_write_word(state, 1946, upd_demod_gain_period & 0xFFFF);
    dib8000_write_word(state, 1947, reg | (1<<14) | ((upd_demod_gain_period >> 16) & 0xFF));

So, it should be declared as u32.

This fixes the following smatch warning:
drivers/media/dvb-frontends/dib8000.c:1282 dib8000_agc_startup() warn: right shifting more than type allows

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/dib8000.c

index 61e31f2..8c6663b 100644 (file)
@@ -1263,7 +1263,8 @@ static int dib8000_agc_startup(struct dvb_frontend *fe)
        struct dib8000_state *state = fe->demodulator_priv;
        enum frontend_tune_state *tune_state = &state->tune_state;
        int ret = 0;
-       u16 reg, upd_demod_gain_period = 0x8000;
+       u16 reg;
+       u32 upd_demod_gain_period = 0x8000;
 
        switch (*tune_state) {
        case CT_AGC_START: