All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab@redhat.com>
To: unlisted-recipients:; (no To-header on input)@casper.infradead.org
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>,
	Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: [PATCH 07/11] [media] mb86a20s: Always reset the frontend with set_frontend
Date: Sun,  3 Mar 2013 12:58:47 -0300	[thread overview]
Message-ID: <1362326331-17541-8-git-send-email-mchehab@redhat.com> (raw)
In-Reply-To: <1362326331-17541-1-git-send-email-mchehab@redhat.com>

Always init the frontend when set_frontend is called. The rationale
is: it was noticed that, on some devices, it fails to lock with a
different channel. It seems that some other registers need to be
restored to its initial state, when the channel changes.

As it is better to reset everything, even wasting a few more
miliseconds than to loose channel lock, let's change the logic
to always reset.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
---
 drivers/media/dvb-frontends/mb86a20s.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/drivers/media/dvb-frontends/mb86a20s.c b/drivers/media/dvb-frontends/mb86a20s.c
index c552300..1589662 100644
--- a/drivers/media/dvb-frontends/mb86a20s.c
+++ b/drivers/media/dvb-frontends/mb86a20s.c
@@ -1854,18 +1854,9 @@ static int mb86a20s_set_frontend(struct dvb_frontend *fe)
 		fe->ops.i2c_gate_ctrl(fe, 1);
 	fe->ops.tuner_ops.set_params(fe);
 
-	if (fe->ops.tuner_ops.get_if_frequency) {
+	if (fe->ops.tuner_ops.get_if_frequency)
 		fe->ops.tuner_ops.get_if_frequency(fe, &if_freq);
 
-		/*
-		 * If the IF frequency changed, re-initialize the
-		 * frontend. This is needed by some drivers like tda18271,
-		 * that only sets the IF after receiving a set_params() call
-		 */
-		if (if_freq != state->if_freq)
-			state->need_init = true;
-	}
-
 	/*
 	 * Make it more reliable: if, for some reason, the initial
 	 * device initialization doesn't happen, initialize it when
@@ -1877,9 +1868,13 @@ static int mb86a20s_set_frontend(struct dvb_frontend *fe)
 	 * So, this hack is needed, in order to make Kworld SBTVD to work.
 	 *
 	 * It is also needed to change the IF after the initial init.
+	 *
+	 * HACK: Always init the frontend when set_frontend is called:
+	 * it was noticed that, on some devices, it fails to lock on a
+	 * different channel. So, it is better to reset everything, even
+	 * wasting some time, than to loose channel lock.
 	 */
-	if (state->need_init)
-		mb86a20s_initfe(fe);
+	mb86a20s_initfe(fe);
 
 	if (fe->ops.i2c_gate_ctrl)
 		fe->ops.i2c_gate_ctrl(fe, 0);
-- 
1.8.1.4


  parent reply	other threads:[~2013-03-03 15:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-03 15:58 [PATCH 00/11] Do some improvements/fixups on mb86a20s, cx231xx and em28xx Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 01/11] [media] mb86a20s: don't pollute dmesg with debug messages Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 02/11] [media] mb86a20s: adjust IF based on what's set on the tuner Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 03/11] [media] mb86a20s: provide CNR stats before FE_HAS_SYNC Mauro Carvalho Chehab
2013-03-04 11:23   ` Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 04/11] [media] mb86a20s: Fix signal strength calculus Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 05/11] [media] mb86a20s: don't allow updating signal strength too fast Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 06/11] [media] mb86a20s: change AGC tuning parameters Mauro Carvalho Chehab
2013-03-03 15:58 ` Mauro Carvalho Chehab [this message]
2013-03-03 15:58 ` [PATCH 08/11] [media] mb86a20s: Don't reset strength with the other stats Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 09/11] [media] mb86a20s: cleanup the status at set_frontend() Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 10/11] [media] cx231xx: Improve signal reception for PV SBTVD Mauro Carvalho Chehab
2013-03-03 15:58 ` [PATCH 11/11] [media] em28xx-dvb: Don't put device in suspend mode at feed stop Mauro Carvalho Chehab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1362326331-17541-8-git-send-email-mchehab@redhat.com \
    --to=mchehab@redhat.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.