Change legacy DVBv3 read BER to return values calculated by DVBv5
statistics.
---
 drivers/media/dvb-frontends/rtl2832.c      | 13 ++-----------
 drivers/media/dvb-frontends/rtl2832_priv.h |  1 +
 2 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/drivers/media/dvb-frontends/rtl2832.c 
b/drivers/media/dvb-frontends/rtl2832.c
index b5a8c79..531099b 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -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)
diff --git a/drivers/media/dvb-frontends/rtl2832_priv.h 
b/drivers/media/dvb-frontends/rtl2832_priv.h
index 5e90cd4..a44614c 100644
--- a/drivers/media/dvb-frontends/rtl2832_priv.h
+++ b/drivers/media/dvb-frontends/rtl2832_priv.h
@@ -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;
-- 
http://palosaari.fi/

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to