ASoC: SOF: amd: Fix error code handling in psp_send_cmd()
authorMario Limonciello <mario.limonciello@amd.com>
Mon, 11 May 2026 15:36:36 +0000 (10:36 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 12 May 2026 01:14:33 +0000 (10:14 +0900)
The smn_read_register() helper returns negative error codes on failure
or the register value on success. When used with read_poll_timeout(),
the return value is stored in the 'data' variable.

Currently 'data' is declared as u32, which causes negative error codes
to be cast to large positive values. This makes the condition 'data > 0'
incorrectly treat errors as success.

Fix by changing 'data' from u32 to int, matching the pattern used in
psp_mbox_ready() which correctly handles the same helper function.

Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/linux-sound/agGES8vWrLOrBu28@stanley.mountain/
Fixes: f120cf33d232 ("ASoC: SOF: amd: Use AMD_NODE")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://patch.msgid.link/20260511153638.724810-1-mario.limonciello@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/amd/acp.c

index 71a18f1..f615b8d 100644 (file)
@@ -223,7 +223,7 @@ static int psp_send_cmd(struct acp_dev_data *adata, int cmd)
 {
        struct snd_sof_dev *sdev = adata->dev;
        int ret;
-       u32 data;
+       int data;
 
        if (!cmd)
                return -EINVAL;