[media] af9033: wrap DVBv3 BER to DVBv5 BER
authorAntti Palosaari <crope@iki.fi>
Thu, 4 Sep 2014 02:22:53 +0000 (23:22 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Sun, 21 Sep 2014 22:47:03 +0000 (19:47 -0300)
DVBv5 BER is calculated anyway, so just return it for legacy
read_ber() API too.

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

index 673d60ef965496021c78c03361fd1df6ea8abb21..f5267fdad75e59c22d90953b45689a90921fa493 100644 (file)
@@ -38,6 +38,7 @@ struct af9033_dev {
        fe_status_t fe_status;
        u32 ber;
        u32 ucb;
+       u64 post_bit_error_prev; /* for old read_ber we return (curr - prev) */
        u64 post_bit_error;
        u64 post_bit_count;
        u64 error_block_count;
@@ -918,13 +919,9 @@ err:
 static int af9033_read_ber(struct dvb_frontend *fe, u32 *ber)
 {
        struct af9033_dev *dev = fe->demodulator_priv;
-       int ret;
-
-       ret = af9033_update_ch_stat(dev);
-       if (ret < 0)
-               return ret;
 
-       *ber = dev->ber;
+       *ber = (dev->post_bit_error - dev->post_bit_error_prev);
+       dev->post_bit_error_prev = dev->post_bit_error;
 
        return 0;
 }