From: Antti Palosaari Date: Tue, 21 Aug 2012 22:56:22 +0000 (-0300) Subject: [media] rtl2832: implement .read_ber() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=db32d74a0e5fa2b25b6bdbd1cb3f69045538c956;p=openwrt%2Fstaging%2Fblogic.git [media] rtl2832: implement .read_ber() Implementation taken from rtl2830. Cc: Thomas Mair Signed-off-by: Antti Palosaari Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c index dad8ab5aba8e..4d40b4f42a1f 100644 --- a/drivers/media/dvb-frontends/rtl2832.c +++ b/drivers/media/dvb-frontends/rtl2832.c @@ -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, };