summaryrefslogtreecommitdiff
path: root/scripts/basic
diff options
context:
space:
mode:
authorVal Packett <val@packett.cool>2026-10-16 03:29:17 -0300
committerMark Brown <broonie@kernel.org>2026-10-26 18:29:58 +0000
commitf3c7bee984aa0ba2b48a44e16a6f3ec2c27f851e (patch)
treef5c9d53f84cc6895b36d8c151807d777789f8586 /scripts/basic
parent9080b18ad561a495bf74926cbc52e23cae8887c0 (diff)
downloadlinux-f3c7bee984aa0ba2b48a44e16a6f3ec2c27f851e.tar.gz
linux-f3c7bee984aa0ba2b48a44e16a6f3ec2c27f851e.zip
ASoC: qcom: qdsp6: q6afe: fix clk vote response type mismatch
The response sent by the firmware when requesting a clock vote (opcode AFE_CMD_RSP_REMOTE_LPASS_CORE_HW_VOTE_REQUEST) does not actually have the same opcode + status payload as APR_BASIC_RSP_RESULT. Rather, it returns one single u32 which is the client_handle that must be used in future unvote requests for the same clock. As a result of this type confusion, the status returned by the callback to q6afe_vote_lpass_core_hw was actually an out-of-bounds read. It was only interpreted as success (0) most of the time due to luck, but there are some reports of random errors such as: [ 20.961100] qcom-q6afe aprsvc:service:4:4: AFE failed to vote (3) [ 20.961131] Failed to prepare clk 'core': -110 Fix by correctly interpreting the response as a single u32, and actually store it as the client_handle to ensure unvote would work correctly. Cc: stable@vger.kernel.org Link: https://lore.kernel.org/all/5976946.DvuYhMxLoT@antlia/ Fixes: 55e07531d922 ("ASoC: q6dsp: q6afe: add lpass hw voting support") Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Val Packett <val@packett.cool> Link: https://patch.msgid.link/20261016063536.598610-1-val@packett.cool Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'scripts/basic')
0 files changed, 0 insertions, 0 deletions