linux/sound
Clemens Ladisch 7a1bd86e26 ALSA: cmipci: work around invalid PCM pointer
commit 1c583063a5 upstream.

When the CMI8738 FRAME2 register is read, the chip sometimes (probably
when wrapping around) returns an invalid value that would be outside the
programmed DMA buffer. This leads to an inconsistent PCM pointer that is
likely to result in an underrun.

To work around this, read the register multiple times until we get a
valid value; the error state seems to be very short-lived.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Reported-and-tested-by: Matija Nalis <mnalis-alsadev@voyager.hr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-04-01 15:58:23 -07:00
..
aoa
arm
atmel
core ALSA: pcm core - fix fifo_size channels interval check 2010-03-15 08:49:48 -07:00
drivers
i2c
isa
mips sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer 2010-01-06 15:03:26 -08:00
oss
parisc
pci ALSA: cmipci: work around invalid PCM pointer 2010-04-01 15:58:23 -07:00
pcmcia sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer 2010-01-06 15:03:26 -08:00
ppc
sh
soc ASoC: fix ak4104 register array access 2010-03-15 08:49:52 -07:00
sparc
spi
synth
usb ALSA: USB MIDI support for Access Music VirusTI 2010-03-15 08:49:49 -07:00
ac97_bus.c
Kconfig
last.c
Makefile
sound_core.c
sound_firmware.c