summaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb-frontends
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2014-11-04 00:24:13 +0100
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-11-04 21:19:27 +0100
commit0b0d96281f6d59280094b240ca5046b317ade614 (patch)
tree7e74aff9fb8f72249d98d5d787831301b120397c /drivers/media/dvb-frontends
parent[media] af9033: fix DVBv3 signal strength value not correct issue (diff)
downloadlinux-0b0d96281f6d59280094b240ca5046b317ade614.tar.xz
linux-0b0d96281f6d59280094b240ca5046b317ade614.zip
[media] af9033: fix AF9033 DVBv3 signal strength measurement
Previous patch changes used signal strength firmware register from 0x800048 to 0x80004a in case of AF9033/AF9035 chip. In practice reported values were running upside-down, when RR strength increases reported value decreases and vice versa. That is because of 0x80004a returns values that are dBm scale, but negative RF strength dBm returned as positive number. 0x800048 returns 0-100, like percentage 0x80004a returns 0-255 dBm, without a negative sign So restore old measurement now. Cc: Bimow Chen <Bimow.Chen@ite.com.tw> Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/dvb-frontends')
-rw-r--r--drivers/media/dvb-frontends/af9033.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/media/dvb-frontends/af9033.c b/drivers/media/dvb-frontends/af9033.c
index 2b3d2f06c01b..e3bae7737874 100644
--- a/drivers/media/dvb-frontends/af9033.c
+++ b/drivers/media/dvb-frontends/af9033.c
@@ -867,7 +867,11 @@ static int af9033_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
u8 u8tmp, gain_offset, buf[7];
if (dev->is_af9035) {
- ret = af9033_rd_reg(dev, 0x80004a, &u8tmp);
+ /* read signal strength of 0-100 scale */
+ ret = af9033_rd_reg(dev, 0x800048, &u8tmp);
+ if (ret < 0)
+ goto err;
+
/* scale value to 0x0000-0xffff */
*strength = u8tmp * 0xffff / 100;
} else {