tree f7607a5f38434b58bf7984d454dece57d6299fac
parent 593cbf3dcbffc852cf91a30951eb518b59bf7322
author Mac Michaels <[EMAIL PROTECTED]> Sat, 10 Sep 2005 03:02:40 -0700
committer Linus Torvalds <[EMAIL PROTECTED]> Sat, 10 Sep 2005 03:57:40 -0700

[PATCH] dvb: frontend: or51132: remove bogus optimization attempt

This fix has also been applied to lgdt330x.  There is an optimization that
keeps track of the frequency tuned by the digital decoder.  The digital driver
does not set the frequency if it has not changed since it was tuned.  The
analog tuner driver knows nothing about the frequency saved by the digital
driver.  When the frequency is set using the video4linux code with tvtime, the
hardware get changed but the digital driver's state does not get updated.
Switch back to the same digital channel and the driver finds no change in
frequency so the tuner is not reset to the digital frequency.  The work around
is to remove the check and always set the tuner to the specified frequency.

Signed-off-by: Mac Michaels <[EMAIL PROTECTED]>
Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
Signed-off-by: Johannes Stezenbach <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>

 drivers/media/dvb/frontends/or51132.c |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/drivers/media/dvb/frontends/or51132.c 
b/drivers/media/dvb/frontends/or51132.c
--- a/drivers/media/dvb/frontends/or51132.c
+++ b/drivers/media/dvb/frontends/or51132.c
@@ -370,22 +370,19 @@ static int or51132_set_parameters(struct
                or51132_setmode(fe);
        }
 
-       /* Change only if we are actually changing the channel */
-       if (state->current_frequency != param->frequency) {
-               dvb_pll_configure(state->config->pll_desc, buf,
-                                 param->frequency, 0);
-               dprintk("set_parameters tuner bytes: 0x%02x 0x%02x "
-                       "0x%02x 0x%02x\n",buf[0],buf[1],buf[2],buf[3]);
-               if (i2c_writebytes(state, state->config->pll_address ,buf, 4))
-                       printk(KERN_WARNING "or51132: set_parameters error "
-                              "writing to tuner\n");
+       dvb_pll_configure(state->config->pll_desc, buf,
+                         param->frequency, 0);
+       dprintk("set_parameters tuner bytes: 0x%02x 0x%02x "
+               "0x%02x 0x%02x\n",buf[0],buf[1],buf[2],buf[3]);
+       if (i2c_writebytes(state, state->config->pll_address ,buf, 4))
+               printk(KERN_WARNING "or51132: set_parameters error "
+                      "writing to tuner\n");
 
-               /* Set to current mode */
-               or51132_setmode(fe);
+       /* Set to current mode */
+       or51132_setmode(fe);
 
-               /* Update current frequency */
-               state->current_frequency = param->frequency;
-       }
+       /* Update current frequency */
+       state->current_frequency = param->frequency;
        return 0;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to