aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-11-22 12:33:00 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 06:38:14 -0500
commitdff65740e0c3a18cf56b2e3cbeebd9e9cfa7ac0d (patch)
tree5234c409d0259e46c1dc38014ad3974699159ed5
parentec984f437842426622fb54b56bbcc416183eefe6 (diff)
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>
-rw-r--r--drivers/media/dvb/siano/sms-cards.c13
-rw-r--r--drivers/media/dvb/siano/sms-cards.h3
2 files changed, 14 insertions, 2 deletions
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c
index f4eb46a7c905..fd62e0b85621 100644
--- a/drivers/media/dvb/siano/sms-cards.c
+++ b/drivers/media/dvb/siano/sms-cards.c
@@ -41,7 +41,7 @@ struct usb_device_id smsusb_id_table[] = {
41 { USB_DEVICE(0x2040, 0x2000), 41 { USB_DEVICE(0x2040, 0x2000),
42 .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD }, 42 .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
43 { USB_DEVICE(0x2040, 0x2009), 43 { USB_DEVICE(0x2040, 0x2009),
44 .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD }, 44 .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 },
45 { USB_DEVICE(0x2040, 0x200a), 45 { USB_DEVICE(0x2040, 0x200a),
46 .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD }, 46 .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
47 { USB_DEVICE(0x2040, 0x2010), 47 { USB_DEVICE(0x2040, 0x2010),
@@ -165,6 +165,11 @@ int sms_board_setup(struct smscore_device_t *coredev)
165 sms_set_gpio(coredev, board->led_hi, 0); 165 sms_set_gpio(coredev, board->led_hi, 0);
166 sms_set_gpio(coredev, board->led_lo, 0); 166 sms_set_gpio(coredev, board->led_lo, 0);
167 break; 167 break;
168 case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
169 case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
170 /* turn off LNA */
171 sms_set_gpio(coredev, board->lna_ctrl, 0);
172 break;
168 } 173 }
169 return 0; 174 return 0;
170} 175}
@@ -180,6 +185,12 @@ int sms_board_power(struct smscore_device_t *coredev, int onoff)
180 sms_set_gpio(coredev, 185 sms_set_gpio(coredev,
181 board->led_power, onoff ? 1 : 0); 186 board->led_power, onoff ? 1 : 0);
182 break; 187 break;
188 case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2:
189 case SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD:
190 /* LNA */
191 sms_set_gpio(coredev,
192 board->lna_ctrl, onoff ? 1 : 0);
193 break;
183 } 194 }
184 return 0; 195 return 0;
185} 196}
diff --git a/drivers/media/dvb/siano/sms-cards.h b/drivers/media/dvb/siano/sms-cards.h
index 5c013c4390d7..8e0fe9fd2610 100644
--- a/drivers/media/dvb/siano/sms-cards.h
+++ b/drivers/media/dvb/siano/sms-cards.h
@@ -33,13 +33,14 @@
33#define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B 7 33#define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B 7
34#define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8 34#define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8
35#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9 35#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9
36#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10
36 37
37struct sms_board { 38struct sms_board {
38 enum sms_device_type_st type; 39 enum sms_device_type_st type;
39 char *name, *fw[DEVICE_MODE_MAX]; 40 char *name, *fw[DEVICE_MODE_MAX];
40 41
41 /* gpios */ 42 /* gpios */
42 int led_power, led_hi, led_lo; 43 int led_power, led_hi, led_lo, lna_ctrl;
43}; 44};
44 45
45struct sms_board *sms_get_board(int id); 46struct sms_board *sms_get_board(int id);