diff options
author | Sasha Khapyorsky <sashak@smlink.com> | 2005-04-07 14:22:58 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2005-05-29 03:58:34 -0400 |
commit | 8e8311b0ac4dc8a2cf317e122a6f7dc4467e3254 (patch) | |
tree | 2556eec03591d03271bb3f225fba91edebf68470 /sound/pci/ac97 | |
parent | 2c56c47f678b0388290686d5a0988d8806ffe5cc (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')
-rw-r--r-- | sound/pci/ac97/ac97_codec.c | 10 |
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) |