SRU LP301204 - sms1xxx: enable LNA control on Hauppauge WinTV MiniCard
Tim Gardner
timg at tpi.com
Wed Nov 26 22:07:03 UTC 2008
>From 5a96ca4452e275da446a826786b5617e33837bce Mon Sep 17 00:00:00 2001
From: Michael Krufky <mkrufky at linuxtv.org>
Date: Tue, 25 Nov 2008 16:40:32 -0500
Subject: [PATCH] UBUNTU: sms1xxx: enable LNA control on Hauppauge WinTV MiniCard
OriginalAuthor: Michael Krufky <mkrufky at linuxtv.org>
OriginalLocation: http://linuxtv.org/hg/v4l-dvb/raw-rev/bc664a77deba
Bug: #301204
sms1xxx: enable LNA control on Hauppauge WinTV MiniCard.
Power the LNA while the frontend is in use.
Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
---
drivers/media/dvb/siano/sms-cards.c | 20 +++++++++++++++++++-
drivers/media/dvb/siano/sms-cards.h | 3 ++-
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c
index f6b12da..0341d53 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),
@@ -114,6 +114,13 @@ static struct sms_board sms_boards[] = {
.name = "Hauppauge WinTV MiniCard",
.type = SMS_NOVA_B0,
.fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
+ .lna_ctrl = 29,
+ },
+ [SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2] = {
+ .name = "Hauppauge WinTV MiniCard",
+ .type = SMS_NOVA_B0,
+ .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw",
+ .lna_ctrl = 1,
},
};
@@ -158,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;
}
@@ -173,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 f68da5d..6384d89 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);
--
1.5.6.3
More information about the kernel-team
mailing list