ALSA: hda: Return the codec init error properly at snd_hda_codec_build_controls()

The error from snd_hda_codec_init() was ignored in
snd_hda_codec_build_controls(), which should have been taken account
and abort the flow.  Fix it now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250709160434.1859-28-tiwai@suse.de
This commit is contained in:
Takashi Iwai 2025-07-09 18:04:30 +02:00
parent 0c4eebafea
commit 0c8e393941

View File

@ -3065,14 +3065,16 @@ EXPORT_SYMBOL_GPL(snd_pcm_2_1_chmaps);
int snd_hda_codec_build_controls(struct hda_codec *codec)
{
struct hda_codec_driver *driver = hda_codec_to_driver(codec);
int err = 0;
int err;
hda_exec_init_verbs(codec);
/* continue to initialize... */
err = snd_hda_codec_init(codec);
if (!err) {
if (driver->ops->build_controls)
err = driver->ops->build_controls(codec);
if (err < 0)
return err;
if (driver->ops->build_controls) {
err = driver->ops->build_controls(codec);
if (err < 0)
return err;
}