V4L/DVB (9737): sms1xxx: enable LNA control on Hauppauge WinTV MiniCard

Power the LNA while the frontend is in use.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Michael Krufky 2008-11-22 14:33:00 -03:00 committed by Mauro Carvalho Chehab
parent ec984f4378
commit dff65740e0
2 changed files with 14 additions and 2 deletions

View File

@ -41,7 +41,7 @@ struct usb_device_id smsusb_id_table[] = {
{ USB_DEVICE(0x2040, 0x2000), { USB_DEVICE(0x2040, 0x2000),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD }, .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
{ USB_DEVICE(0x2040, 0x2009), { USB_DEVICE(0x2040, 0x2009),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD }, .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 },
{ USB_DEVICE(0x2040, 0x200a), { USB_DEVICE(0x2040, 0x200a),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD }, .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
{ USB_DEVICE(0x2040, 0x2010), { USB_DEVICE(0x2040, 0x2010),
@ -165,6 +165,11 @@ int sms_board_setup(struct smscore_device_t *coredev)
sms_set_gpio(coredev, board->led_hi, 0); sms_set_gpio(coredev, board->led_hi, 0);
sms_set_gpio(coredev, board->led_lo, 0); sms_set_gpio(coredev, board->led_lo, 0);
break; break;
case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
/* turn off LNA */
sms_set_gpio(coredev, board->lna_ctrl, 0);
break;
} }
return 0; return 0;
} }
@ -180,6 +185,12 @@ int sms_board_power(struct smscore_device_t *coredev, int onoff)
sms_set_gpio(coredev, sms_set_gpio(coredev,
board->led_power, onoff ? 1 : 0); board->led_power, onoff ? 1 : 0);
break; break;
case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
/* LNA */
sms_set_gpio(coredev,
board->lna_ctrl, onoff ? 1 : 0);
break;
} }
return 0; return 0;
} }

View File

@ -33,13 +33,14 @@
#define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B 7 #define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B 7
#define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8 #define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8
#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9 #define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9
#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10
struct sms_board { struct sms_board {
enum sms_device_type_st type; enum sms_device_type_st type;
char *name, *fw[DEVICE_MODE_MAX]; char *name, *fw[DEVICE_MODE_MAX];
/* gpios */ /* gpios */
int led_power, led_hi, led_lo; int led_power, led_hi, led_lo, lna_ctrl;
}; };
struct sms_board *sms_get_board(int id); struct sms_board *sms_get_board(int id);