<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#c13">Comment # 13</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#c12">comment #12</a>)
<span class="quote">> Aha, that's interesting.  Now it gets clearer.

> My wild guess is like below:

> - The system boots with both i915 and HDA as modules, and they are loaded /
> initialized asynchronously.

> - i915 init takes some time, while HD-audio starts initializing the bus at
> first.
>   This results in the failure of the i915 component binding:

> [    6.708025] snd_hda_intel 0000:00:1f.3: failed to add i915 component
> master (-19)

> - Then i915 gets initialized, and HD-audio bus loads the HDMI codec driver.
>   The recent HDMI codec driver tries to bind with i915 by itself.  It was
> for the old chipset without Powerwell.  At this time, the binding succeeds:

> [    8.857780] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops
> i915_audio_component_bind_ops [i915])

> - Then the whole probe procedure finishes, it decreases the refcount, as if
> the bus had also bound with i915.  So it gets unbalanced.


> So, for the unbalanced PM refcount itself, we can avoid it by disabling the
> second on-demand binding.  But it means nothing but the i915 / HDA binding
> fails totally.</span >

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).</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are on the CC list for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>