summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-11-20 16:25:08 -0200
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-11-20 16:25:08 -0200
commitaf707ffba7bfd793a895f1ceb32ee4aa5dff3a97 (patch)
treed73b9395307e07dfc6fe0bdc4da59a4078925102 /linux/drivers/media/video
parent3e874cd42d944a92e40a09065beb6fa83c4b16ad (diff)
downloadmediapointer-dvb-s2-af707ffba7bfd793a895f1ceb32ee4aa5dff3a97.tar.gz
mediapointer-dvb-s2-af707ffba7bfd793a895f1ceb32ee4aa5dff3a97.tar.bz2
Use MTS firmware for the HVR-900
From: Aidan Thornton <makosoft@googlemail.com> The HVR-900 requires the MTS version of the xc3028 firmware in order to get any sound. The below patch selects this firmware variant on HVR-900 cards, as well as splitting the HVR-950 into its own entry (since I don't know if it uses the MTS variant and it will have to be split off eventually anyway). Signed-off-by: Aidan Thornton <makosoft@googlemail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers/media/video')
-rw-r--r--linux/drivers/media/video/em28xx/em28xx-cards.c29
-rw-r--r--linux/drivers/media/video/em28xx/em28xx.h2
2 files changed, 29 insertions, 2 deletions
diff --git a/linux/drivers/media/video/em28xx/em28xx-cards.c b/linux/drivers/media/video/em28xx/em28xx-cards.c
index 36aaf7570..aa51a833b 100644
--- a/linux/drivers/media/video/em28xx/em28xx-cards.c
+++ b/linux/drivers/media/video/em28xx/em28xx-cards.c
@@ -150,7 +150,29 @@ struct em28xx_board em28xx_boards[] = {
}},
},
[EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900] = {
- .name = "Hauppauge WinTV HVR 900/950",
+ .name = "Hauppauge WinTV HVR 900",
+ .vchannels = 3,
+ .tda9887_conf = TDA9887_PRESENT,
+ .tuner_type = TUNER_XC2028,
+ .has_tuner = 1,
+ .xc2028_type = XC2028_FIRM_MTS,
+ .decoder = EM28XX_TVP5150,
+ .input = {{
+ .type = EM28XX_VMUX_TELEVISION,
+ .vmux = TVP5150_COMPOSITE0,
+ .amux = 0,
+ },{
+ .type = EM28XX_VMUX_COMPOSITE1,
+ .vmux = TVP5150_COMPOSITE1,
+ .amux = 1,
+ },{
+ .type = EM28XX_VMUX_SVIDEO,
+ .vmux = TVP5150_SVIDEO,
+ .amux = 1,
+ }},
+ },
+ [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950] = {
+ .name = "Hauppauge WinTV HVR 950",
.vchannels = 3,
.tda9887_conf = TDA9887_PRESENT,
.tuner_type = TUNER_XC2028,
@@ -377,7 +399,7 @@ struct usb_device_id em28xx_id_table [] = {
{ USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 },
{ USB_DEVICE(0x2304, 0x0207), .driver_info = EM2820_BOARD_PINNACLE_DVC_90 },
{ USB_DEVICE(0x2040, 0x6500), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 },
- { USB_DEVICE(0x2040, 0x6513), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 },
+ { USB_DEVICE(0x2040, 0x6513), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 },
{ USB_DEVICE(0x0ccd, 0x0042), .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS },
{ USB_DEVICE(0x0ccd, 0x0047), .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS },
{ },
@@ -405,6 +427,7 @@ void em28xx_pre_card_setup(struct em28xx *dev)
switch(dev->model){
case EM2880_BOARD_TERRATEC_PRODIGY_XS:
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
+ case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
case EM2880_BOARD_TERRATEC_HYBRID_XS:
/* reset through GPIO? */
em28xx_write_regs_req(dev, 0x00, 0x08, "\x7d", 1);
@@ -454,6 +477,7 @@ static void em28xx_config_tuner (struct em28xx *dev)
ctl.fname = XC2028_DEFAULT_FIRMWARE;
ctl.max_len = 64;
+ ctl.type = em28xx_boards[dev->model].xc2028_type;
xc2028_cfg.tuner = TUNER_XC2028;
xc2028_cfg.priv = &ctl;
@@ -575,6 +599,7 @@ void em28xx_card_setup(struct em28xx *dev)
switch (dev->model) {
case EM2820_BOARD_HAUPPAUGE_WINTV_USB_2:
case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
+ case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950:
{
struct tveeprom tv;
#ifdef CONFIG_MODULES
diff --git a/linux/drivers/media/video/em28xx/em28xx.h b/linux/drivers/media/video/em28xx/em28xx.h
index 07b7db80d..efc7d25c3 100644
--- a/linux/drivers/media/video/em28xx/em28xx.h
+++ b/linux/drivers/media/video/em28xx/em28xx.h
@@ -51,6 +51,7 @@
#define EM2880_BOARD_TERRATEC_PRODIGY_XS 13
#define EM2820_BOARD_PROLINK_PLAYTV_USB2 14
#define EM2800_BOARD_VGEAR_POCKETTV 15
+#define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 16
#define UNSET -1
@@ -180,6 +181,7 @@ struct em28xx_board {
unsigned int has_msp34xx:1;
enum em28xx_decoder decoder;
+ int xc2028_type;
struct em28xx_input input[MAX_EM28XX_INPUT];
};