diff options
-rw-r--r-- | Documentation/video4linux/CARDLIST.em28xx | 1 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-cards.c | 20 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx.h | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx index 4fa58de4b860..a0c7cad20971 100644 --- a/Documentation/video4linux/CARDLIST.em28xx +++ b/Documentation/video4linux/CARDLIST.em28xx | |||
@@ -7,3 +7,4 @@ | |||
7 | 6 -> Terratec Cinergy 200 USB (em2800) | 7 | 6 -> Terratec Cinergy 200 USB (em2800) |
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] | ||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 4ab30476807d..32c2c7fdad2c 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -227,6 +227,22 @@ struct em2820_board em2820_boards[] = { | |||
227 | .amux = 1, | 227 | .amux = 1, |
228 | }}, | 228 | }}, |
229 | }, | 229 | }, |
230 | [EM2820_BOARD_PINNACLE_DVC_90] = { | ||
231 | .name = "Pinnacle Dazzle DVC 90", | ||
232 | .vchannels = 3, | ||
233 | .norm = VIDEO_MODE_PAL, | ||
234 | .has_tuner = 0, | ||
235 | .decoder = EM2820_SAA7113, | ||
236 | .input = {{ | ||
237 | .type = EM2820_VMUX_COMPOSITE1, | ||
238 | .vmux = 0, | ||
239 | .amux = 1, | ||
240 | },{ | ||
241 | .type = EM2820_VMUX_SVIDEO, | ||
242 | .vmux = 9, | ||
243 | .amux = 1, | ||
244 | }}, | ||
245 | }, | ||
230 | }; | 246 | }; |
231 | const unsigned int em2820_bcount = ARRAY_SIZE(em2820_boards); | 247 | const unsigned int em2820_bcount = ARRAY_SIZE(em2820_boards); |
232 | 248 | ||
@@ -237,6 +253,7 @@ struct usb_device_id em2820_id_table [] = { | |||
237 | { USB_DEVICE(0x0ccd, 0x0036), .driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 }, | 253 | { USB_DEVICE(0x0ccd, 0x0036), .driver_info = EM2820_BOARD_TERRATEC_CINERGY_250 }, |
238 | { USB_DEVICE(0x2304, 0x0208), .driver_info = EM2820_BOARD_PINNACLE_USB_2 }, | 254 | { USB_DEVICE(0x2304, 0x0208), .driver_info = EM2820_BOARD_PINNACLE_USB_2 }, |
239 | { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 }, | 255 | { USB_DEVICE(0x2040, 0x4200), .driver_info = EM2820_BOARD_HAUPPAUGE_WINTV_USB_2 }, |
256 | { USB_DEVICE(0x2304, 0x0207), .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, | ||
240 | { }, | 257 | { }, |
241 | }; | 258 | }; |
242 | 259 | ||
@@ -258,6 +275,9 @@ void em2820_card_setup(struct em2820 *dev) | |||
258 | if (tv.audio_processor == AUDIO_CHIP_MSP34XX) { | 275 | if (tv.audio_processor == AUDIO_CHIP_MSP34XX) { |
259 | dev->has_msp34xx=1; | 276 | dev->has_msp34xx=1; |
260 | } else dev->has_msp34xx=0; | 277 | } else dev->has_msp34xx=0; |
278 | em2820_write_regs_req(dev,0x06,0x00,"\x40",1);// Serial Bus Frequency Select Register | ||
279 | em2820_write_regs_req(dev,0x0f,0x00,"\x87",1);// XCLK Frequency Select Register | ||
280 | em2820_write_regs_req(dev,0x88,0x0d,"\xd0",1); | ||
261 | } | 281 | } |
262 | } | 282 | } |
263 | 283 | ||
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h index 15760d3d753d..8c58c5b5fa36 100644 --- a/drivers/media/video/em28xx/em28xx.h +++ b/drivers/media/video/em28xx/em28xx.h | |||
@@ -40,6 +40,7 @@ | |||
40 | #define EM2800_BOARD_TERRATEC_CINERGY_200 6 | 40 | #define EM2800_BOARD_TERRATEC_CINERGY_200 6 |
41 | #define EM2800_BOARD_LEADTEK_WINFAST_USBII 7 | 41 | #define EM2800_BOARD_LEADTEK_WINFAST_USBII 7 |
42 | #define EM2800_BOARD_KWORLD_USB2800 8 | 42 | #define EM2800_BOARD_KWORLD_USB2800 8 |
43 | #define EM2820_BOARD_PINNACLE_DVC_90 9 | ||
43 | 44 | ||
44 | #define UNSET -1 | 45 | #define UNSET -1 |
45 | 46 | ||