aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88/cx88-tvaudio.c
diff options
context:
space:
mode:
authorDarron Broad <darron@kewl.org>2008-10-15 13:18:42 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-17 16:29:14 -0400
commit430189da042f8cc3305b8fbbce18ea103501fb90 (patch)
treea1d42b5189b511fcd7a1788e7ac189f4368a83d5 /drivers/media/video/cx88/cx88-tvaudio.c
parent953cafc04e9ef9d2fd9f8afb3b3bbde1f8bb9317 (diff)
V4L/DVB (9269): cx88: add I2S-ADC tvaudio method
This adds I2S-ADC tvaudio mode as a formal method of audio delivery. This fixes one bug and adds fm audio via I2S-ADC on cards that support it. The bug occured before when I2S-ADC mode was initiated on composite/s-video open but was then reset within 500ms by the audio thread which used any previous audio tuning details. Signed-off-by: Darron Broad <darron@kewl.org> Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88/cx88-tvaudio.c')
-rw-r--r--drivers/media/video/cx88/cx88-tvaudio.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-tvaudio.c b/drivers/media/video/cx88/cx88-tvaudio.c
index 3a1977f41e27..7dd506b987fe 100644
--- a/drivers/media/video/cx88/cx88-tvaudio.c
+++ b/drivers/media/video/cx88/cx88-tvaudio.c
@@ -767,6 +767,14 @@ void cx88_set_tvaudio(struct cx88_core *core)
767 case WW_FM: 767 case WW_FM:
768 set_audio_standard_FM(core, radio_deemphasis); 768 set_audio_standard_FM(core, radio_deemphasis);
769 break; 769 break;
770 case WW_I2SADC:
771 set_audio_start(core, 0x01);
772 /* Slave/Philips/Autobaud */
773 cx_write(AUD_I2SINPUTCNTL, 0);
774 /* Switch to "I2S ADC mode" */
775 cx_write(AUD_I2SCNTL, 0x1);
776 set_audio_finish(core, EN_I2SIN_ENABLE);
777 break;
770 case WW_NONE: 778 case WW_NONE:
771 default: 779 default:
772 printk("%s/0: unknown tv audio mode [%d]\n", 780 printk("%s/0: unknown tv audio mode [%d]\n",
@@ -895,6 +903,9 @@ void cx88_set_stereo(struct cx88_core *core, u32 mode, int manual)
895 break; 903 break;
896 } 904 }
897 break; 905 break;
906 case WW_I2SADC:
907 /* DO NOTHING */
908 break;
898 } 909 }
899 910
900 if (UNSET != ctl) { 911 if (UNSET != ctl) {