[alsa-devel] [PATCH v5 2/9] ASoC: hdac_hda: add support for HDMI/DP as a HDA codec
Kai Vehmanen
kai.vehmanen at linux.intel.com
Wed Sep 25 13:38:50 CEST 2019
Hello,
Takashi, please check whether this is ok. I'll highlight the changed
section below:
On Wed, 25 Sep 2019, Kai Vehmanen wrote:
> static int hdac_hda_codec_probe(struct snd_soc_component *component)
> {
> struct hdac_hda_priv *hda_pvt =
> @@ -322,6 +392,15 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component)
>
> snd_hdac_ext_bus_link_get(hdev->bus, hlink);
>
> + /*
> + * Ensure any HDA display is powered at codec probe.
> + * After snd_hda_codec_device_new(), display power is
> + * managed by runtime PM.
> + */
> + if (hda_pvt->need_display_power)
> + snd_hdac_display_power(hdev->bus, HDA_CODEC_IDX_CONTROLLER,
> + true);
> +
This is the new bit (and matching logic in patch 5).The bug required a
very specific timing sequence to trigger, but a clear bug nevertheless. I
tried to fix it in spirit of your refactoring patch of to this area
029d92c289bd, "ALSA: hda: Refactor display power management". I.e. just
like snd_hda_intel's controller code, display power is enabled before
probe and later managed by codec using common code.
Additional SOF specific twist is that I need to pass the
"need_display_power" info from SOF code (where the initial codec probe is
done and we detect a HDMI HDA codec)), to soc/codecs/hdac_hda.c where the
actual driver probe is run for the codec. In snd_hda_intel this is all in
one place, so somewhat more straighforward, but logic is the same.
Br, Kai
More information about the Alsa-devel
mailing list