<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [BAT SKL]igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c fails suspend autoresume"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94566#c15">Comment # 15</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [BAT SKL]igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c fails suspend autoresume"
href="https://bugs.freedesktop.org/show_bug.cgi?id=94566">bug 94566</a>
from <span class="vcard"><a class="email" href="mailto:imre.deak@intel.com" title="Imre Deak <imre.deak@intel.com>"> <span class="fn">Imre Deak</span></a>
</span></b>
<pre>(In reply to Takashi Iwai from <a href="show_bug.cgi?id=94566#c14">comment #14</a>)
<span class="quote">> (In reply to Imre Deak from <a href="show_bug.cgi?id=94566#c13">comment #13</a>)
> > There is no guarantee which module gets loaded first and so no guarantee
> > that you won't get the "failed to add i915 component master (-19)" error.
> > The only proper way to solve this is to initialize anything needing the
> > display driver from the component bind hook (hdac_component_master_bind).
>
> Yes, but the reason we didn't do this is because we heard that the i915
> powerwell has to be enabled *before* the codec gets probed. So, it's rather
> surprising that the codec probe succeeded even without the powerwell hook.
> Maybe it just worked because they were probed in parallel. Or, the
> information from Intel hardware team might be wrong. Who knows.</span >
That would mean that the very first time you can physically probe the codec is
when i915 is already loaded and hence hdac_component_master_bind() gets called.
There is just no way around this.
<span class="quote">> And, we can't block for syncing with i915 slave bind at the HD-audio bus
> probe time, either. There are SKL systems without i915 graphics, and the
> same HD-audio bus is used for the Realtek codec for builtin audio. So, the
> missing i915 binding is no fatal error on such systems.</span >
Right, but then you have to split out the parts that have a hard dependency on
the i915 driver, and initialize that part when the binding completes. There is
again, just no way around this.
<span class="quote">> That said, the current non-blocking behavior is on purpose. But, *if* the
> codec probe would work without the powerwell hook in the controller side
> beforehand, we an put the blocking component binding again at the codec
> probe. This might work -- but the technical information is missing whether
> it's correct or not.</span >
I think you'd need to determine what parts of the HDA driver have a hard
dependency on i915, split those out and init them from component bind hook.
Everything else can get initialized earlier, for example the Skylake/Realtek
stuff you mention above.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>