V4L/DVB (9228): cx88: Add audio routing for the hvr-3000/4000
authorDarron Broad <darron@kewl.org>
Sat, 11 Oct 2008 14:49:30 +0000 (11:49 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 17 Oct 2008 20:24:22 +0000 (17:24 -0300)
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>
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88.h

index 3ef49c7a2514266c575eae2135fd62aafd285850..6986844e33c84369e115ef4c184bcbb057c67676 100644 (file)
@@ -1277,18 +1277,22 @@ static const struct cx88_board cx88_boards[] = {
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
                .tda9887_conf   = TDA9887_PRESENT,
+               .audio_chip     = V4L2_IDENT_WM8775,
                .input          = {{
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
                        .gpio0  = 0x84bf,
+                       .audioroute = 1,
                },{
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
                        .gpio0  = 0x84bf,
+                       .audioroute = 2,
                },{
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
                        .gpio0  = 0x84bf,
+                       .audioroute = 2,
                }},
                .mpeg           = CX88_MPEG_DVB,
                .num_frontends  = 2,
@@ -1717,6 +1721,7 @@ static const struct cx88_board cx88_boards[] = {
                .tuner_addr     = ADDR_UNSET,
                .radio_addr     = ADDR_UNSET,
                .tda9887_conf   = TDA9887_PRESENT,
+               .audio_chip     = V4L2_IDENT_WM8775,
                /*
                 * GPIO0 (WINTV2000)
                 *
@@ -1751,14 +1756,17 @@ static const struct cx88_board cx88_boards[] = {
                        .type   = CX88_VMUX_TELEVISION,
                        .vmux   = 0,
                        .gpio0  = 0xc4bf,
+                       .audioroute = 1,
                }, {
                        .type   = CX88_VMUX_COMPOSITE1,
                        .vmux   = 1,
                        .gpio0  = 0xc4bf,
+                       .audioroute = 2,
                }, {
                        .type   = CX88_VMUX_SVIDEO,
                        .vmux   = 2,
                        .gpio0  = 0xc4bf,
+                       .audioroute = 2,
                } },
                /* fixme: Add radio support */
                .mpeg           = CX88_MPEG_DVB,
index 063f7b57e42ae063e2b7559471a47d5c25039f73..100ffc4b5d90002e172560fb199363b46e349321 100644 (file)
@@ -247,7 +247,7 @@ struct cx88_input {
        enum cx88_itype type;
        u32             gpio0, gpio1, gpio2, gpio3;
        unsigned int    vmux:2;
-       unsigned int    audioroute:2;
+       unsigned int    audioroute:4;
 };
 
 struct cx88_board {