V4L/DVB (3275): Allow SAA7134 to fall back to AM sound when there is NICAM-L
authorHartmut Hackmann <hartmut.hackmann@t\-online.de>
Tue, 7 Feb 2006 08:25:37 +0000 (06:25 -0200)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 7 Feb 2006 08:25:37 +0000 (06:25 -0200)
This patch allows to select AM sound even if NICAM is detected.
Proposed by Alain Frappin

Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/saa7134/saa7134-tvaudio.c
drivers/media/video/saa7134/saa7134.h

index afa4dcb3f96dde118b377034ddb2aede5016afc1..3043233a8b6e2d7e0f70cb159061e9cead7295db 100644 (file)
@@ -139,6 +139,12 @@ static struct saa7134_tvaudio tvaudio[] = {
                .carr1         = 6500,
                .carr2         = 5850,
                .mode          = TVAUDIO_NICAM_AM,
+       },{
+               .name          = "SECAM-L MONO",
+               .std           = V4L2_STD_SECAM,
+               .carr1         = 6500,
+               .carr2         = -1,
+               .mode          = TVAUDIO_AM_MONO,
        },{
                .name          = "SECAM-D/K",
                .std           = V4L2_STD_SECAM,
@@ -334,6 +340,12 @@ static void tvaudio_setmode(struct saa7134_dev *dev,
                saa_writeb(SAA7134_STEREO_DAC_OUTPUT_SELECT,  0xa1);
                saa_writeb(SAA7134_NICAM_CONFIG,              0x00);
                break;
+       case TVAUDIO_AM_MONO:
+               saa_writeb(SAA7134_DEMODULATOR,               0x12);
+               saa_writeb(SAA7134_DCXO_IDENT_CTRL,           0x00);
+               saa_writeb(SAA7134_FM_DEEMPHASIS,             0x44);
+               saa_writeb(SAA7134_STEREO_DAC_OUTPUT_SELECT,  0xa0);
+               break;
        case TVAUDIO_FM_SAT_STEREO:
                /* not implemented (yet) */
                break;
@@ -414,6 +426,7 @@ static int tvaudio_getstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au
 
        switch (audio->mode) {
        case TVAUDIO_FM_MONO:
+       case TVAUDIO_AM_MONO:
                return V4L2_TUNER_SUB_MONO;
        case TVAUDIO_FM_K_STEREO:
        case TVAUDIO_FM_BG_STEREO:
@@ -480,6 +493,7 @@ static int tvaudio_setstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au
 
        switch (audio->mode) {
        case TVAUDIO_FM_MONO:
+       case TVAUDIO_AM_MONO:
                /* nothing to do ... */
                break;
        case TVAUDIO_FM_K_STEREO:
index 3b8f466c7e17aed2c33871ff82a3b912540326a7..b638df941ff9cd8eb9c3d254eb55a1f5fe6ea5eb 100644 (file)
@@ -60,6 +60,7 @@ enum saa7134_tvaudio_mode {
        TVAUDIO_FM_K_STEREO   = 4,
        TVAUDIO_NICAM_AM      = 5,
        TVAUDIO_NICAM_FM      = 6,
+       TVAUDIO_AM_MONO       = 7
 };
 
 enum saa7134_audio_in {