summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@linuxtv.org>2008-11-22 14:33:00 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-12-30 09:38:14 -0200
commitdff65740e0c3a18cf56b2e3cbeebd9e9cfa7ac0d (patch)
tree5234c409d0259e46c1dc38014ad3974699159ed5
parentec984f437842426622fb54b56bbcc416183eefe6 (diff)
downloadblackbird-op-linux-dff65740e0c3a18cf56b2e3cbeebd9e9cfa7ac0d.tar.gz
blackbird-op-linux-dff65740e0c3a18cf56b2e3cbeebd9e9cfa7ac0d.zip
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[] = {
{ USB_DEVICE(0x2040, 0x2000),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
{ USB_DEVICE(0x2040, 0x2009),
- .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
+ .driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 },
{ USB_DEVICE(0x2040, 0x200a),
.driver_info = SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD },
{ 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_lo, 0);
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;
}
@@ -180,6 +185,12 @@ int sms_board_power(struct smscore_device_t *coredev, int onoff)
sms_set_gpio(coredev,
board->led_power, onoff ? 1 : 0);
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;
}
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 @@
#define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B 7
#define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8
#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9
+#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10
struct sms_board {
enum sms_device_type_st type;
char *name, *fw[DEVICE_MODE_MAX];
/* 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);
OpenPOWER on IntegriCloud