ALSA: pcm: Introduce MSBITS subformat interface
authorJaroslav Kysela <perex@perex.cz>
Fri, 17 Nov 2023 12:05:55 +0000 (13:05 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 27 Nov 2023 16:24:26 +0000 (17:24 +0100)
commit2112aa034907c428785e1a5730927181276ee45b
treec75e6907ab964064ba449d4b716109fcfce1d597
parent26257869672fd4a06a60c2da841e15fb2cb47bbe
ALSA: pcm: Introduce MSBITS subformat interface

Improve granularity of format selection for S32/U32 formats by adding
constants representing 20, 24 and MAX most significant bits.

The MAX means the maximum number of significant bits which can
the physical format hold. For 32-bit formats, MAX is related
to 32 bits. For 8-bit formats, MAX is related to 8 bits etc.

As there is only one user currently (format S32_LE), subformat is
represented by a simple u32 and stores flags only for that one user
alone. The approach of subformat being part of struct snd_pcm_hardware
is a compromise between ALSA and ASoC allowing for
hw_params-intersection code to be alloc/free-less while not adding any
new responsibilities to ASoC runtime structures.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Co-developed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://lore.kernel.org/r/20231117120610.1755254-2-cezary.rojewski@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/pcm.h
include/uapi/sound/asound.h
sound/core/pcm.c
sound/core/pcm_native.c
tools/include/uapi/sound/asound.h