Re: [PATCH v9 13/13] ASoC: qcom: q6apm: Add support for early buffer mapping on DSP

From: Jens Glathe

Date: Tue May 12 2026 - 01:09:38 EST


On 02.04.26 10:11, Srinivas Kandagatla wrote:
Buffers are allocated on pcm_new and mapped in the dsp on every
prepare call, which is inefficient and unnecessary.

Add new functions q6apm_[un]map_memory_fixed_region to map it on
to dsp only once after allocation.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx>
---
sound/soc/qcom/qdsp6/audioreach.c | 60 ------------
sound/soc/qcom/qdsp6/audioreach.h | 5 +-
sound/soc/qcom/qdsp6/q6apm-dai.c | 107 ++++++++++++++++++---
sound/soc/qcom/qdsp6/q6apm.c | 151 +++++++++++++++++++-----------
sound/soc/qcom/qdsp6/q6apm.h | 14 +--
5 files changed, 202 insertions(+), 135 deletions(-)

Hi there,

I had to revert this patch from the series to get back working sound on sc8280xp (Blackrock) on 7.1. And hitting the right patch was pure luck, tbh, since I integrated the series on 6.19 and couldn't apply the last 2 cleanly. But figured these are cleanup/refactoring and left them out.

The errors I'm getting on Blackrock are these:

Mai 11 21:26:32 volterra kernel: q6apm-dai 3000000.remoteproc:glink-edge:gpr:service@1:dais: Audio Start: Buffer Allocation failed rc = -22
Mai 11 21:26:32 volterra kernel: q6apm-dai 3000000.remoteproc:glink-edge:gpr:service@1:dais: ASoC error (-22): at snd_soc_pcm_component_new() on 3000000.remoteproc:glink-edge:gpr:service@1:dais

Since I'm way out of my depth here, I won't cite from the Great Hallucinator's analysis. Only reporting that this refactoring breaks sound on sc8280xp.

with best regards

Jens