[PATCH] V4L: 919: improves the audio handling for nicam on cx88-audio
authorTorsten Seeboth <Torsten.Seeboth@t-online.de>
Wed, 9 Nov 2005 05:38:51 +0000 (21:38 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 9 Nov 2005 15:56:31 +0000 (07:56 -0800)
Improves the audio handling for NICAM on cx88 audio.

Signed-off-by: Torsten Seeboth <Torsten.Seeboth@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/media/video/cx88/cx88-tvaudio.c

index 7815f332062d74adf142c84f6b1e6339f0c4e4cd..6d9bec1c583b0ecfb03f28ae70af9c94fb01a238 100644 (file)
@@ -123,7 +123,9 @@ static void set_audio_start(struct cx88_core *core, u32 mode)
        cx_write(AUD_VOL_CTL, (1 << 6));
 
        // start programming
-       cx_write(AUD_CTL, 0x0000);
+       cx_write(MO_AUD_DMACNTRL, 0x0000);
+       msleep(100);
+       //cx_write(AUD_CTL, 0x0000);
        cx_write(AUD_INIT, mode);
        cx_write(AUD_INIT_LD, 0x0001);
        cx_write(AUD_SOFT_RESET, 0x0001);
@@ -151,6 +153,7 @@ static void set_audio_finish(struct cx88_core *core, u32 ctl)
 
        /* finish programming */
        cx_write(AUD_SOFT_RESET, 0x0000);
+       cx_write(MO_AUD_DMACNTRL, 0x0003);
 
        /* unmute */
        volume = cx_sread(SHADOW_AUD_VOL_CTL);
@@ -341,6 +344,7 @@ static void set_audio_standard_NICAM(struct cx88_core *core, u32 mode)
                { /* end of list */ },
        };
 
+       set_audio_start(core,SEL_NICAM);
        switch (core->tvaudio) {
        case WW_L:
                dprintk("%s SECAM-L NICAM (status: devel)\n", __FUNCTION__);
@@ -740,7 +744,7 @@ void cx88_set_tvaudio(struct cx88_core *core)
 
                /* set nicam mode - otherwise
                   AUD_NICAM_STATUS2 contains wrong values */
-               set_audio_standard_NICAM(core, EN_NICAM_FORCE_MONO1);
+               set_audio_standard_NICAM(core, EN_NICAM_AUTO_STEREO);
                if (0 == cx88_detect_nicam(core)) {
                        /* fall back to fm / am mono */
                        set_audio_standard_A2(core, EN_A2_FORCE_MONO1);