diff -cr --exclude=sound alsa-driver-1.0.8.orig/alsa-kernel/pci/ac97/ac97_codec.c alsa-driver-1.0.8/alsa-kernel/pci/ac97/ac97_codec.c *** alsa-driver-1.0.8.orig/alsa-kernel/pci/ac97/ac97_codec.c Tue Jan 11 17:44:52 2005 --- alsa-driver-1.0.8/alsa-kernel/pci/ac97/ac97_codec.c Sun Apr 3 17:52:06 2005 *************** *** 1920,1930 **** /* test for AC'97 */ if (!(ac97->scaps & AC97_SCAP_SKIP_AUDIO) && !(ac97->scaps & AC97_SCAP_AUDIO)) { ! /* test if we can write to the record gain volume register */ ! snd_ac97_write_cache(ac97, AC97_REC_GAIN, 0x8a06); ! if (((err = snd_ac97_read(ac97, AC97_REC_GAIN)) & 0x7fff) == 0x0a06) ! ac97->scaps |= AC97_SCAP_AUDIO; } if (ac97->scaps & AC97_SCAP_AUDIO) { ac97->caps = snd_ac97_read(ac97, AC97_RESET); ac97->ext_id = snd_ac97_read(ac97, AC97_EXTENDED_ID); --- 1920,1935 ---- /* test for AC'97 */ if (!(ac97->scaps & AC97_SCAP_SKIP_AUDIO) && !(ac97->scaps & AC97_SCAP_AUDIO)) { ! if ((ac97->scaps & AC97_SCAP_DETECT_BY_VENDOR)) ! ac97->scaps |= AC97_SCAP_AUDIO; ! else { ! /* test if we can write to the record gain volume register */ ! snd_ac97_write_cache(ac97, AC97_REC_GAIN, 0x8a06); ! if (((err = snd_ac97_read(ac97, AC97_REC_GAIN)) & 0x7fff) == 0x0a06) ! ac97->scaps |= AC97_SCAP_AUDIO; ! } } + if (ac97->scaps & AC97_SCAP_AUDIO) { ac97->caps = snd_ac97_read(ac97, AC97_RESET); ac97->ext_id = snd_ac97_read(ac97, AC97_EXTENDED_ID);