diff options
Diffstat (limited to 'drivers/media/video/cx18/cx18-cards.c')
-rw-r--r-- | drivers/media/video/cx18/cx18-cards.c | 63 |
1 files changed, 56 insertions, 7 deletions
diff --git a/drivers/media/video/cx18/cx18-cards.c b/drivers/media/video/cx18/cx18-cards.c index 9bc221837847..c92a25036f0e 100644 --- a/drivers/media/video/cx18/cx18-cards.c +++ b/drivers/media/video/cx18/cx18-cards.c | |||
@@ -340,13 +340,12 @@ static const struct cx18_card cx18_card_toshiba_qosmio_dvbt = { | |||
340 | 340 | ||
341 | static const struct cx18_card_pci_info cx18_pci_leadtek_pvr2100[] = { | 341 | static const struct cx18_card_pci_info cx18_pci_leadtek_pvr2100[] = { |
342 | { PCI_DEVICE_ID_CX23418, CX18_PCI_ID_LEADTEK, 0x6f27 }, /* PVR2100 */ | 342 | { PCI_DEVICE_ID_CX23418, CX18_PCI_ID_LEADTEK, 0x6f27 }, /* PVR2100 */ |
343 | { PCI_DEVICE_ID_CX23418, CX18_PCI_ID_LEADTEK, 0x6690 }, /* DVR3100 H */ | ||
344 | { 0, 0, 0 } | 343 | { 0, 0, 0 } |
345 | }; | 344 | }; |
346 | 345 | ||
347 | static const struct cx18_card cx18_card_leadtek_pvr2100 = { | 346 | static const struct cx18_card cx18_card_leadtek_pvr2100 = { |
348 | .type = CX18_CARD_LEADTEK_PVR2100, | 347 | .type = CX18_CARD_LEADTEK_PVR2100, |
349 | .name = "Leadtek WinFast PVR2100/DVR3100 H", | 348 | .name = "Leadtek WinFast PVR2100", |
350 | .comment = "Experimenters and photos needed for device to work well.\n" | 349 | .comment = "Experimenters and photos needed for device to work well.\n" |
351 | "\tTo help, mail the ivtv-devel list (www.ivtvdriver.org).\n", | 350 | "\tTo help, mail the ivtv-devel list (www.ivtvdriver.org).\n", |
352 | .v4l2_capabilities = CX18_CAP_ENCODER, | 351 | .v4l2_capabilities = CX18_CAP_ENCODER, |
@@ -365,15 +364,12 @@ static const struct cx18_card cx18_card_leadtek_pvr2100 = { | |||
365 | { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL1, 1 }, | 364 | { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL1, 1 }, |
366 | }, | 365 | }, |
367 | .tuners = { | 366 | .tuners = { |
368 | /* XC3028 tuner */ | 367 | /* XC2028 tuner */ |
369 | { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 }, | 368 | { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 }, |
370 | }, | 369 | }, |
371 | .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 2 }, | 370 | .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 2 }, |
372 | .ddr = { | 371 | .ddr = { |
373 | /* | 372 | /* Pointer to proper DDR config values provided by Terry Wu */ |
374 | * Pointer to proper DDR config values provided by | ||
375 | * Terry Wu <terrywu at leadtek.com.tw> | ||
376 | */ | ||
377 | .chip_config = 0x303, | 373 | .chip_config = 0x303, |
378 | .refresh = 0x3bb, | 374 | .refresh = 0x3bb, |
379 | .timing1 = 0x24220e83, | 375 | .timing1 = 0x24220e83, |
@@ -392,6 +388,58 @@ static const struct cx18_card cx18_card_leadtek_pvr2100 = { | |||
392 | 388 | ||
393 | /* ------------------------------------------------------------------------- */ | 389 | /* ------------------------------------------------------------------------- */ |
394 | 390 | ||
391 | /* Leadtek WinFast DVR3100 H */ | ||
392 | |||
393 | static const struct cx18_card_pci_info cx18_pci_leadtek_dvr3100h[] = { | ||
394 | { PCI_DEVICE_ID_CX23418, CX18_PCI_ID_LEADTEK, 0x6690 }, /* DVR3100 H */ | ||
395 | { 0, 0, 0 } | ||
396 | }; | ||
397 | |||
398 | static const struct cx18_card cx18_card_leadtek_dvr3100h = { | ||
399 | .type = CX18_CARD_LEADTEK_DVR3100H, | ||
400 | .name = "Leadtek WinFast DVR3100 H", | ||
401 | .comment = "Simultaneous DVB-T and Analog capture supported,\n" | ||
402 | "\texcept when capturing Analog from the antenna input.\n", | ||
403 | .v4l2_capabilities = CX18_CAP_ENCODER, | ||
404 | .hw_audio_ctrl = CX18_HW_418_AV, | ||
405 | .hw_muxer = CX18_HW_GPIO_MUX, | ||
406 | .hw_all = CX18_HW_418_AV | CX18_HW_TUNER | CX18_HW_GPIO_MUX | | ||
407 | CX18_HW_DVB | CX18_HW_GPIO_RESET_CTRL, | ||
408 | .video_inputs = { | ||
409 | { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 }, | ||
410 | { CX18_CARD_INPUT_SVIDEO1, 1, | ||
411 | CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 }, | ||
412 | { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE7 }, | ||
413 | }, | ||
414 | .audio_inputs = { | ||
415 | { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 0 }, | ||
416 | { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL1, 1 }, | ||
417 | }, | ||
418 | .tuners = { | ||
419 | /* XC3028 tuner */ | ||
420 | { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 }, | ||
421 | }, | ||
422 | .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 2 }, | ||
423 | .ddr = { | ||
424 | /* Pointer to proper DDR config values provided by Terry Wu */ | ||
425 | .chip_config = 0x303, | ||
426 | .refresh = 0x3bb, | ||
427 | .timing1 = 0x24220e83, | ||
428 | .timing2 = 0x1f, | ||
429 | .tune_lane = 0, | ||
430 | .initial_emrs = 0x2, | ||
431 | }, | ||
432 | .gpio_init.initial_value = 0x6, | ||
433 | .gpio_init.direction = 0x7, | ||
434 | .gpio_audio_input = { .mask = 0x7, | ||
435 | .tuner = 0x6, .linein = 0x2, .radio = 0x2 }, | ||
436 | .xceive_pin = 1, | ||
437 | .pci_list = cx18_pci_leadtek_dvr3100h, | ||
438 | .i2c = &cx18_i2c_std, | ||
439 | }; | ||
440 | |||
441 | /* ------------------------------------------------------------------------- */ | ||
442 | |||
395 | static const struct cx18_card *cx18_card_list[] = { | 443 | static const struct cx18_card *cx18_card_list[] = { |
396 | &cx18_card_hvr1600_esmt, | 444 | &cx18_card_hvr1600_esmt, |
397 | &cx18_card_hvr1600_samsung, | 445 | &cx18_card_hvr1600_samsung, |
@@ -400,6 +448,7 @@ static const struct cx18_card *cx18_card_list[] = { | |||
400 | &cx18_card_cnxt_raptor_pal, | 448 | &cx18_card_cnxt_raptor_pal, |
401 | &cx18_card_toshiba_qosmio_dvbt, | 449 | &cx18_card_toshiba_qosmio_dvbt, |
402 | &cx18_card_leadtek_pvr2100, | 450 | &cx18_card_leadtek_pvr2100, |
451 | &cx18_card_leadtek_dvr3100h, | ||
403 | }; | 452 | }; |
404 | 453 | ||
405 | const struct cx18_card *cx18_get_card(u16 index) | 454 | const struct cx18_card *cx18_get_card(u16 index) |