From patchwork Fri Mar 24 18:24:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Scheller X-Patchwork-Id: 9643715 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id F263A602C9 for ; Fri, 24 Mar 2017 18:26:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E866926907 for ; Fri, 24 Mar 2017 18:26:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DD15626E51; Fri, 24 Mar 2017 18:26:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8EEE326907 for ; Fri, 24 Mar 2017 18:26:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935477AbdCXS0Z (ORCPT ); Fri, 24 Mar 2017 14:26:25 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:34276 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965196AbdCXS0P (ORCPT ); Fri, 24 Mar 2017 14:26:15 -0400 Received: by mail-wm0-f65.google.com with SMTP id u132so2231757wmg.1 for ; Fri, 24 Mar 2017 11:26:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=25JIINX9BwGV3ZByN+Vgmx6VB/ncINm9mpNXNxE/Ius=; b=t4ZeM/1rzzedE1UZT5jsh0soV9iXbrjsW67OcxU3oJAVUrql4Ee/RuXQ95M6PfjR1W rqh0uLfqzhCIZ/LCvef+/y2ciA6pI8Z238qW/p5qxfJ5JA06C7b5UJp7PxgU5mfA9SS9 pX6BHIW27czcPvHrqAP0XozjGXRyxe1M7p67ahA53Wvpzcyba3+fLQX376wec0EGCRHF K8qjd0uvb4STQL7d9uOr0yVuo2BuhzJhxTRMMV3wY7KLLROHApkOsR7/xi32pU0YWgmM MWvP9We42VMX1Ruwn84IIbxLW1lnKkAskzuKwLho17a1lsPIIRYkwvcaTVdTt5rcqAv5 0jnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=25JIINX9BwGV3ZByN+Vgmx6VB/ncINm9mpNXNxE/Ius=; b=bOXxjylRY2/dxf1Oz6g8IX/RgojDZbk9GjdBs44iwASlAnznmQI4QXyqHnWumeYJ4i yZ+Rzh4KcTTqzHlit1OS7smsxR3j8u4QVYNofv64rhLzIhMDwI0hJEymLOKEN3OG+8je ppYHmElM2bC1kdNYbtQ94Cq+LNX3AVcL55CS25hLKqJuMIFfruEejtZavj5s3TMfPIIe MObTPQw8jAk0KHz2kO0grEQolqDCZaoercqj9JNUY+Ygf4/aJGtprbmUfLzhTebqs/EC 1kqXfJq9bqUs0jQ1XIOe1fPNSHxSR2EOh7w5STCcLiQnu6Cc8CnE4xbIS8v7qZjaDIKI Fing== X-Gm-Message-State: AFeK/H2UEzassiW4svsU3+F9C/JFdiWn0qvULRIES83CwM1qJlP1VJgY01UgNXC6CHdSvg== X-Received: by 10.28.90.66 with SMTP id o63mr4597441wmb.97.1490379942895; Fri, 24 Mar 2017 11:25:42 -0700 (PDT) Received: from dvbdev.wuest.de (ip-37-24-178-151.hsi14.unitymediagroup.de. [37.24.178.151]) by smtp.gmail.com with ESMTPSA id w12sm3830519wra.21.2017.03.24.11.25.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 24 Mar 2017 11:25:42 -0700 (PDT) From: Daniel Scheller To: mchehab@kernel.org, linux-media@vger.kernel.org Subject: [PATCH v2 06/12] [media] dvb-frontends/stv0367: make full reinit on set_frontend() optional Date: Fri, 24 Mar 2017 19:24:02 +0100 Message-Id: <20170324182408.25996-7-d.scheller.oss@gmail.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170324182408.25996-1-d.scheller.oss@gmail.com> References: <20170324182408.25996-1-d.scheller.oss@gmail.com> Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Daniel Scheller Every time dvb_frontend_ops.set_frontend() is called, an almost full reinit of the demodulator will be performed. While this might cause a slight delay when switching channels due to all involved tables being rewritten, it can even be dangerous in certain causes in that the demod may lock up and requires to be powercycled (this can happen on Digital Devices hardware). So this adds a flag if it should be done, and to not change behaviour with existing card support, it'll be enabled in all cases. Signed-off-by: Daniel Scheller --- drivers/media/dvb-frontends/stv0367.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/media/dvb-frontends/stv0367.c b/drivers/media/dvb-frontends/stv0367.c index da10d9a..9370afa 100644 --- a/drivers/media/dvb-frontends/stv0367.c +++ b/drivers/media/dvb-frontends/stv0367.c @@ -93,6 +93,7 @@ struct stv0367_state { /* flags for operation control */ u8 use_i2c_gatectrl; u8 deftabs; + u8 reinit_on_setfrontend; }; #define RF_LOOKUP_TABLE_SIZE 31 @@ -1217,7 +1218,8 @@ static int stv0367ter_set_frontend(struct dvb_frontend *fe) s8 num_trials, index; u8 SenseTrials[] = { INVERSION_ON, INVERSION_OFF }; - stv0367ter_init(fe); + if (state->reinit_on_setfrontend) + stv0367ter_init(fe); if (fe->ops.tuner_ops.set_params) { if (state->use_i2c_gatectrl && fe->ops.i2c_gate_ctrl) @@ -1717,6 +1719,7 @@ struct dvb_frontend *stv0367ter_attach(const struct stv0367_config *config, /* demod operation options */ state->use_i2c_gatectrl = 1; state->deftabs = STV0367_DEFTAB_GENERIC; + state->reinit_on_setfrontend = 1; dprintk("%s: chip_id = 0x%x\n", __func__, state->chip_id); @@ -2511,7 +2514,8 @@ static int stv0367cab_set_frontend(struct dvb_frontend *fe) break; } - stv0367cab_init(fe); + if (state->reinit_on_setfrontend) + stv0367cab_init(fe); /* Tuner Frequency Setting */ if (fe->ops.tuner_ops.set_params) { @@ -2835,6 +2839,7 @@ struct dvb_frontend *stv0367cab_attach(const struct stv0367_config *config, /* demod operation options */ state->use_i2c_gatectrl = 1; state->deftabs = STV0367_DEFTAB_GENERIC; + state->reinit_on_setfrontend = 1; dprintk("%s: chip_id = 0x%x\n", __func__, state->chip_id);