diff options
| author | Shawn Guo <shengchao.guo@oss.qualcomm.com> | 2026-10-21 12:10:42 +0800 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-10-26 19:24:15 +0000 |
| commit | 4b832a2af523cbf857a977414c0f07d7f90a4c9d (patch) | |
| tree | 00174112dccb4e27467b5dce56eaa1fae9f3c075 /scripts/Makefile.thinlto | |
| parent | 6cc7db9fdd06c992ee38793b2d556524fc0cf574 (diff) | |
| download | linux-4b832a2af523cbf857a977414c0f07d7f90a4c9d.tar.gz linux-4b832a2af523cbf857a977414c0f07d7f90a4c9d.zip | |
ASoC: qcom: q6apm: Fix unmap regions response handling
The DSP acknowledges APM_CMD_SHARED_MEM_UNMAP_REGIONS with a
GPR_BASIC_RSP_RESULT packet whose payload carries the acknowledged
opcode and the status. apm_callback() stores hdr->opcode, i.e.
GPR_BASIC_RSP_RESULT itself, as the result opcode, so
audioreach_send_cmd_sync(), which waits for 0x0100100d, never sees a
match and gives up after five seconds even though the DSP has already
processed the command:
qcom-apm gprsvc:service:2:1: CMD timeout for [100100d] opcode
Each mapped graph costs a five second stall on unmap, and the forced
status of 0 also hides real DSP failures from the caller.
Record the opcode and status from the response payload, like the other
basic-result commands do, and only drop the cached mapping handle when
the DSP reports success.
Fixes: 8ea6e25c8536 ("ASoC: qcom: q6apm: Add support for early buffer mapping on DSP")
Cc: stable@vger.kernel.org
Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
Link: https://patch.msgid.link/20261021041044.2080369-2-shengchao.guo@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
