V4L/DVB (9228): cx88: Add audio routing for the hvr-3000/4000

This adds audio routing on the hvr-3000/4000

This is a preliminary patch for later routing
requirements.

This adds line-in support on the 2 cards mentioned.
It is also apparent that there is an initial open
fault for line-in when opening composite/s-video.
This will be fixed later.

It was also noticed that the bit-field for audio
routing which was 2 bits needs an increase as
the WM8775 for example, allows a value 4 bits
wide for it's audio mux.

Signed-off-by: Darron Broad <darron@kewl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Darron Broad 2008-10-11 11:49:30 -03:00 committed by Mauro Carvalho Chehab
parent 59b1842da1
commit 923ac7f7d7
2 changed files with 9 additions and 1 deletions

View File

@ -1277,18 +1277,22 @@ static const struct cx88_board cx88_boards[] = {
.tuner_addr = ADDR_UNSET, .tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.audio_chip = V4L2_IDENT_WM8775,
.input = {{ .input = {{
.type = CX88_VMUX_TELEVISION, .type = CX88_VMUX_TELEVISION,
.vmux = 0, .vmux = 0,
.gpio0 = 0x84bf, .gpio0 = 0x84bf,
.audioroute = 1,
},{ },{
.type = CX88_VMUX_COMPOSITE1, .type = CX88_VMUX_COMPOSITE1,
.vmux = 1, .vmux = 1,
.gpio0 = 0x84bf, .gpio0 = 0x84bf,
.audioroute = 2,
},{ },{
.type = CX88_VMUX_SVIDEO, .type = CX88_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
.gpio0 = 0x84bf, .gpio0 = 0x84bf,
.audioroute = 2,
}}, }},
.mpeg = CX88_MPEG_DVB, .mpeg = CX88_MPEG_DVB,
.num_frontends = 2, .num_frontends = 2,
@ -1717,6 +1721,7 @@ static const struct cx88_board cx88_boards[] = {
.tuner_addr = ADDR_UNSET, .tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET, .radio_addr = ADDR_UNSET,
.tda9887_conf = TDA9887_PRESENT, .tda9887_conf = TDA9887_PRESENT,
.audio_chip = V4L2_IDENT_WM8775,
/* /*
* GPIO0 (WINTV2000) * GPIO0 (WINTV2000)
* *
@ -1751,14 +1756,17 @@ static const struct cx88_board cx88_boards[] = {
.type = CX88_VMUX_TELEVISION, .type = CX88_VMUX_TELEVISION,
.vmux = 0, .vmux = 0,
.gpio0 = 0xc4bf, .gpio0 = 0xc4bf,
.audioroute = 1,
}, { }, {
.type = CX88_VMUX_COMPOSITE1, .type = CX88_VMUX_COMPOSITE1,
.vmux = 1, .vmux = 1,
.gpio0 = 0xc4bf, .gpio0 = 0xc4bf,
.audioroute = 2,
}, { }, {
.type = CX88_VMUX_SVIDEO, .type = CX88_VMUX_SVIDEO,
.vmux = 2, .vmux = 2,
.gpio0 = 0xc4bf, .gpio0 = 0xc4bf,
.audioroute = 2,
} }, } },
/* fixme: Add radio support */ /* fixme: Add radio support */
.mpeg = CX88_MPEG_DVB, .mpeg = CX88_MPEG_DVB,

View File

@ -247,7 +247,7 @@ struct cx88_input {
enum cx88_itype type; enum cx88_itype type;
u32 gpio0, gpio1, gpio2, gpio3; u32 gpio0, gpio1, gpio2, gpio3;
unsigned int vmux:2; unsigned int vmux:2;
unsigned int audioroute:2; unsigned int audioroute:4;
}; };
struct cx88_board { struct cx88_board {