mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 04:42:12 +00:00
[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:
parent
b5c5c17bab
commit
d214ddc868
@ -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:
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user