Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2800ae9cd669db0fc9993cbefae02f181343c295
Commit:     2800ae9cd669db0fc9993cbefae02f181343c295
Parent:     71a2ee37e8851f430d72daea0722908512d57f79
Author:     Mauro Carvalho Chehab <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 22 12:48:04 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 19:02:40 2008 -0200

    V4L/DVB (6661): Remove firmware reload hack for analog
    
    On some cases, xc2028/xc3028 wents into "turn off" mode. It seems that this
    happens when very weak signals are tuned. To solve this, specific standard
    reaload were done previously. Christopher patches changed this behavior to a
    complete firmware reload.
    
    This patch removes the hack. A much cleaner solution for this trouble is 
just
    to sent a xc2028/3028 software reset.
    
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/tuner-xc2028.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/media/video/tuner-xc2028.c 
b/drivers/media/video/tuner-xc2028.c
index c231e7a..a43a339 100644
--- a/drivers/media/video/tuner-xc2028.c
+++ b/drivers/media/video/tuner-xc2028.c
@@ -850,16 +850,21 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, 
u32 freq /* in Hz */ ,
 
        mutex_lock(&priv->lock);
 
-       /* HACK: It seems that specific firmware need to be reloaded
-          when watching analog TV and freq is changed */
-       if (new_mode != T_DIGITAL_TV)
-               priv->cur_fw.type = 0;
-
        tuner_dbg("should set frequency %d kHz\n", freq / 1000);
 
        if (check_firmware(fe, new_mode, std, bandwidth) < 0)
                goto ret;
 
+       /* On some cases xc2028 can disable video output, if
+        * very weak signals are received. By sending a soft
+        * reset, this is re-enabled. So, it is better to always
+        * send a soft reset before changing channels, to be sure
+        * that xc2028 will be in a safe state.
+        * Maybe this might also be needed for DTV.
+        */
+       if (new_mode != T_DIGITAL_TV)
+               rc = send_seq(priv, {0x00, 0x00});
+
        if (new_mode == T_DIGITAL_TV) {
                offset = 2750000;
                if (priv->cur_fw.type & DTV7)
-
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