[media] rtl2832: wrap DVBv5 BER to DVBv3
authorAntti Palosaari <crope@iki.fi>
Sun, 14 Dec 2014 13:10:22 +0000 (10:10 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 3 Feb 2015 18:07:22 +0000 (16:07 -0200)
Change legacy DVBv3 read BER to return values calculated by DVBv5
statistics.

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

index 18f1501054380b48767dea0a5d20f186a1112136..90d4f45d9958ff3f33e59be849b3d94db262da9d 100644 (file)
@@ -805,20 +805,11 @@ static int rtl2832_read_snr(struct dvb_frontend *fe, u16 *snr)
 static int rtl2832_read_ber(struct dvb_frontend *fe, u32 *ber)
 {
        struct rtl2832_dev *dev = fe->demodulator_priv;
-       struct i2c_client *client = dev->client;
-       int ret;
-       u8 buf[2];
-
-       ret = rtl2832_rd_regs(dev, 0x4e, 3, 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 void rtl2832_stat_work(struct work_struct *work)
index 5e90cd49d780a46edc86b435c1712873cfe00613..a44614c7af21feb70827f92d27508370cffa86c7 100644 (file)
@@ -36,6 +36,7 @@ struct rtl2832_dev {
        struct dvb_frontend fe;
        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;
        bool i2c_gate_state;