From patchwork Tue Nov 29 14:31:23 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mariusz Bialonczyk X-Patchwork-Id: 8656 Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.72) (envelope-from ) id 1RVPKv-0000MW-AC; Tue, 29 Nov 2011 16:11:13 +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-1) with esmtp id 1RVPKu-0002zt-JP; Tue, 29 Nov 2011 16:11:08 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754852Ab1K2PLF (ORCPT + 4 others); Tue, 29 Nov 2011 10:11:05 -0500 Received: from skyboo.net ([82.160.187.4]:36855 "EHLO skyboo.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1754844Ab1K2PLE (ORCPT ); Tue, 29 Nov 2011 10:11:04 -0500 X-Greylist: delayed 2354 seconds by postgrey-1.27 at vger.kernel.org; Tue, 29 Nov 2011 10:11:04 EST Received: from manio by skyboo.net with local (Exim 4.77) (envelope-from ) id 1RVOio-0006SZ-Iq; Tue, 29 Nov 2011 15:31:47 +0100 From: Mariusz Bialonczyk To: linux-media@vger.kernel.org Cc: Mariusz Bialonczyk Date: Tue, 29 Nov 2011 15:31:23 +0100 Message-Id: <1322577083-24728-1-git-send-email-manio@skyboo.net> X-Mailer: git-send-email 1.7.7.3 X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: manio@skyboo.net X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on draco.skyboo.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.3.2 Subject: [PATCH] stv090x: implement function for reading uncorrected blocks count X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:26:47 +0000) X-SA-Exim-Scanned: Yes (on skyboo.net) 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: 2011.11.29.150016 X-PMX-Spam: Gauge=X, Probability=10%, Report=' RU_TLD 0.5, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, MAILTO_TO_RU_TLD 0, __ANY_URI 0, __CP_URI_IN_BODY 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __HAS_X_MAILING_LIST 0, __MIME_TEXT_ONLY 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_WWW 0, __URI_NS ' X-LSpam-Score: -6.9 (------) X-LSpam-Report: No, score=-6.9 required=5.0 tests=BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5 autolearn=ham This patch add support for reading UNC blocks for stv090x frontend. Partially based on stv0900 code by Abylay Ospan Signed-off-by: Mariusz Bialonczyk --- drivers/media/dvb/frontends/stv090x.c | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/drivers/media/dvb/frontends/stv090x.c b/drivers/media/dvb/frontends/stv090x.c index 52d8712..ad6141f 100644 --- a/drivers/media/dvb/frontends/stv090x.c +++ b/drivers/media/dvb/frontends/stv090x.c @@ -3687,6 +3687,35 @@ static int stv090x_read_cnr(struct dvb_frontend *fe, u16 *cnr) return 0; } +static int stv090x_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) +{ + struct stv090x_state *state = fe->demodulator_priv; + u32 reg_0, reg_1; + u32 val_header_err, val_packet_err; + + switch (state->delsys) { + case STV090x_DVBS2: + /* DVB-S2 delineator error count */ + + /* retrieving number for erronous headers */ + reg_1 = stv090x_read_reg(state, STV090x_P1_BBFCRCKO1); + reg_0 = stv090x_read_reg(state, STV090x_P1_BBFCRCKO0); + val_header_err = MAKEWORD16(reg_1, reg_0); + + /* retrieving number for erronous packets */ + reg_1 = stv090x_read_reg(state, STV090x_P1_UPCRCKO1); + reg_0 = stv090x_read_reg(state, STV090x_P1_UPCRCKO0); + val_packet_err = MAKEWORD16(reg_1, reg_0); + + *ucblocks = val_packet_err + val_header_err; + break; + default: + return -EINVAL; + } + + return 0; +} + static int stv090x_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) { struct stv090x_state *state = fe->demodulator_priv; @@ -4748,7 +4777,8 @@ static struct dvb_frontend_ops stv090x_ops = { .read_status = stv090x_read_status, .read_ber = stv090x_read_per, .read_signal_strength = stv090x_read_signal_strength, - .read_snr = stv090x_read_cnr + .read_snr = stv090x_read_cnr, + .read_ucblocks = stv090x_read_ucblocks };