Commit 03448e5d authored by Maarten Lankhorst's avatar Maarten Lankhorst Committed by Takashi Iwai

ASoC: SOF: Intel: Fix error handling in hda_init()

The hda_codec_i915_init() errors are ignored in
hda_init() so it can never return -EPROBE_DEFER.

Fix this before we move the call to hda_init() from the
deferred probe to early probe.

While at it, also fix error handling when hda_dsp_ctrl_get_caps
fails.
Suggested-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: default avatarKai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://lore.kernel.org/r/20231009115437.99976-5-maarten.lankhorst@linux.intel.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f1977d5b
......@@ -848,13 +848,21 @@ static int hda_init(struct snd_sof_dev *sdev)
/* init i915 and HDMI codecs */
ret = hda_codec_i915_init(sdev);
if (ret < 0)
dev_warn(sdev->dev, "init of i915 and HDMI codec failed\n");
if (ret < 0 && ret != -ENODEV) {
dev_err_probe(sdev->dev, ret, "init of i915 and HDMI codec failed\n");
goto out;
}
/* get controller capabilities */
ret = hda_dsp_ctrl_get_caps(sdev);
if (ret < 0)
if (ret < 0) {
dev_err(sdev->dev, "error: get caps error\n");
hda_codec_i915_exit(sdev);
}
out:
if (ret < 0)
iounmap(sof_to_bus(sdev)->remap_addr);
return ret;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment