Hi,
here is a patch which fixes a bug on T30 computers when switching back
from suspend mode.
The first modification allow the system to recover from errors when a
warm reset is not enough.
The second one fixes the bug I explained.
With this patch no need to kill all the applications using audio devices
before switching to suspend mode.
I made the patch with an old version on the driver (0.9.4) but it's easy
to port it for the CVS version.
Regards,
--
Arnaud
--- ../alsa-driver-0.9.4/alsa-kernel/pci/intel8x0.c 2003-05-20 14:55:15.000000000
+0200
+++ alsa-kernel/pci/intel8x0.c 2003-06-07 12:22:49.000000000 +0200
@@ -1542,7 +1542,10 @@
}
ac97.pci = chip->pci;
if ((err = snd_ac97_mixer(chip->card, &ac97, &x97)) < 0)
+ {
+ iputdword(chip, ICHREG(GLOB_CNT), igetdword(chip, ICHREG(GLOB_CNT)) &
~ICH_AC97COLD);
return err;
+ }
chip->ac97[0] = x97;
snd_ac97_tune_hardware(chip->ac97[0], ac97_quirks);
/* the following three entries are common among all devices */
@@ -1769,7 +1772,7 @@
if (status == (ICH_PCR | ICH_SCR | ICH_TCR))
goto __ok3;
/* wait for other codecs ready status. No secondary codecs? , ok */
- end_time = jiffies + HZ / 4;
+ end_time = jiffies + HZ / 2;
do {
nstatus = igetdword(chip, ICHREG(GLOB_STA)) & (ICH_PCR | ICH_SCR |
ICH_TCR);
if (nstatus != status) {