[media] rtl2832: implement .read_ber()
authorAntti Palosaari <crope@iki.fi>
Tue, 21 Aug 2012 22:56:22 +0000 (19:56 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 15 Sep 2012 12:30:39 +0000 (09:30 -0300)
Implementation taken from rtl2830.

Cc: Thomas Mair <thomas.mair86@googlemail.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb-frontends/rtl2832.c

index dad8ab5aba8e609f4dc71207723ba65c52e7b094..4d40b4f42a1fc3a2be04588419c7e1873d63a313 100644 (file)
@@ -824,6 +824,24 @@ err:
        return ret;
 }
 
+static int rtl2832_read_ber(struct dvb_frontend *fe, u32 *ber)
+{
+       struct rtl2832_priv *priv = fe->demodulator_priv;
+       int ret;
+       u8 buf[2];
+
+       ret = rtl2832_rd_regs(priv, 0x4e, 3, buf, 2);
+       if (ret)
+               goto err;
+
+       *ber = buf[0] << 8 | buf[1];
+
+       return 0;
+err:
+       dbg("%s: failed=%d", __func__, ret);
+       return ret;
+}
+
 static struct dvb_frontend_ops rtl2832_ops;
 
 static void rtl2832_release(struct dvb_frontend *fe)
@@ -909,6 +927,7 @@ static struct dvb_frontend_ops rtl2832_ops = {
 
        .read_status = rtl2832_read_status,
        .read_snr = rtl2832_read_snr,
+       .read_ber = rtl2832_read_ber,
 
        .i2c_gate_ctrl = rtl2832_i2c_gate_ctrl,
 };