diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.em28xx | 3 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 29 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 2 |
3 files changed, 31 insertions, 3 deletions
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index f809834af12d..94b53bd71301 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
@@ -8,9 +8,10 @@ | |||
8 | 7 -> Leadtek Winfast USB II (em2800) | 8 | 7 -> Leadtek Winfast USB II (em2800) |
9 | 8 -> Kworld USB2800 (em2800) | 9 | 8 -> Kworld USB2800 (em2800) |
10 | 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] | 10 | 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] |
11 | 10 -> Hauppauge WinTV HVR 900/950 (em2880) | 11 | 10 -> Hauppauge WinTV HVR 900 (em2880) |
12 | 11 -> Terratec Hybrid XS (em2880) | 12 | 11 -> Terratec Hybrid XS (em2880) |
13 | 12 -> Kworld PVR TV 2800 RF (em2820/em2840) | 13 | 12 -> Kworld PVR TV 2800 RF (em2820/em2840) |
14 | 13 -> Terratec Prodigy XS (em2880) | 14 | 13 -> Terratec Prodigy XS (em2880) |
15 | 14 -> Pixelview Prolink PlayTV USB 2.0 (em2820/em2840) | 15 | 14 -> Pixelview Prolink PlayTV USB 2.0 (em2820/em2840) |
16 | 15 -> V-Gear PocketTV (em2800) | 16 | 15 -> V-Gear PocketTV (em2800) |
17 | 16 -> Hauppauge WinTV HVR 950 (em2880) | ||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index fd64058a04e2..c40b9d9b3070 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -149,7 +149,29 @@ struct em28xx_board em28xx_boards[] = { | |||
149 | }}, | 149 | }}, |
150 | }, | 150 | }, |
151 | [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900] = { | 151 | [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900] = { |
152 | .name = "Hauppauge WinTV HVR 900/950", | 152 | .name = "Hauppauge WinTV HVR 900", |
153 | .vchannels = 3, | ||
154 | .tda9887_conf = TDA9887_PRESENT, | ||
155 | .tuner_type = TUNER_XC2028, | ||
156 | .has_tuner = 1, | ||
157 | .xc2028_type = XC2028_FIRM_MTS, | ||
158 | .decoder = EM28XX_TVP5150, | ||
159 | .input = {{ | ||
160 | .type = EM28XX_VMUX_TELEVISION, | ||
161 | .vmux = TVP5150_COMPOSITE0, | ||
162 | .amux = 0, | ||
163 | },{ | ||
164 | .type = EM28XX_VMUX_COMPOSITE1, | ||
165 | .vmux = TVP5150_COMPOSITE1, | ||
166 | .amux = 1, | ||
167 | },{ | ||
168 | .type = EM28XX_VMUX_SVIDEO, | ||
169 | .vmux = TVP5150_SVIDEO, | ||
170 | .amux = 1, | ||
171 | }}, | ||
172 | }, | ||
173 | [EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950] = { | ||
174 | .name = "Hauppauge WinTV HVR 950", | ||
153 | .vchannels = 3, | 175 | .vchannels = 3, |
154 | .tda9887_conf = TDA9887_PRESENT, | 176 | .tda9887_conf = TDA9887_PRESENT, |
155 | .tuner_type = TUNER_XC2028, | 177 | .tuner_type = TUNER_XC2028, |
@@ -376,7 +398,7 @@ struct usb_device_id em28xx_id_table [] = { | |||
376 | { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 }, | 398 | { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 }, |
377 | { USB_DEVICE(0x2304, 0x0207), .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, | 399 | { USB_DEVICE(0x2304, 0x0207), .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, |
378 | { USB_DEVICE(0x2040, 0x6500), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 }, | 400 | { USB_DEVICE(0x2040, 0x6500), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 }, |
379 | { USB_DEVICE(0x2040, 0x6513), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900 }, | 401 | { USB_DEVICE(0x2040, 0x6513), .driver_info = EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 }, |
380 | { USB_DEVICE(0x0ccd, 0x0042), .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS }, | 402 | { USB_DEVICE(0x0ccd, 0x0042), .driver_info = EM2880_BOARD_TERRATEC_HYBRID_XS }, |
381 | { USB_DEVICE(0x0ccd, 0x0047), .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS }, | 403 | { USB_DEVICE(0x0ccd, 0x0047), .driver_info = EM2880_BOARD_TERRATEC_PRODIGY_XS }, |
382 | { }, | 404 | { }, |
@@ -404,6 +426,7 @@ void em28xx_pre_card_setup(struct em28xx *dev) | |||
404 | switch(dev->model){ | 426 | switch(dev->model){ |
405 | case EM2880_BOARD_TERRATEC_PRODIGY_XS: | 427 | case EM2880_BOARD_TERRATEC_PRODIGY_XS: |
406 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: | 428 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: |
429 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: | ||
407 | case EM2880_BOARD_TERRATEC_HYBRID_XS: | 430 | case EM2880_BOARD_TERRATEC_HYBRID_XS: |
408 | /* reset through GPIO? */ | 431 | /* reset through GPIO? */ |
409 | em28xx_write_regs_req(dev, 0x00, 0x08, "\x7d", 1); | 432 | em28xx_write_regs_req(dev, 0x00, 0x08, "\x7d", 1); |
@@ -453,6 +476,7 @@ static void em28xx_config_tuner (struct em28xx *dev) | |||
453 | 476 | ||
454 | ctl.fname = XC2028_DEFAULT_FIRMWARE; | 477 | ctl.fname = XC2028_DEFAULT_FIRMWARE; |
455 | ctl.max_len = 64; | 478 | ctl.max_len = 64; |
479 | ctl.type = em28xx_boards[dev->model].xc2028_type; | ||
456 | 480 | ||
457 | xc2028_cfg.tuner = TUNER_XC2028; | 481 | xc2028_cfg.tuner = TUNER_XC2028; |
458 | xc2028_cfg.priv = &ctl; | 482 | xc2028_cfg.priv = &ctl; |
@@ -574,6 +598,7 @@ void em28xx_card_setup(struct em28xx *dev) | |||
574 | switch (dev->model) { | 598 | switch (dev->model) { |
575 | case EM2820_BOARD_HAUPPAUGE_WINTV_USB_2: | 599 | case EM2820_BOARD_HAUPPAUGE_WINTV_USB_2: |
576 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: | 600 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: |
601 | case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950: | ||
577 | { | 602 | { |
578 | struct tveeprom tv; | 603 | struct tveeprom tv; |
579 | #ifdef CONFIG_MODULES | 604 | #ifdef CONFIG_MODULES |
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h index 8d045867dac7..db82b51c85ff 100644 --- a/drivers/media/video/em28xx/em28xx.h +++ b/drivers/media/video/em28xx/em28xx.h | |||
@@ -48,6 +48,7 @@ | |||
48 | #define EM2880_BOARD_TERRATEC_PRODIGY_XS 13 | 48 | #define EM2880_BOARD_TERRATEC_PRODIGY_XS 13 |
49 | #define EM2820_BOARD_PROLINK_PLAYTV_USB2 14 | 49 | #define EM2820_BOARD_PROLINK_PLAYTV_USB2 14 |
50 | #define EM2800_BOARD_VGEAR_POCKETTV 15 | 50 | #define EM2800_BOARD_VGEAR_POCKETTV 15 |
51 | #define EM2880_BOARD_HAUPPAUGE_WINTV_HVR_950 16 | ||
51 | 52 | ||
52 | #define UNSET -1 | 53 | #define UNSET -1 |
53 | 54 | ||
@@ -177,6 +178,7 @@ struct em28xx_board { | |||
177 | unsigned int has_msp34xx:1; | 178 | unsigned int has_msp34xx:1; |
178 | 179 | ||
179 | enum em28xx_decoder decoder; | 180 | enum em28xx_decoder decoder; |
181 | int xc2028_type; | ||
180 | 182 | ||
181 | struct em28xx_input input[MAX_EM28XX_INPUT]; | 183 | struct em28xx_input input[MAX_EM28XX_INPUT]; |
182 | }; | 184 | }; |