Skip to content

Commit

Permalink
V4L/DVB (6969): Avoid causing regressions for non-HVR950 boards
Browse files Browse the repository at this point in the history
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 <mchehab@infradead.org>
  • Loading branch information
Mauro Carvalho Chehab committed Jan 25, 2008
1 parent 11fcd47 commit a495013
Showing 1 changed file with 19 additions and 15 deletions.
34 changes: 19 additions & 15 deletions drivers/media/video/em28xx/em28xx-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down

0 comments on commit a495013

Please sign in to comment.