aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Walls <awalls@radix.net>2009-06-09 19:37:24 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-06-16 18:07:33 -0400
commit9d5af8629255ef6e62481ee7dea8c6787facc579 (patch)
tree96bad945bb9cefac8e951182a64b161978ab3c94
parent3b27740c7de0fd59032c723ad326926c97383e95 (diff)
V4L/DVB (11950): cx18: Split LeadTek PVR2100 and DVR3100 H into 2 separate card entries
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/cx18/cx18-cards.c61
-rw-r--r--drivers/media/video/cx18/cx18-driver.c3
-rw-r--r--drivers/media/video/cx18/cx18-driver.h5
3 files changed, 63 insertions, 6 deletions
diff --git a/drivers/media/video/cx18/cx18-cards.c b/drivers/media/video/cx18/cx18-cards.c
index 9bc221837847..ae631aa2cd33 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
341static const struct cx18_card_pci_info cx18_pci_leadtek_pvr2100[] = { 341static 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
347static const struct cx18_card cx18_card_leadtek_pvr2100 = { 346static 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,7 +364,7 @@ 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 },
@@ -392,6 +391,61 @@ static const struct cx18_card cx18_card_leadtek_pvr2100 = {
392 391
393/* ------------------------------------------------------------------------- */ 392/* ------------------------------------------------------------------------- */
394 393
394/* Leadtek WinFast DVR3100 H */
395
396static const struct cx18_card_pci_info cx18_pci_leadtek_dvr3100h[] = {
397 { PCI_DEVICE_ID_CX23418, CX18_PCI_ID_LEADTEK, 0x6690 }, /* DVR3100 H */
398 { 0, 0, 0 }
399};
400
401static const struct cx18_card cx18_card_leadtek_dvr3100h = {
402 .type = CX18_CARD_LEADTEK_DVR3100H,
403 .name = "Leadtek WinFast DVR3100 H",
404 .comment = "Experimenters and photos needed for device to work well.\n"
405 "\tTo help, mail the ivtv-devel list (www.ivtvdriver.org).\n",
406 .v4l2_capabilities = CX18_CAP_ENCODER,
407 .hw_audio_ctrl = CX18_HW_418_AV,
408 .hw_muxer = CX18_HW_GPIO_MUX,
409 .hw_all = CX18_HW_418_AV | CX18_HW_TUNER | CX18_HW_GPIO_MUX |
410 CX18_HW_GPIO_RESET_CTRL,
411 .video_inputs = {
412 { CX18_CARD_INPUT_VID_TUNER, 0, CX18_AV_COMPOSITE2 },
413 { CX18_CARD_INPUT_SVIDEO1, 1,
414 CX18_AV_SVIDEO_LUMA3 | CX18_AV_SVIDEO_CHROMA4 },
415 { CX18_CARD_INPUT_COMPOSITE1, 1, CX18_AV_COMPOSITE7 },
416 },
417 .audio_inputs = {
418 { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 0 },
419 { CX18_CARD_INPUT_LINE_IN1, CX18_AV_AUDIO_SERIAL1, 1 },
420 },
421 .tuners = {
422 /* XC3028 tuner */
423 { .std = V4L2_STD_ALL, .tuner = TUNER_XC2028 },
424 },
425 .radio_input = { CX18_CARD_INPUT_AUD_TUNER, CX18_AV_AUDIO5, 2 },
426 .ddr = {
427 /*
428 * Pointer to proper DDR config values provided by
429 * Terry Wu <terrywu at leadtek.com.tw>
430 */
431 .chip_config = 0x303,
432 .refresh = 0x3bb,
433 .timing1 = 0x24220e83,
434 .timing2 = 0x1f,
435 .tune_lane = 0,
436 .initial_emrs = 0x2,
437 },
438 .gpio_init.initial_value = 0x6,
439 .gpio_init.direction = 0x7,
440 .gpio_audio_input = { .mask = 0x7,
441 .tuner = 0x6, .linein = 0x2, .radio = 0x2 },
442 .xceive_pin = 15,
443 .pci_list = cx18_pci_leadtek_dvr3100h,
444 .i2c = &cx18_i2c_std,
445};
446
447/* ------------------------------------------------------------------------- */
448
395static const struct cx18_card *cx18_card_list[] = { 449static const struct cx18_card *cx18_card_list[] = {
396 &cx18_card_hvr1600_esmt, 450 &cx18_card_hvr1600_esmt,
397 &cx18_card_hvr1600_samsung, 451 &cx18_card_hvr1600_samsung,
@@ -400,6 +454,7 @@ static const struct cx18_card *cx18_card_list[] = {
400 &cx18_card_cnxt_raptor_pal, 454 &cx18_card_cnxt_raptor_pal,
401 &cx18_card_toshiba_qosmio_dvbt, 455 &cx18_card_toshiba_qosmio_dvbt,
402 &cx18_card_leadtek_pvr2100, 456 &cx18_card_leadtek_pvr2100,
457 &cx18_card_leadtek_dvr3100h,
403}; 458};
404 459
405const struct cx18_card *cx18_get_card(u16 index) 460const struct cx18_card *cx18_get_card(u16 index)
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c
index bc6a8f9abd3d..92026e82e10e 100644
--- a/drivers/media/video/cx18/cx18-driver.c
+++ b/drivers/media/video/cx18/cx18-driver.c
@@ -152,7 +152,8 @@ MODULE_PARM_DESC(cardtype,
152 "\t\t\t 4 = Yuan MPC718\n" 152 "\t\t\t 4 = Yuan MPC718\n"
153 "\t\t\t 5 = Conexant Raptor PAL/SECAM\n" 153 "\t\t\t 5 = Conexant Raptor PAL/SECAM\n"
154 "\t\t\t 6 = Toshiba Qosmio DVB-T/Analog\n" 154 "\t\t\t 6 = Toshiba Qosmio DVB-T/Analog\n"
155 "\t\t\t 7 = Leadtek WinFast PVR2100/DVR3100 H\n" 155 "\t\t\t 7 = Leadtek WinFast PVR2100\n"
156 "\t\t\t 8 = Leadtek WinFast DVR3100 H\n"
156 "\t\t\t 0 = Autodetect (default)\n" 157 "\t\t\t 0 = Autodetect (default)\n"
157 "\t\t\t-1 = Ignore this card\n\t\t"); 158 "\t\t\t-1 = Ignore this card\n\t\t");
158MODULE_PARM_DESC(pal, "Set PAL standard: B, G, H, D, K, I, M, N, Nc, 60"); 159MODULE_PARM_DESC(pal, "Set PAL standard: B, G, H, D, K, I, M, N, Nc, 60");
diff --git a/drivers/media/video/cx18/cx18-driver.h b/drivers/media/video/cx18/cx18-driver.h
index f89b82367963..c6a1e907f63a 100644
--- a/drivers/media/video/cx18/cx18-driver.h
+++ b/drivers/media/video/cx18/cx18-driver.h
@@ -80,8 +80,9 @@
80#define CX18_CARD_YUAN_MPC718 3 /* Yuan MPC718 */ 80#define CX18_CARD_YUAN_MPC718 3 /* Yuan MPC718 */
81#define CX18_CARD_CNXT_RAPTOR_PAL 4 /* Conexant Raptor PAL */ 81#define CX18_CARD_CNXT_RAPTOR_PAL 4 /* Conexant Raptor PAL */
82#define CX18_CARD_TOSHIBA_QOSMIO_DVBT 5 /* Toshiba Qosmio Interal DVB-T/Analog*/ 82#define CX18_CARD_TOSHIBA_QOSMIO_DVBT 5 /* Toshiba Qosmio Interal DVB-T/Analog*/
83#define CX18_CARD_LEADTEK_PVR2100 6 /* Leadtek WinFast PVR2100/DVR3100 H */ 83#define CX18_CARD_LEADTEK_PVR2100 6 /* Leadtek WinFast PVR2100 */
84#define CX18_CARD_LAST 6 84#define CX18_CARD_LEADTEK_DVR3100H 7 /* Leadtek WinFast DVR3100 H */
85#define CX18_CARD_LAST 7
85 86
86#define CX18_ENC_STREAM_TYPE_MPG 0 87#define CX18_ENC_STREAM_TYPE_MPG 0
87#define CX18_ENC_STREAM_TYPE_TS 1 88#define CX18_ENC_STREAM_TYPE_TS 1