diff options
-rw-r--r-- | drivers/media/dvb/frontends/mt352.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/dvb/frontends/mt352.c b/drivers/media/dvb/frontends/mt352.c index d32dc4de9e7f..cc1bc0edd65e 100644 --- a/drivers/media/dvb/frontends/mt352.c +++ b/drivers/media/dvb/frontends/mt352.c | |||
@@ -462,9 +462,11 @@ static int mt352_read_signal_strength(struct dvb_frontend* fe, u16* strength) | |||
462 | { | 462 | { |
463 | struct mt352_state* state = fe->demodulator_priv; | 463 | struct mt352_state* state = fe->demodulator_priv; |
464 | 464 | ||
465 | u16 signal = ((mt352_read_register(state, AGC_GAIN_1) << 8) & 0x0f) | | 465 | /* align the 12 bit AGC gain with the most significant bits */ |
466 | (mt352_read_register(state, AGC_GAIN_0)); | 466 | u16 signal = ((mt352_read_register(state, AGC_GAIN_1) & 0x0f) << 12) | |
467 | (mt352_read_register(state, AGC_GAIN_0) << 4); | ||
467 | 468 | ||
469 | /* inverse of gain is signal strength */ | ||
468 | *strength = ~signal; | 470 | *strength = ~signal; |
469 | return 0; | 471 | return 0; |
470 | } | 472 | } |