[igt-dev] ✗ Fi.CI.BAT: failure for series starting with [i-g-t,1/8] lib: Report file cache as available system memory
Takashi Iwai
tiwai at suse.de
Tue Jun 26 21:35:09 UTC 2018
On Tue, 26 Jun 2018 21:25:58 +0200,
Chris Wilson wrote:
>
> Just bad timing to hit a recursive deadlock in hdmi_present_sense().
Yeah, the runtime PM return value should be checked like your patch.
Care to send a proper patch?
However...
> <6>[ 456.622589] snd_hda_intel 0000:00:1b.0: failed to add i915 component master (-19)
(snip)
> <6>[ 456.654732] snd_hda_codec_hdmi hdaudioC0D3: No i915 binding for Intel HDMI/DP codec
> <6>[ 456.659357] snd_hda_codec_hdmi hdaudioC0D3: No i915 binding for Intel HDMI/DP codec
... so i915 binding failed but still the HDMI codec got probed.
That's the unexpected point. We should have stopped probing in such a
case.
The patch below prevents the generic driver binding in the case of
i915 binding error.
(snip)
> but
>
> int snd_hdac_power_up_pm(struct hdac_device *codec)
> {
> if (!atomic_inc_not_zero(&codec->in_pm))
> return snd_hdac_power_up(codec);
> return 0;
> }
>
> looks weird as how is in_pm actually incremented?
>
> $ git grep in_pm -- sound/hda/
> sound/hda/hdac_device.c: atomic_set(&codec->in_pm, 0);
> sound/hda/hdac_device.c: if (!atomic_inc_not_zero(&codec->in_pm))
> sound/hda/hdac_device.c: if (!atomic_inc_not_zero(&codec->in_pm)) {
> sound/hda/hdac_device.c: if (atomic_dec_if_positive(&codec->in_pm) < 0)
>
> as I read that in_pm always remains 0.
It's set in the codec driver side, i.e. in sound/pci/hda/hda_codec.c.
thanks,
Takashi
---
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 98e1c411c56a..6aab2aad9f8d 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -2542,6 +2542,8 @@ static int alloc_intel_hdmi(struct hda_codec *codec)
/* requires i915 binding */
if (!codec->bus->core.audio_component) {
codec_info(codec, "No i915 binding for Intel HDMI/DP codec\n");
+ /* set probe_id here to prevent generic fallback binding */
+ codec->probe_id = HDA_CODEC_ID_GENERIC_HDMI:
return -ENODEV;
}
More information about the igt-dev
mailing list