Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a4950134d46f0b83745f05ea37987785a3905eba
Commit:     a4950134d46f0b83745f05ea37987785a3905eba
Parent:     11fcd4703004fc8c9030ba45dda8ad74a431d235
Author:     Mauro Carvalho Chehab <[EMAIL PROTECTED]>
AuthorDate: Sun Jan 6 09:45:44 2008 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 19:04:39 2008 -0200

    V4L/DVB (6969): Avoid causing regressions for non-HVR950 boards
    
    Only HVR950 has analog_gpio configured. It makes no sense to set gpio to 0 
for
    other boards. Better to add a test, while this var is not set for all xc3028
    devices.
    
    Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/em28xx/em28xx-cards.c |   34 ++++++++++++++++------------
 1 files changed, 19 insertions(+), 15 deletions(-)

diff --git a/drivers/media/video/em28xx/em28xx-cards.c 
b/drivers/media/video/em28xx/em28xx-cards.c
index 1011813..5ffdbaa 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -485,27 +485,31 @@ static int em28xx_tuner_callback(void *ptr, int command, 
int arg)
        switch (command) {
        case XC2028_TUNER_RESET:
        {
-               char gpio0, gpio1, gpio4;
-
-               /* GPIO and initialization codes for analog TV */
-               gpio0 = dev->analog_gpio & 0xff;
-               gpio1 = (dev->analog_gpio >> 8) & 0xff;
-               gpio4 = dev->analog_gpio >> 24;
+               /* GPIO and initialization codes for analog TV and radio
+                  This code should be complemented for DTV, since reset
+                  codes are different.
+                */
 
                dev->em28xx_write_regs_req(dev, 0x00, 0x48, "\x00", 1);
                dev->em28xx_write_regs_req(dev, 0x00, 0x12, "\x67", 1);
 
-               if (gpio4) {
-                       dev->em28xx_write_regs(dev, 0x04, &gpio4, 1);
-                       msleep(140);
+               if (dev->analog_gpio) {
+                       char gpio0 = dev->analog_gpio & 0xff;
+                       char gpio1 = (dev->analog_gpio >> 8) & 0xff;
+                       char gpio4 = dev->analog_gpio >> 24;
+
+                       if (gpio4) {
+                               dev->em28xx_write_regs(dev, 0x04, &gpio4, 1);
+                               msleep(140);
+                       }
+
+                       msleep(6);
+                       dev->em28xx_write_regs(dev, 0x08, &gpio0, 1);
+                       msleep(10);
+                       dev->em28xx_write_regs(dev, 0x08, &gpio1, 1);
+                       msleep(5);
                }
 
-               msleep(6);
-               dev->em28xx_write_regs(dev, 0x08, &gpio0, 1);
-               msleep(10);
-               dev->em28xx_write_regs(dev, 0x08, &gpio1, 1);
-               msleep(5);
-
                break;
        }
        }
-
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