• Jaroslav Kysela's avatar
    ALSA: pcm: clarify and fix default msbits value for all formats · 85df6b5a
    Jaroslav Kysela authored
    Return used most significant bits from sample bit-width rather than the whole
    physical sample word size. The starting bit offset is defined in the format
    itself.
    
    The behaviour is not changed for 32-bit formats like S32_LE. But with this
    change - msbits value 24 instead 32 is returned for 24-bit formats like S24_LE
    etc.
    
    Also, commit 2112aa03 ("ALSA: pcm: Introduce MSBITS subformat interface")
    compares sample bit-width not physical sample bit-width to reset MSBITS_MAX bit
    from the subformat bitmask.
    
    Probably no applications are using msbits value for other than S32_LE/U32_LE
    formats, because no drivers are reducing msbits value for other formats (with
    the msb offset) at the moment.
    
    For sanity, increase PCM protocol version, letting the user space to detect
    the changed behaviour.
    Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
    Link: https://lore.kernel.org/r/20240222173649.1447549-1-perex@perex.czSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    85df6b5a
pcm_native.c 116 KB