[media] rtl2830: wrap DVBv5 BER to DVBv3
authorAntti Palosaari <crope@iki.fi>
Tue, 9 Dec 2014 13:27:32 +0000 (10:27 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 2 Feb 2015 19:55:51 +0000 (17:55 -0200)
Change legacy DVBv3 read BER to return values calculated by DVBv5
statistics.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/rtl2830.c
drivers/media/dvb-frontends/rtl2830_priv.h

index a02ccdf2fda08bd199eee69c299d893dd87a95e0..0112b3f13a4bcec28c616f3dddccbf16d0a26341 100644 (file)
@@ -596,22 +596,11 @@ static int rtl2830_read_ber(struct dvb_frontend *fe, u32 *ber)
 {
        struct i2c_client *client = fe->demodulator_priv;
        struct rtl2830_dev *dev = i2c_get_clientdata(client);
-       int ret;
-       u8 buf[2];
-
-       if (dev->sleeping)
-               return 0;
-
-       ret = rtl2830_rd_regs(client, 0x34e, buf, 2);
-       if (ret)
-               goto err;
 
-       *ber = buf[0] << 8 | buf[1];
+       *ber = (dev->post_bit_error - dev->post_bit_error_prev);
+       dev->post_bit_error_prev = dev->post_bit_error;
 
        return 0;
-err:
-       dev_dbg(&client->dev, "failed=%d\n", ret);
-       return ret;
 }
 
 static int rtl2830_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
index cdcaacfa89c836596ce7472ae8117e978079b4cc..6636834baf2049ec514b593174352ef07d455081 100644 (file)
@@ -32,6 +32,7 @@ struct rtl2830_dev {
        u8 page; /* active register page */
        struct delayed_work stat_work;
        fe_status_t fe_status;
+       u64 post_bit_error_prev; /* for old DVBv3 read_ber() calculation */
        u64 post_bit_error;
        u64 post_bit_count;
 };