From: Cezary Rojewski Date: Mon, 17 Feb 2025 10:21:07 +0000 (+0100) Subject: ASoC: topology: Save num_channels value for mixer controls X-Git-Tag: v6.15-rc1~173^2~4^2~87^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=81eb3a2bd273b84fa9808e6b13b533f9c55e16eb;p=thirdparty%2Fkernel%2Flinux.git ASoC: topology: Save num_channels value for mixer controls To provide minimal support for multi-channel kcontrols i.e.: more than stereo configuration, store the number of channels specified within the SectionControlMixer. The field is part of the topology standard, currently skipped by the ASoC core. Signed-off-by: Cezary Rojewski Link: https://patch.msgid.link/20250217102115.3539427-3-cezary.rojewski@intel.com Signed-off-by: Mark Brown --- diff --git a/include/sound/soc.h b/include/sound/soc.h index 644cfe26022ed..6bb2fca044c5e 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -1254,6 +1254,7 @@ struct soc_mixer_control { int min, max, platform_max; int reg, rreg; unsigned int shift, rshift; + u32 num_channels; unsigned int sign_bit; unsigned int invert:1; unsigned int autodisable:1; diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c index 921521a84e297..2b86cc3311f76 100644 --- a/sound/soc/soc-topology.c +++ b/sound/soc/soc-topology.c @@ -669,6 +669,7 @@ static int soc_tplg_control_dmixer_create(struct soc_tplg *tplg, struct snd_kcon sm->min = le32_to_cpu(mc->min); sm->invert = le32_to_cpu(mc->invert); sm->platform_max = le32_to_cpu(mc->platform_max); + sm->num_channels = le32_to_cpu(mc->num_channels); /* map io handlers */ err = soc_tplg_kcontrol_bind_io(&mc->hdr, kc, tplg);