diff options
author | Darron Broad <darron@kewl.org> | 2008-10-15 13:18:42 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-17 16:29:14 -0400 |
commit | 430189da042f8cc3305b8fbbce18ea103501fb90 (patch) | |
tree | a1d42b5189b511fcd7a1788e7ac189f4368a83d5 /drivers/media/video/cx88/cx88-tvaudio.c | |
parent | 953cafc04e9ef9d2fd9f8afb3b3bbde1f8bb9317 (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.c | 11 |
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) { |