From patchwork Mon Feb 27 20:42:22 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Regel X-Patchwork-Id: 10079 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1S27Ox-0002LJ-3W for patchwork@linuxtv.org; Mon, 27 Feb 2012 21:42:31 +0100 X-tubIT-Incoming-IP: 209.132.180.67 Received: from vger.kernel.org ([209.132.180.67]) by mail.tu-berlin.de (exim-4.75/mailfrontend-4) with esmtp for id 1S27Ow-00008y-B7; Mon, 27 Feb 2012 21:42:30 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754703Ab2B0Um2 (ORCPT ); Mon, 27 Feb 2012 15:42:28 -0500 Received: from mailout-de.gmx.net ([213.165.64.22]:34835 "HELO mailout-de.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1754395Ab2B0Um1 (ORCPT ); Mon, 27 Feb 2012 15:42:27 -0500 Received: (qmail invoked by alias); 27 Feb 2012 20:42:25 -0000 Received: from i5E86D29A.versanet.de (EHLO [192.168.0.20]) [94.134.210.154] by mail.gmx.net (mp032) with SMTP; 27 Feb 2012 21:42:25 +0100 X-Authenticated: #126152 X-Provags-ID: V01U2FsdGVkX194vLwrBBN4kIxwyCAP2vYwdAlzYSLTsml8J1vYBX PD7YHf4CaZScx6 Message-ID: <4F4BEAAE.7050704@gmx.de> Date: Mon, 27 Feb 2012 21:42:22 +0100 From: Andreas Regel User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2 MIME-Version: 1.0 To: abraham.manu@gmail.com CC: linux-media@vger.kernel.org Subject: [PATCH 2/3] stv090x: use error counter 1 for BER estimation X-Y-GMX-Trusted: 0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2012.2.27.203320 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' HTML_00_01 0.05, HTML_00_10 0.05, MSGID_ADDED_BY_MTA 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS , __USER_AGENT 0' Use error counter 1 of the STV090x to get a correct bit error rate value. Signed-off-by: Andreas Regel --- drivers/media/dvb/frontends/stv090x.c | 30 +++++++++++++++++++++++++++++- 1 files changed, 29 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c index 6c3c095..afbd50c 100644 --- a/drivers/media/dvb/frontends/stv090x.c +++ b/drivers/media/dvb/frontends/stv090x.c @@ -3512,6 +3512,33 @@ static int stv090x_read_status(struct dvb_frontend *fe, enum fe_status *status) return 0; } +static int stv090x_read_ber(struct dvb_frontend *fe, u32 *ber) +{ + struct stv090x_state *state = fe->demodulator_priv; + + u32 reg, h, m, l; + enum fe_status status; + + stv090x_read_status(fe, &status); + if (!(status & FE_HAS_LOCK)) { + *ber = 1 << 23; /* Max BER */ + } else { + /* Counter 1 */ + reg = STV090x_READ_DEMOD(state, ERRCNT12); + h = STV090x_GETFIELD_Px(reg, ERR_CNT12_FIELD); + + reg = STV090x_READ_DEMOD(state, ERRCNT11); + m = STV090x_GETFIELD_Px(reg, ERR_CNT11_FIELD); + + reg = STV090x_READ_DEMOD(state, ERRCNT10); + l = STV090x_GETFIELD_Px(reg, ERR_CNT10_FIELD); + + *ber = ((h << 16) | (m << 8) | l); + } + return 0; +} + +#if 0 static int stv090x_read_per(struct dvb_frontend *fe, u32 *per) { struct stv090x_state *state = fe->demodulator_priv; @@ -3562,6 +3589,7 @@ err: dprintk(FE_ERROR, 1, "I/O error"); return -1; } +#endif static int stv090x_table_lookup(const struct stv090x_tab *tab, int max, int val) { @@ -4740,7 +4768,7 @@ static struct dvb_frontend_ops stv090x_ops = { .search = stv090x_search, .read_status = stv090x_read_status, - .read_ber = stv090x_read_per, + .read_ber = stv090x_read_ber, .read_signal_strength = stv090x_read_signal_strength, .read_snr = stv090x_read_cnr, }; -- 1.7.2.5