diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-11-20 16:25:08 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-11-20 16:25:08 -0200 |
commit | af707ffba7bfd793a895f1ceb32ee4aa5dff3a97 (patch) | |
tree | d73b9395307e07dfc6fe0bdc4da59a4078925102 /linux/drivers/media/video | |
parent | 3e874cd42d944a92e40a09065beb6fa83c4b16ad (diff) | |
download | mediapointer-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.c | 29 | ||||
-rw-r--r-- | linux/drivers/media/video/em28xx/em28xx.h | 2 |
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]; }; |