• Clemens Ladisch's avatar
    ALSA: pcm: fix the fix of the runtime->boundary calculation · ead4046b
    Clemens Ladisch authored
    Commit 7910b4a1 in 2.6.34 changed the
    runtime->boundary calculation to make this value a multiple of both the
    buffer_size and the period_size, because the latter is assumed by the
    runtime->hw_ptr_interrupt calculation.
    
    However, due to the lack of a ioctl that could read the software
    parameters before they are set, the kernel requires that alsa-lib
    calculates the boundary value, too.  The changed algorithm leads to
    a different boundary value used by alsa-lib, which makes, e.g., mplayer
    fail to play a 44.1 kHz file because the silence_size parameter is now
    invalid; bug report:
    <https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5015>.
    
    This patch reverts the change to the boundary calculation, and instead
    fixes the hw_ptr_interrupt calculation to be period-aligned regardless
    of the boundary value.
    Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    ead4046b
pcm_lib.c 58.4 KB