diff options
author | Devin Heitmueller <dheitmueller@hauppauge.com> | 2010-07-30 23:49:01 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-20 23:17:28 -0400 |
commit | 4270c3cac41e248ee339d18e01251989b74a30f1 (patch) | |
tree | e5b303f254fd41a70ee320fd57f87e0f9682c57b /drivers/media/video/cx231xx/cx231xx-cards.c | |
parent | 8d4c20c960aa9325bd3b9995f518e1f05c374856 (diff) |
[media] cx231xx: Add initial support for Hauppauge USB-Live2
Add initial support for the Hauppauge USBLive 2 (2040:c200). Note that I
had to copy a bunch of the case statements used for the Conexant video grabber
reference design (which also doesn't have a tuner). This will likely need to
be refactored out into the board profile.
Signed-off-by: Devin Heitmueller <dheitmueller@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx231xx/cx231xx-cards.c')
-rw-r--r-- | drivers/media/video/cx231xx/cx231xx-cards.c | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c index ed8139acf19..4d37cb7b075 100644 --- a/drivers/media/video/cx231xx/cx231xx-cards.c +++ b/drivers/media/video/cx231xx/cx231xx-cards.c | |||
@@ -378,11 +378,29 @@ struct cx231xx_board cx231xx_boards[] = { | |||
378 | .gpio = 0, | 378 | .gpio = 0, |
379 | } }, | 379 | } }, |
380 | }, | 380 | }, |
381 | 381 | [CX231XX_BOARD_HAUPPAUGE_USBLIVE2] = { | |
382 | 382 | .name = "Hauppauge USB Live 2", | |
383 | 383 | .tuner_type = TUNER_ABSENT, | |
384 | 384 | .decoder = CX231XX_AVDECODER, | |
385 | 385 | .demod_xfer_mode = 0, | |
386 | .ctl_pin_status_mask = 0xFFFFFFC4, | ||
387 | .agc_analog_digital_select_gpio = 0x0c, | ||
388 | .gpio_pin_status_mask = 0x4001000, | ||
389 | .norm = V4L2_STD_NTSC, | ||
390 | .input = {{ | ||
391 | .type = CX231XX_VMUX_COMPOSITE1, | ||
392 | .vmux = CX231XX_VIN_2_1, | ||
393 | .amux = CX231XX_AMUX_LINE_IN, | ||
394 | .gpio = 0, | ||
395 | }, { | ||
396 | .type = CX231XX_VMUX_SVIDEO, | ||
397 | .vmux = CX231XX_VIN_1_1 | | ||
398 | (CX231XX_VIN_1_2 << 8) | | ||
399 | CX25840_SVIDEO_ON, | ||
400 | .amux = CX231XX_AMUX_LINE_IN, | ||
401 | .gpio = 0, | ||
402 | } }, | ||
403 | }, | ||
386 | }; | 404 | }; |
387 | const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); | 405 | const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards); |
388 | 406 | ||
@@ -410,6 +428,8 @@ struct usb_device_id cx231xx_id_table[] = { | |||
410 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, | 428 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, |
411 | {USB_DEVICE(0x2040, 0xb140), | 429 | {USB_DEVICE(0x2040, 0xb140), |
412 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, | 430 | .driver_info = CX231XX_BOARD_HAUPPAUGE_EXETER}, |
431 | {USB_DEVICE(0x2040, 0xc200), | ||
432 | .driver_info = CX231XX_BOARD_HAUPPAUGE_USBLIVE2}, | ||
413 | {}, | 433 | {}, |
414 | }; | 434 | }; |
415 | 435 | ||
@@ -688,7 +708,8 @@ static int cx231xx_init_dev(struct cx231xx **devhandle, struct usb_device *udev, | |||
688 | 708 | ||
689 | /*To workaround error number=-71 on EP0 for VideoGrabber, | 709 | /*To workaround error number=-71 on EP0 for VideoGrabber, |
690 | need set alt here.*/ | 710 | need set alt here.*/ |
691 | if (dev->model == CX231XX_BOARD_CNXT_VIDEO_GRABBER) { | 711 | if (dev->model == CX231XX_BOARD_CNXT_VIDEO_GRABBER || |
712 | dev->model == CX231XX_BOARD_HAUPPAUGE_USBLIVE2) { | ||
692 | cx231xx_set_alt_setting(dev, INDEX_VIDEO, 3); | 713 | cx231xx_set_alt_setting(dev, INDEX_VIDEO, 3); |
693 | cx231xx_set_alt_setting(dev, INDEX_VANC, 1); | 714 | cx231xx_set_alt_setting(dev, INDEX_VANC, 1); |
694 | } | 715 | } |