Commit f7d66e82 authored by Hartmut Hackmann's avatar Hartmut Hackmann Committed by Mauro Carvalho Chehab

V4L/DVB (3275): Allow SAA7134 to fall back to AM sound when there is NICAM-L

This patch allows to select AM sound even if NICAM is detected.
Proposed by Alain Frappin
Signed-off-by: default avatarHartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 99d33d50
...@@ -139,6 +139,12 @@ static struct saa7134_tvaudio tvaudio[] = { ...@@ -139,6 +139,12 @@ static struct saa7134_tvaudio tvaudio[] = {
.carr1 = 6500, .carr1 = 6500,
.carr2 = 5850, .carr2 = 5850,
.mode = TVAUDIO_NICAM_AM, .mode = TVAUDIO_NICAM_AM,
},{
.name = "SECAM-L MONO",
.std = V4L2_STD_SECAM,
.carr1 = 6500,
.carr2 = -1,
.mode = TVAUDIO_AM_MONO,
},{ },{
.name = "SECAM-D/K", .name = "SECAM-D/K",
.std = V4L2_STD_SECAM, .std = V4L2_STD_SECAM,
...@@ -334,6 +340,12 @@ static void tvaudio_setmode(struct saa7134_dev *dev, ...@@ -334,6 +340,12 @@ static void tvaudio_setmode(struct saa7134_dev *dev,
saa_writeb(SAA7134_STEREO_DAC_OUTPUT_SELECT, 0xa1); saa_writeb(SAA7134_STEREO_DAC_OUTPUT_SELECT, 0xa1);
saa_writeb(SAA7134_NICAM_CONFIG, 0x00); saa_writeb(SAA7134_NICAM_CONFIG, 0x00);
break; 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: case TVAUDIO_FM_SAT_STEREO:
/* not implemented (yet) */ /* not implemented (yet) */
break; break;
...@@ -414,6 +426,7 @@ static int tvaudio_getstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au ...@@ -414,6 +426,7 @@ static int tvaudio_getstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au
switch (audio->mode) { switch (audio->mode) {
case TVAUDIO_FM_MONO: case TVAUDIO_FM_MONO:
case TVAUDIO_AM_MONO:
return V4L2_TUNER_SUB_MONO; return V4L2_TUNER_SUB_MONO;
case TVAUDIO_FM_K_STEREO: case TVAUDIO_FM_K_STEREO:
case TVAUDIO_FM_BG_STEREO: case TVAUDIO_FM_BG_STEREO:
...@@ -480,6 +493,7 @@ static int tvaudio_setstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au ...@@ -480,6 +493,7 @@ static int tvaudio_setstereo(struct saa7134_dev *dev, struct saa7134_tvaudio *au
switch (audio->mode) { switch (audio->mode) {
case TVAUDIO_FM_MONO: case TVAUDIO_FM_MONO:
case TVAUDIO_AM_MONO:
/* nothing to do ... */ /* nothing to do ... */
break; break;
case TVAUDIO_FM_K_STEREO: case TVAUDIO_FM_K_STEREO:
......
...@@ -60,6 +60,7 @@ enum saa7134_tvaudio_mode { ...@@ -60,6 +60,7 @@ enum saa7134_tvaudio_mode {
TVAUDIO_FM_K_STEREO = 4, TVAUDIO_FM_K_STEREO = 4,
TVAUDIO_NICAM_AM = 5, TVAUDIO_NICAM_AM = 5,
TVAUDIO_NICAM_FM = 6, TVAUDIO_NICAM_FM = 6,
TVAUDIO_AM_MONO = 7
}; };
enum saa7134_audio_in { enum saa7134_audio_in {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment