android_kernel_xiaomi_sm7250/sound
Steve Soule f74890277a ALSA: ac97_codec - increase timeout for analog sections to 5 second
I have a Soundblaster 16PCI. For many years, alsa has had a bug where
not all of the card's controls are detected (many alsa versions,
many kernel versions). In particular, Master Playback Volume is
usually not detected, and so I get no sound or extremely faint sound.
The problem has always been inconsistent: sometimes all of the controls
are detected correctly, and sometimes a partial set is detected. It works
correctly about 10% of the time.

Finally, I got around to tracking down the problem. When the driver
fails, it prints the kernel message "AC'97 0 analog subsections not
ready". This message is generated from the function snd_ac97_mixer()
in ac97_codec.c. The message indicates that the card failed to come
back after reset within the time limit. The time limit is
120 milliseconds.

I tried increasing the time limit to 1 second, and found that this
made the driver work about 70% of the time. I tried increasing it
to 5 seconds, and it now seems to work 100% of the time.

I expect that this change would be completely harmless for
existing cards that work, and would only introduce additional
delay for cards that do not work.

ALSA bug#4032.

Signed-off-by: Steve Soule <sts11dbxr@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2009-12-15 09:31:31 +01:00
..
aoa ALSA: Don't assume i2c device probing always succeeds 2009-10-01 07:46:33 +02:00
arm Merge branch 'topic/misc' into for-linus 2009-12-04 16:22:37 +01:00
atmel
core Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2009-12-12 11:40:50 -08:00
drivers Merge branch 'topic/beep-rename' into topic/core-change 2009-12-01 15:58:10 +01:00
i2c Merge branch 'topic/hda' into for-linus 2009-12-04 16:22:45 +01:00
isa Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2009-12-12 11:40:50 -08:00
mips ALSA: Fix invalid __exit in sound/mips/*.c 2009-10-02 11:06:16 +02:00
oss Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
parisc ALSA: sound/parisc: Move dereference after NULL test 2009-10-30 12:01:38 +01:00
pci ALSA: ac97_codec - increase timeout for analog sections to 5 second 2009-12-15 09:31:31 +01:00
pcmcia pcmcia: rework the irq_req_t typedef 2009-11-28 18:03:14 +01:00
ppc Merge branch 'topic/beep-rename' into topic/core-change 2009-12-01 15:58:10 +01:00
sh Merge branch 'topic/beep-rename' into topic/core-change 2009-12-01 15:58:10 +01:00
soc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 2009-12-12 11:40:50 -08:00
sparc
spi
synth tree-wide: fix typos "couter" -> "counter" 2009-12-04 15:39:51 +01:00
usb ALSA: snd-usb-us122l: add product IDs of US-122MKII and US-144MKII 2009-12-08 12:56:50 +01:00
ac97_bus.c
Kconfig tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
last.c
Makefile
sound_core.c tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
sound_firmware.c