From: Mark Brown Date: Fri, 17 Jan 2020 15:38:56 +0000 (+0000) Subject: Merge tag 'asoc-fix-v5.5-rc6' into asoc-5.6 X-Git-Tag: v5.6-rc1~42^2~3^2~58 X-Git-Url: https://repo.jachan.dev/linux.git/commitdiff_plain/ea3f0ce756d678f94fd3060311030c5ed855e591 Merge tag 'asoc-fix-v5.5-rc6' into asoc-5.6 ASoC: Fixes for v5.5 This is mostly driver specific fixes, plus an error handling fix in the core. There is a rather large diffstat for the stm32 SAI driver, this is a very large but mostly mechanical update which wraps every register access in the driver to allow a fix to the locking which avoids circular locks, the active change is much smaller and more reasonably sized. --- ea3f0ce756d678f94fd3060311030c5ed855e591 diff --cc sound/soc/sof/intel/hda-codec.c index 5514e6191ba4,fbfa225d1c5a..78dfd5f5c034 --- a/sound/soc/sof/intel/hda-codec.c +++ b/sound/soc/sof/intel/hda-codec.c @@@ -121,13 -125,19 +120,19 @@@ static int hda_codec_probe(struct snd_s * if common HDMI codec driver is not used, codec load * is skipped here and hdac_hdmi is used instead */ - if ((mach_params && mach_params->common_hdmi_codec_drv) || + if (hda_codec_use_common_hdmi || (resp & 0xFFFF0000) != IDISP_VID_INTEL) { hdev->type = HDA_DEV_LEGACY; - hda_codec_load_module(&hda_priv->codec); + ret = hda_codec_load_module(&hda_priv->codec); + /* + * handle ret==0 (no driver bound) as an error, but pass + * other return codes without modification + */ + if (ret == 0) + ret = -ENOENT; } - return 0; + return ret; #else hdev = devm_kzalloc(sdev->dev, sizeof(*hdev), GFP_KERNEL); if (!hdev)