Re: [PATCH v2] ASoC: codecs: lpass-macro: Add support for channel map mixer control

From: Mohammad Rafi Shaik
Date: Fri Oct 03 2025 - 03:01:05 EST




On 10/1/2025 7:36 PM, Alexey Klimov wrote:
On Tue Sep 2, 2025 at 7:23 AM BST, Mohammad Rafi Shaik wrote:
Introduce the channel map mixer control support for LPASS macro
codec Digital Audio Interfaces (DAIs). The channel map mixer controls
are required by APPS to configure usecase-specific audio routing and

What is APPS here? Will be good to have this abbreviation or acronym explained.


Ack,

will write proper commit description.

channel mapping.

Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@xxxxxxxxxxxxxxxx>
---
Changes in v2:
- Updated patch with improved commit description..
- Link to v1: https://lore.kernel.org/linux-sound/20240930053111.3986838-1-quic_mohs@xxxxxxxxxxx/
---
sound/soc/codecs/lpass-macro-common.c | 55 +++++++++++++++++++++++++++
sound/soc/codecs/lpass-macro-common.h | 2 +
sound/soc/codecs/lpass-rx-macro.c | 12 ++++++
sound/soc/codecs/lpass-tx-macro.c | 9 +++++
sound/soc/codecs/lpass-va-macro.c | 9 +++++
sound/soc/codecs/lpass-wsa-macro.c | 12 ++++++
6 files changed, 99 insertions(+)

diff --git a/sound/soc/codecs/lpass-macro-common.c b/sound/soc/codecs/lpass-macro-common.c
index 6e3b8d0897dd..777af4885245 100644
--- a/sound/soc/codecs/lpass-macro-common.c
+++ b/sound/soc/codecs/lpass-macro-common.c
@@ -8,12 +8,67 @@
#include <linux/platform_device.h>
#include <linux/pm_domain.h>
#include <linux/pm_runtime.h>
+#include <sound/control.h>
+#include <sound/pcm.h>
+#include <sound/soc.h>
#include "lpass-macro-common.h"
static DEFINE_MUTEX(lpass_codec_mutex);
static enum lpass_codec_version lpass_codec_version;
+static int lpass_macro_chmap_ctl_get(struct snd_kcontrol *kcontrol,
+ struct snd_ctl_elem_value *ucontrol)
+{
+ struct snd_pcm_chmap *info = snd_kcontrol_chip(kcontrol);
+ struct snd_soc_dai *dai = info->private_data;
+ u32 *chmap_data = NULL;

You probably don't need to set it to NULL here, if it will be overwritten
by kzalloc() call few lines below


Ack,

will fix in next version.

Thanks & Regards,
Rafi.


+ u32 rx_ch_cnt = 0;
+ u32 tx_ch_cnt = 0;
+ u32 rx_ch, tx_ch;
+
+ chmap_data = kzalloc(sizeof(u32) * 2, GFP_KERNEL);

here.

[..]

Thanks,
Alexey