diff options
author | Hartmut Hackmann <hartmut.hackmann@t-online.de> | 2006-01-14 18:26:44 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2006-01-15 06:02:57 -0500 |
commit | 0f79c3637a871c6ebcf8b8c1762725152d5a18d7 (patch) | |
tree | 0e0479dd1b5476dc0835b1fb3a40fd270424e196 | |
parent | 436eddd035c0ff807f4c64551a5a6edc7fb299d0 (diff) |
V4L/DVB (3371): Turn frame locked sound on, basic support for FM radio with TDA8275(a)
- Enabled audio PLL. This is mandatory for NICAM sound
- modify FM IF frequency to 5.5MHz for SAA7133/35 if tuner is tda8290
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r-- | drivers/media/video/saa7134/saa7134-cards.c | 6 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-tvaudio.c | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 275d06af69d2..c64718aec9cb 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2515,6 +2515,7 @@ struct saa7134_board saa7134_boards[] = { | |||
2515 | .tuner_addr = ADDR_UNSET, | 2515 | .tuner_addr = ADDR_UNSET, |
2516 | .radio_addr = ADDR_UNSET, | 2516 | .radio_addr = ADDR_UNSET, |
2517 | .mpeg = SAA7134_MPEG_DVB, | 2517 | .mpeg = SAA7134_MPEG_DVB, |
2518 | .gpiomask = 1 << 21, | ||
2518 | .inputs = {{ | 2519 | .inputs = {{ |
2519 | .name = name_tv, | 2520 | .name = name_tv, |
2520 | .vmux = 1, | 2521 | .vmux = 1, |
@@ -2529,6 +2530,11 @@ struct saa7134_board saa7134_boards[] = { | |||
2529 | .vmux = 8, | 2530 | .vmux = 8, |
2530 | .amux = LINE1, | 2531 | .amux = LINE1, |
2531 | }}, | 2532 | }}, |
2533 | .radio = { | ||
2534 | .name = name_radio, | ||
2535 | .amux = TV, | ||
2536 | .gpio = 0x0200000, | ||
2537 | }, | ||
2532 | }, | 2538 | }, |
2533 | [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = { | 2539 | [SAA7134_BOARD_MSI_TVATANYWHERE_PLUS] = { |
2534 | .name = "MSI TV@Anywhere plus", | 2540 | .name = "MSI TV@Anywhere plus", |
diff --git a/drivers/media/video/saa7134/saa7134-tvaudio.c b/drivers/media/video/saa7134/saa7134-tvaudio.c index 93268427750d..afa4dcb3f96d 100644 --- a/drivers/media/video/saa7134/saa7134-tvaudio.c +++ b/drivers/media/video/saa7134/saa7134-tvaudio.c | |||
@@ -180,8 +180,8 @@ static void tvaudio_init(struct saa7134_dev *dev) | |||
180 | saa_writeb(SAA7134_AUDIO_CLOCK0, clock & 0xff); | 180 | saa_writeb(SAA7134_AUDIO_CLOCK0, clock & 0xff); |
181 | saa_writeb(SAA7134_AUDIO_CLOCK1, (clock >> 8) & 0xff); | 181 | saa_writeb(SAA7134_AUDIO_CLOCK1, (clock >> 8) & 0xff); |
182 | saa_writeb(SAA7134_AUDIO_CLOCK2, (clock >> 16) & 0xff); | 182 | saa_writeb(SAA7134_AUDIO_CLOCK2, (clock >> 16) & 0xff); |
183 | // frame locked audio was reported not to be reliable | 183 | /* frame locked audio is mandatory for NICAM */ |
184 | saa_writeb(SAA7134_AUDIO_PLL_CTRL, 0x02); | 184 | saa_writeb(SAA7134_AUDIO_PLL_CTRL, 0x01); |
185 | 185 | ||
186 | saa_writeb(SAA7134_NICAM_ERROR_LOW, 0x14); | 186 | saa_writeb(SAA7134_NICAM_ERROR_LOW, 0x14); |
187 | saa_writeb(SAA7134_NICAM_ERROR_HIGH, 0x50); | 187 | saa_writeb(SAA7134_NICAM_ERROR_HIGH, 0x50); |
@@ -809,7 +809,12 @@ static int tvaudio_thread_ddep(void *data) | |||
809 | dprintk("ddep override: %s\n",stdres[audio_ddep]); | 809 | dprintk("ddep override: %s\n",stdres[audio_ddep]); |
810 | } else if (&card(dev).radio == dev->input) { | 810 | } else if (&card(dev).radio == dev->input) { |
811 | dprintk("FM Radio\n"); | 811 | dprintk("FM Radio\n"); |
812 | norms = (0x0f << 2) | 0x01; | 812 | if (dev->tuner_type == TUNER_PHILIPS_TDA8290) { |
813 | norms = (0x11 << 2) | 0x01; | ||
814 | saa_dsp_writel(dev, 0x42c >> 2, 0x729555); | ||
815 | } else { | ||
816 | norms = (0x0f << 2) | 0x01; | ||
817 | } | ||
813 | } else { | 818 | } else { |
814 | /* (let chip) scan for sound carrier */ | 819 | /* (let chip) scan for sound carrier */ |
815 | norms = 0; | 820 | norms = 0; |