diff options
Diffstat (limited to 'sound/soc/sof/intel/hda.c')
| -rw-r--r-- | sound/soc/sof/intel/hda.c | 19 | 
1 files changed, 9 insertions, 10 deletions
diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c index 65b86dd044f1..25946a1c2822 100644 --- a/sound/soc/sof/intel/hda.c +++ b/sound/soc/sof/intel/hda.c @@ -286,6 +286,13 @@ static int hda_init(struct snd_sof_dev *sdev)  	/* HDA base */  	sdev->bar[HDA_DSP_HDA_BAR] = bus->remap_addr; +	/* 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; +	} +  	/* get controller capabilities */  	ret = hda_dsp_ctrl_get_caps(sdev);  	if (ret < 0) @@ -353,15 +360,6 @@ 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) { @@ -381,7 +379,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)  	hda_codec_probe_bus(sdev, hda_codec_use_common_hdmi);  	if (!HDA_IDISP_CODEC(bus->codec_mask)) -		hda_codec_i915_display_power(sdev, false); +		hda_codec_i915_exit(sdev);  	/*  	 * we are done probing so decrement link counts @@ -611,6 +609,7 @@ free_streams:  	iounmap(sdev->bar[HDA_DSP_BAR]);  hdac_bus_unmap:  	iounmap(bus->remap_addr); +	hda_codec_i915_exit(sdev);  err:  	return ret;  }  |