forked from Minki/linux
V4L/DVB (6619): Use MTS firmware for the HVR-900
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>
This commit is contained in:
parent
11645cc370
commit
122d15888a
@ -8,9 +8,10 @@
|
||||
7 -> Leadtek Winfast USB II (em2800)
|
||||
8 -> Kworld USB2800 (em2800)
|
||||
9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207]
|
||||
10 -> Hauppauge WinTV HVR 900/950 (em2880)
|
||||
10 -> Hauppauge WinTV HVR 900 (em2880)
|
||||
11 -> Terratec Hybrid XS (em2880)
|
||||
12 -> Kworld PVR TV 2800 RF (em2820/em2840)
|
||||
13 -> Terratec Prodigy XS (em2880)
|
||||
14 -> Pixelview Prolink PlayTV USB 2.0 (em2820/em2840)
|
||||
15 -> V-Gear PocketTV (em2800)
|
||||
16 -> Hauppauge WinTV HVR 950 (em2880)
|
||||
|
@ -149,7 +149,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,
|
||||
@ -376,7 +398,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 },
|
||||
{ },
|
||||
@ -404,6 +426,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);
|
||||
@ -453,6 +476,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;
|
||||
@ -574,6 +598,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
|
||||
|
@ -48,6 +48,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
|
||||
|
||||
@ -177,6 +178,7 @@ struct em28xx_board {
|
||||
unsigned int has_msp34xx:1;
|
||||
|
||||
enum em28xx_decoder decoder;
|
||||
int xc2028_type;
|
||||
|
||||
struct em28xx_input input[MAX_EM28XX_INPUT];
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user