From: Mark Brown Date: Tue, 25 Feb 2025 15:23:45 +0000 (+0000) Subject: ASoC: Intel: avs: Mute and multi-channel controls X-Git-Tag: v6.15-rc1~173^2~4^2~87 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d909b8d13a13d0197877e16aaaa3b2fcbb502858;p=thirdparty%2Fkernel%2Flinux.git ASoC: Intel: avs: Mute and multi-channel controls Merge series from Cezary Rojewski : Note: the patchset DOES provide functional changes to the ASoC framework. Current kcontrols loaded with ASoC topology allow for mono or stereo configuration only. To expand this and provide support to up to 8 channels, first address the limitations found within the ASoC core and then update the user (avs-driver) so that it can utilize these new functionality. The 8 channels max stems from SND_SOC_TPLG_MAX_CHAN constant which is part of UAPI - asoc.h. For the ASoC side, two changes are made: - drop the ambiguous usage of ops.info when determining the kcontrol type - save the num_channels value which is already part of the ALSA-topology but is currently skipped by ASoC core when loading mixer controls For the avs-driver side, merge PEAKVOL IPCs as there is basically no difference between the handles and then do the same with the control operations. The merge for the latter is done is two steps: first provide new implementation which honors the multi-channel controls and then move to it while dropping the now-duplicated code. Amadeusz Sławiński (2): ASoC: Intel: avs: Add volume control for GAIN module ASoC: Intel: avs: Add support for mute for PEAKVOL and GAIN Cezary Rojewski (8): ASoC: topology: Create kcontrols based on their type ASoC: topology: Save num_channels value for mixer controls ASoC: Intel: avs: Make PEAKVOL configurable from topology ASoC: Intel: avs: Update VOLUME and add MUTE IPCs ASoC: Intel: avs: New volume control operations ASoC: Intel: avs: Move to the new control operations ASoC: Intel: avs: Honor the invert flag for mixer controls ASoC: Intel: avs: Support multi-channel PEAKVOL instantiation include/sound/soc.h | 1 + include/uapi/sound/intel/avs/tokens.h | 4 + sound/soc/intel/avs/control.c | 180 ++++++++++++++++++++------ sound/soc/intel/avs/control.h | 12 +- sound/soc/intel/avs/messages.c | 111 +++++++++++++++- sound/soc/intel/avs/messages.h | 24 +++- sound/soc/intel/avs/path.c | 108 ++++++++++++++-- sound/soc/intel/avs/path.h | 5 + sound/soc/intel/avs/topology.c | 47 ++++++- sound/soc/intel/avs/topology.h | 5 + sound/soc/soc-topology.c | 55 +++----- 11 files changed, 440 insertions(+), 112 deletions(-) -- 2.25.1 --- d909b8d13a13d0197877e16aaaa3b2fcbb502858