From d28a1b91efd72e6f9afd7d55ee7448f103d4c02a Mon Sep 17 00:00:00 2001 From: Antti Palosaari Date: Tue, 21 Aug 2012 19:56:22 -0300 Subject: [PATCH] --- yaml --- r: 330984 b: refs/heads/master c: db32d74a0e5fa2b25b6bdbd1cb3f69045538c956 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb-frontends/rtl2832.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5a36b4e820c9..5db9ff35ce07 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 73983497ff816109e2739ad23ace06fd42c552e9 +refs/heads/master: db32d74a0e5fa2b25b6bdbd1cb3f69045538c956 diff --git a/trunk/drivers/media/dvb-frontends/rtl2832.c b/trunk/drivers/media/dvb-frontends/rtl2832.c index dad8ab5aba8e..4d40b4f42a1f 100644 --- a/trunk/drivers/media/dvb-frontends/rtl2832.c +++ b/trunk/drivers/media/dvb-frontends/rtl2832.c @@ -824,6 +824,24 @@ static int rtl2832_read_snr(struct dvb_frontend *fe, u16 *snr) 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, };