[PATCH] ASoC: SOF: Intel: Do not (wrongly) assume positive return value in IMR path

Peter Ujfalusi peter.ujfalusi at linux.intel.com
Wed Apr 27 13:51:59 CEST 2022


The cl_dsp_init() returns 0 on success or negative errno on error.
Replace the 'if (ret >= 0)' checks with correct 'if (!ret)` to check for
success.

Fixes: 2a68ff846164 ("ASoC: SOF: Intel: hda: Revisit IMR boot sequence")
Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi at linux.intel.com>
---
 sound/soc/sof/intel/hda-loader.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
index 7d4436f079c6..64290125d7cd 100644
--- a/sound/soc/sof/intel/hda-loader.c
+++ b/sound/soc/sof/intel/hda-loader.c
@@ -372,7 +372,7 @@ static int hda_dsp_boot_imr(struct snd_sof_dev *sdev)
 	int ret;
 
 	ret = cl_dsp_init(sdev, 0, true);
-	if (ret >= 0)
+	if (!ret)
 		hda_sdw_process_wakeen(sdev);
 
 	return ret;
@@ -393,8 +393,8 @@ int hda_dsp_cl_boot_firmware(struct snd_sof_dev *sdev)
 		dev_dbg(sdev->dev, "IMR restore supported, booting from IMR directly\n");
 		hda->boot_iteration = 0;
 		ret = hda_dsp_boot_imr(sdev);
-		if (ret >= 0)
-			return ret;
+		if (!ret)
+			return 0;
 
 		dev_warn(sdev->dev, "IMR restore failed, trying to cold boot\n");
 	}
-- 
2.36.0



More information about the Alsa-devel mailing list