]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: azt3328: period bug fix (for PA), add missing ACK on stop timer
authorAndreas Mohr <andi@lisas.de>
Sun, 21 Nov 2010 11:09:32 +0000 (12:09 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 22 Nov 2010 09:56:53 +0000 (10:56 +0100)
commit49027a2ed5892a0d1b6f2ef95bb4a3203c4904e0
tree9dfa659eccd1865c6c5e5b71591689775a8fd7ca
parent8bbc4e56c0e5f091cc3148cc5f756c5d9c76e8b3
ALSA: azt3328: period bug fix (for PA), add missing ACK on stop timer

. Fix PulseAudio "ALSA driver bug" issue
  (if we have two alternated areas within a 64k DMA buffer, then max
  period size should obviously be 32k only).
  Back references:
   http://pulseaudio.org/wiki/AlsaIssues
   http://fedoraproject.org/wiki/Features/GlitchFreeAudio
. In stop timer function, need to supply ACK in the timer control byte.
. Minor log output correction

When I did my first PA testing recently, the period size bug resulted
in quite precisely observeable half-period-based playback distortion.

PA-based operation is quite a bit more underrun-prone (despite its
zero-copy optimizations etc.) than raw ALSA with this rather spartan
sound hardware implementation on my puny Athlon.

Note that even with this patch, azt3328 still doesn't work for both
cases yet, PA tsched=0 and tsched
(on tsched=0 it will playback tiny fragments of periods, leading to tiny
stuttering sounds with some pauses in between, whereas with
timer-scheduled operation playback works fine - minus some quite increased
underrun trouble on PA vs. ALSA, that is).

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/azt3328.c