[media] cx23885: make analog support work for HVR_1250 (cx23885 variant)

The analog support in the cx23885 driver was completely broken for the
HVR-1250.  Add the necessary code.

Note that this only implements analog for the composite and s-video
inputs. The tuner input continues to be non-functional due to a lack of
analog support in the mt2131 driver.

Validated with the following boards:

HVR-1250 (0070:7911)

Thanks to Steven Toth and Hauppauge for	loaning	me various boards to
regression test	with.

Thanks-to: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Devin Heitmueler <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Devin Heitmueller 2012-07-01 16:15:13 -03:00 committed by Mauro Carvalho Chehab
parent b5c5c17bab
commit d214ddc868
2 changed files with 24 additions and 8 deletions

View File

@ -127,22 +127,37 @@ struct cx23885_board cx23885_boards[] = {
}, },
[CX23885_BOARD_HAUPPAUGE_HVR1250] = { [CX23885_BOARD_HAUPPAUGE_HVR1250] = {
.name = "Hauppauge WinTV-HVR1250", .name = "Hauppauge WinTV-HVR1250",
.porta = CX23885_ANALOG_VIDEO,
.portc = CX23885_MPEG_DVB, .portc = CX23885_MPEG_DVB,
#ifdef MT2131_NO_ANALOG_SUPPORT_YET
.tuner_type = TUNER_PHILIPS_TDA8290,
.tuner_addr = 0x42, /* 0x84 >> 1 */
.tuner_bus = 1,
#endif
.force_bff = 1,
.input = {{ .input = {{
#ifdef MT2131_NO_ANALOG_SUPPORT_YET
.type = CX23885_VMUX_TELEVISION, .type = CX23885_VMUX_TELEVISION,
.vmux = 0, .vmux = CX25840_VIN7_CH3 |
CX25840_VIN5_CH2 |
CX25840_VIN2_CH1,
.amux = CX25840_AUDIO8,
.gpio0 = 0xff00, .gpio0 = 0xff00,
}, { }, {
.type = CX23885_VMUX_DEBUG, #endif
.vmux = 0,
.gpio0 = 0xff01,
}, {
.type = CX23885_VMUX_COMPOSITE1, .type = CX23885_VMUX_COMPOSITE1,
.vmux = 1, .vmux = CX25840_VIN7_CH3 |
CX25840_VIN4_CH2 |
CX25840_VIN6_CH1,
.amux = CX25840_AUDIO7,
.gpio0 = 0xff02, .gpio0 = 0xff02,
}, { }, {
.type = CX23885_VMUX_SVIDEO, .type = CX23885_VMUX_SVIDEO,
.vmux = 2, .vmux = CX25840_VIN7_CH3 |
CX25840_VIN4_CH2 |
CX25840_VIN8_CH1 |
CX25840_SVIDEO_ON,
.amux = CX25840_AUDIO7,
.gpio0 = 0xff02, .gpio0 = 0xff02,
} }, } },
}, },
@ -1526,10 +1541,10 @@ void cx23885_card_setup(struct cx23885_dev *dev)
*/ */
switch (dev->board) { switch (dev->board) {
case CX23885_BOARD_TEVII_S470: case CX23885_BOARD_TEVII_S470:
case CX23885_BOARD_HAUPPAUGE_HVR1250:
/* Currently only enabled for the integrated IR controller */ /* Currently only enabled for the integrated IR controller */
if (!enable_885_ir) if (!enable_885_ir)
break; break;
case CX23885_BOARD_HAUPPAUGE_HVR1250:
case CX23885_BOARD_HAUPPAUGE_HVR1800: case CX23885_BOARD_HAUPPAUGE_HVR1800:
case CX23885_BOARD_HAUPPAUGE_HVR1800lp: case CX23885_BOARD_HAUPPAUGE_HVR1800lp:
case CX23885_BOARD_HAUPPAUGE_HVR1700: case CX23885_BOARD_HAUPPAUGE_HVR1700:

View File

@ -505,6 +505,7 @@ static int cx23885_video_mux(struct cx23885_dev *dev, unsigned int input)
if ((dev->board == CX23885_BOARD_HAUPPAUGE_HVR1800) || if ((dev->board == CX23885_BOARD_HAUPPAUGE_HVR1800) ||
(dev->board == CX23885_BOARD_MPX885) || (dev->board == CX23885_BOARD_MPX885) ||
(dev->board == CX23885_BOARD_HAUPPAUGE_HVR1250) ||
(dev->board == CX23885_BOARD_HAUPPAUGE_HVR1850)) { (dev->board == CX23885_BOARD_HAUPPAUGE_HVR1850)) {
/* Configure audio routing */ /* Configure audio routing */
v4l2_subdev_call(dev->sd_cx25840, audio, s_routing, v4l2_subdev_call(dev->sd_cx25840, audio, s_routing,