On Wed, 07 Aug 2019 00:19:58 +0200, Ranjani Sridharan wrote: > > On some platforms, sound card registration fails when a HDMI > monitor is not connected. This is caused by a recent commit > that switched the order in which the HDA controller and the > i915 are initialized. Initializing the i915 before initializing > the HDA controller fixes the problem. > > Fixes: be1b577d01787c ("ASoC: SOF: Intel: hda: fix the hda init chip" The closing parenthesis missing. The code change itself looks OK to me. Reviewed-by: Takashi Iwai <tiwai@xxxxxxx> thanks, Takashi > Signed-off-by: Ranjani Sridharan <ranjani.sridharan@xxxxxxxxxxxxxxx> > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > --- > sound/soc/sof/intel/hda.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c > index 79cce20666b6..724a494702fa 100644 > --- a/sound/soc/sof/intel/hda.c > +++ b/sound/soc/sof/intel/hda.c > @@ -335,10 +335,23 @@ static int hda_init_caps(struct snd_sof_dev *sdev) > if (bus->ppcap) > dev_dbg(sdev->dev, "PP capability, will probe DSP later.\n"); > > +#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) > + /* init i915 and HDMI codecs */ > + ret = hda_codec_i915_init(sdev); > + if (ret < 0) { > + dev_err(sdev->dev, "error: init i915 and HDMI codec failed\n"); > + return ret; > + } > +#endif > + > + /* Init HDA controller after i915 init */ > ret = hda_dsp_ctrl_init_chip(sdev, true); > if (ret < 0) { > dev_err(bus->dev, "error: init chip failed with ret: %d\n", > ret); > +#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) > + hda_codec_i915_exit(sdev); > +#endif > return ret; > } > > @@ -346,13 +359,6 @@ static int hda_init_caps(struct snd_sof_dev *sdev) > if (bus->mlcap) > snd_hdac_ext_bus_get_ml_capabilities(bus); > > - /* init i915 and HDMI codecs */ > - ret = hda_codec_i915_init(sdev); > - if (ret < 0) { > - dev_err(sdev->dev, "error: no HDMI audio devices found\n"); > - return ret; > - } > - > /* codec detection */ > if (!bus->codec_mask) { > dev_info(bus->dev, "no hda codecs found!\n"); > -- > 2.17.1 > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel