mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
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: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://lore.kernel.org/r/20231009115437.99976-5-maarten.lankhorst@linux.intel.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
f1977d5ba0
commit
03448e5df5
1 changed files with 11 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue