• Andreas Mohr's avatar
    ALSA: azt3328: period bug fix (for PA), add missing ACK on stop timer · 7974150c
    Andreas Mohr authored
    . 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: default avatarAndreas Mohr <andi@lisas.de>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    7974150c
azt3328.c 75.9 KB