]> err.no Git - linux-2.6/commitdiff
[ALSA] Fix MC97 codec initialization
authorSasha Khapyorsky <sashak@smlink.com>
Thu, 7 Apr 2005 18:22:58 +0000 (20:22 +0200)
committerJaroslav Kysela <perex@suse.cz>
Sun, 29 May 2005 07:58:34 +0000 (09:58 +0200)
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>
sound/pci/ac97/ac97_codec.c

index 61549b1eb59a9f9405a12b504f69d1542f9a9d3d..ab7114c51dcb8a44fb0a62e2feb1327441167c38 100644 (file)
@@ -1964,21 +1964,21 @@ int snd_ac97_mixer(ac97_bus_t *bus, ac97_template_t *template, ac97_t **rac97)
                /* note: it's important to set the rate at first */
                tmp = AC97_MEA_GPIO;
                if (ac97->ext_mid & AC97_MEI_LINE1) {
-                       snd_ac97_write_cache(ac97, AC97_LINE1_RATE, 12000);
+                       snd_ac97_write_cache(ac97, AC97_LINE1_RATE, 8000);
                        tmp |= AC97_MEA_ADC1 | AC97_MEA_DAC1;
                }
                if (ac97->ext_mid & AC97_MEI_LINE2) {
-                       snd_ac97_write_cache(ac97, AC97_LINE2_RATE, 12000);
+                       snd_ac97_write_cache(ac97, AC97_LINE2_RATE, 8000);
                        tmp |= AC97_MEA_ADC2 | AC97_MEA_DAC2;
                }
                if (ac97->ext_mid & AC97_MEI_HANDSET) {
-                       snd_ac97_write_cache(ac97, AC97_HANDSET_RATE, 12000);
+                       snd_ac97_write_cache(ac97, AC97_HANDSET_RATE, 8000);
                        tmp |= AC97_MEA_HADC | AC97_MEA_HDAC;
                }
-               snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0xff00 & ~(tmp << 8));
+               snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0);
                udelay(100);
                /* nothing should be in powerdown mode */
-               snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0xff00 & ~(tmp << 8));
+               snd_ac97_write_cache(ac97, AC97_EXTENDED_MSTATUS, 0);
                end_time = jiffies + (HZ / 10);
                do {
                        if ((snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS) & tmp) == tmp)