aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ac97/ac97_codec.c
diff options
context:
space:
mode:
authorSasha Khapyorsky <sashak@smlink.com>2005-04-07 14:22:58 -0400
committerJaroslav Kysela <perex@suse.cz>2005-05-29 03:58:34 -0400
commit8e8311b0ac4dc8a2cf317e122a6f7dc4467e3254 (patch)
tree2556eec03591d03271bb3f225fba91edebf68470 /sound/pci/ac97/ac97_codec.c
parent2c56c47f678b0388290686d5a0988d8806ffe5cc (diff)
[ALSA] Fix MC97 codec initialization
AC97 Codec This (especially 12000 -> 8000 sample rate replace) fix popular 'MC97 converters.. not ready' error with modem codecs initializations. Signed-off-by: Sasha Khapyorsky <sashak@smlink.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/ac97/ac97_codec.c')
-rw-r--r--sound/pci/ac97/ac97_codec.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 61549b1eb59a..ab7114c51dcb 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -1964,21 +1964,21 @@ int snd_ac97_mixer(ac97_bus_t *bus, ac97_template_t *template, ac97_t **rac97)
1964 /* note: it's important to set the rate at first */ 1964 /* note: it's important to set the rate at first */
1965 tmp = AC97_MEA_GPIO; 1965 tmp = AC97_MEA_GPIO;
1966 if (ac97->ext_mid & AC97_MEI_LINE1) { 1966 if (ac97->ext_mid & AC97_MEI_LINE1) {
1967 snd_ac97_write_cache(ac97, AC97_LINE1_RATE, 12000); 1967 snd_ac97_write_cache(ac97, AC97_LINE1_RATE, 8000);
1968 tmp |= AC97_MEA_ADC1 | AC97_MEA_DAC1; 1968 tmp |= AC97_MEA_ADC1 | AC97_MEA_DAC1;
1969 } 1969 }
1970 if (ac97->ext_mid & AC97_MEI_LINE2) { 1970 if (ac97->ext_mid & AC97_MEI_LINE2) {
1971 snd_ac97_write_cache(ac97, AC97_LINE2_RATE, 12000); 1971 snd_ac97_write_cache(ac97, AC97_LINE2_RATE, 8000);
1972 tmp |= AC97_MEA_ADC2 | AC97_MEA_DAC2; 1972 tmp |= AC97_MEA_ADC2 | AC97_MEA_DAC2;
1973 } 1973 }
1974 if (ac97->ext_mid & AC97_MEI_HANDSET) { 1974 if (ac97->ext_mid & AC97_MEI_HANDSET) {
1975 snd_ac97_write_cache(ac97, AC97_HANDSET_RATE, 12000); 1975 snd_ac97_write_cache(ac97, AC97_HANDSET_RATE, 8000);
1976 tmp |= AC97_MEA_HADC | AC97_MEA_HDAC; 1976 tmp |= AC97_MEA_HADC | AC97_MEA_HDAC;
1977 } 1977 }
1978 snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0xff00 & ~(tmp << 8)); 1978 snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0);
1979 udelay(100); 1979 udelay(100);
1980 /* nothing should be in powerdown mode */ 1980 /* nothing should be in powerdown mode */
1981 snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0xff00 & ~(tmp << 8)); 1981 snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0);
1982 end_time = jiffies + (HZ / 10); 1982 end_time = jiffies + (HZ / 10);
1983 do { 1983 do {
1984 if ((snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS) & tmp) == tmp) 1984 if ((snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS) & tmp) == tmp)