aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/sound/pcm_params.h
diff options
context:
space:
mode:
authorCezary Rojewski <cezary.rojewski@intel.com>2023-11-17 13:05:58 +0100
committerTakashi Iwai <tiwai@suse.de>2023-11-27 17:27:41 +0100
commitd24f1a090d3f2a5c86a8782afeda71c2d2539966 (patch)
treecd1365dfd37f5f73d1cdac09ab35def54e93e888 /include/sound/pcm_params.h
parentASoC: pcm: Honor subformat when configuring runtime (diff)
downloadwireguard-linux-d24f1a090d3f2a5c86a8782afeda71c2d2539966.tar.xz
wireguard-linux-d24f1a090d3f2a5c86a8782afeda71c2d2539966.zip
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>
Diffstat (limited to 'include/sound/pcm_params.h')
-rw-r--r--include/sound/pcm_params.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h
index ba184f49f7e1..fbf35df6e5cf 100644
--- a/include/sound/pcm_params.h
+++ b/include/sound/pcm_params.h
@@ -362,6 +362,8 @@ static inline int params_physical_width(const struct snd_pcm_hw_params *p)
return snd_pcm_format_physical_width(params_format(p));
}
+int snd_pcm_hw_params_bits(const struct snd_pcm_hw_params *p);
+
static inline void
params_set_format(struct snd_pcm_hw_params *p, snd_pcm_format_t fmt)
{