• Takashi Iwai's avatar
    ALSA: pcm: Workaround for weird PulseAudio behavior on rewind error · fb51f1cd
    Takashi Iwai authored
    The commit 9027c463 ("ALSA: pcm: Call ack() whenever appl_ptr is
    updated") introduced the possible error code returned from the PCM
    rewind ioctl.  Basically the change was for handling the indirect PCM
    more correctly, but ironically, it caused rather a side-effect:
    PulseAudio gets pissed off when receiving an error from rewind, throws
    everything away and stops processing further, resulting in the
    silence.
    
    It's clearly a failure in the application side, so the best would be
    to fix that bug in PA.  OTOH, PA is mostly the only user of the rewind
    feature, so it's not good to slap the sole customer.
    
    This patch tries to mitigate the situation: instead of returning an
    error, now the rewind ioctl returns zero when the driver can't rewind.
    It indicates that no rewind was performed, so the behavior is
    consistent, at least.
    
    Fixes: 9027c463 ("ALSA: pcm: Call ack() whenever appl_ptr is updated")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    fb51f1cd
pcm_native.c 103 KB