[L/Unstable] [PATCH 08/16] ALSA: hda: cs35l41: Check mailbox status of pause command after firmware load

Kai-Heng Feng kai.heng.feng at canonical.com
Tue Aug 1 08:36:41 UTC 2023


From: Stefan Binding <sbinding at opensource.cirrus.com>

BugLink: https://bugs.launchpad.net/bugs/2029199

Currently, we do not check the return status of the pause command,
immediately after we load firmware. If the pause has failed,
the firmware is not running.

Signed-off-by: Stefan Binding <sbinding at opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230721151816.2080453-4-sbinding@opensource.cirrus.com
Signed-off-by: Takashi Iwai <tiwai at suse.de>
(cherry picked from commit 5299b79ca1a2a9b017b87da08563100b0da98e5b linux-next)
Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
---
 sound/pci/hda/cs35l41_hda.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/cs35l41_hda.c b/sound/pci/hda/cs35l41_hda.c
index 7605b1f9e754..d7cd8ad2d555 100644
--- a/sound/pci/hda/cs35l41_hda.c
+++ b/sound/pci/hda/cs35l41_hda.c
@@ -781,7 +781,12 @@ static int cs35l41_smart_amp(struct cs35l41_hda *cs35l41)
 		goto clean_dsp;
 	}
 
-	cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, CSPL_MBOX_CMD_PAUSE);
+	ret = cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, CSPL_MBOX_CMD_PAUSE);
+	if (ret) {
+		dev_err(cs35l41->dev, "Error waiting for DSP to pause: %u\n", ret);
+		goto clean_dsp;
+	}
+
 	cs35l41->firmware_running = true;
 
 	return 0;
-- 
2.34.1




More information about the kernel-team mailing list