ALSA: hda: Upgrade stream-format infrastructure
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 17 Nov 2023 12:05:58 +0000 (13:05 +0100)
committerTakashi Iwai <tiwai@suse.de>
Mon, 27 Nov 2023 16:27:41 +0000 (17:27 +0100)
commitd24f1a090d3f2a5c86a8782afeda71c2d2539966
treecd1365dfd37f5f73d1cdac09ab35def54e93e888
parent4a6ba09e892aab49fda8464e4f9b244a17fd75b2
ALSA: hda: Upgrade stream-format infrastructure

Introduce a set of functions that ultimately facilite SDxFMT-related
calculations in atomic manner:

First, introduce snd_pcm_subformat_width() and snd_pcm_hw_params_bits()
helpers that separate the base functionality from the HDAudio-specific
one.

snd_hdac_format_normalize() - format converter. S20_LE, S24_LE and their
unsigned and BE friends are invalid from HDAudio perspective but still
can be specified as function argument due to compatibility reasons.

snd_hdac_stream_format_bits() - obtain just the bits-per-sample value.
Does not ignore subformat and msbits parameters.

snd_hdac_stream_format() and snd_hdac_spdif_stream_format() - obtain the
SDxFMT value given the audio format parameters. The former is stripped
away of spdif-related information. Useful for users that do not care
about them.

Acked-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Acked-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20231117120610.1755254-5-cezary.rojewski@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/hdaudio.h
include/sound/pcm_params.h
sound/core/pcm_lib.c
sound/hda/hdac_device.c