Re: [PATCH v2] ASoC: qcom: audioreach: support multichannel PCM formats

From: Prasad Kumpatla

Date: Tue Oct 27 2026 - 07:49:08 EST



On 10/27/2026 3:25 PM, Zhangfei Gao wrote:
On Tue, Oct 27, 2026 at 4:46 PM Prasad Kumpatla
<prasad.kumpatla@xxxxxxxxxxxxxxxx> wrote:
#define DRV_NAME "q6apm-dai"
#define POS_BUFFER_BYTES 4096
@@ -344,7 +345,10 @@ static int q6apm_dai_prepare(struct snd_soc_component *component,
cfg.num_channels = runtime->channels;
cfg.bit_width = prtd->bits_per_sample;
cfg.fmt = SND_AUDIOCODEC_PCM;
- audioreach_set_default_channel_mapping(cfg.channel_map, runtime->channels);
+ ret = q6dsp_map_channels(cfg.channel_map, runtime->channels);
+ if (ret)
+ return ret;
+
if (prtd->state) {
/* clear the previous setup if any */
q6apm_graph_stop(prtd->graph);
@@ -1007,8 +1011,10 @@ static int q6apm_dai_compr_set_params(struct snd_soc_component *component,
cfg.num_channels = 2;
cfg.bit_width = prtd->bits_per_sample;
cfg.fmt = codec->id;
- audioreach_set_default_channel_mapping(cfg.channel_map,
- cfg.num_channels);
+ ret = q6dsp_map_channels(cfg.channel_map, cfg.num_channels);
|
|
|q6dsp_map_channels()| changes the mono mapping from |PCM_CHANNEL_FL| to
|PCM_CHANNEL_FC| and does not handle 7 channels. Have these cases been
checked and confirmed to be supported as expected for AudioReach ?
Yes, have checked with Rafi, should be PCM_CHANNEL_FC.

Thanks for confirmation.

Reviewed-by: Prasad Kumpatla<prasad.kumpatla@xxxxxxxxxxxxxxxx>

Thanks,
Prasad


Also confirmed from audioreach-engine
https://github.com/AudioReach/audioreach-engine/blob/master/modules/processing/bassboost/capi/src/capi_bassboost_utils.cpp
case 1:
if (PCM_CHANNEL_C != format_ptr->format.channel_type[0])

https://github.com/AudioReach/audioreach-engine/blob/master/modules/processing/Virtualizer/api/Virtualizer_api.h
uint16_t channel_map[0];
/**< @h2xmle_description { Payload consisting of channel mapping
information for all the channels. \n
The channel mapping is specific for
specific number of channels \n
for 1 : [PCM_CHANNEL_C] \n
for 2 : [PCM_CHANNEL_L, PCM_CHANNEL_R] \n }

About 7 channel.
If hw requirement is there then we can add right.
Currently no qcom upstream device is testing 7 channels,

For example, RRD 4 chanels and Ride 6 channels.

Thanks