<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [KBL-R] DP link training failures lead to downgraded link parameters and resolution"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=106223#c22">Comment # 22</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [KBL-R] DP link training failures lead to downgraded link parameters and resolution"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=106223">bug 106223</a>
              from <span class="vcard"><a class="email" href="mailto:ricardo.ribalda@gmail.com" title="Ricardo Ribalda <ricardo.ribalda@gmail.com>"> <span class="fn">Ricardo Ribalda</span></a>
</span></b>
        <pre>(In reply to Clinton Taylor from <a href="show_bug.cgi?id=106223#c21">comment #21</a>)
<span class="quote">> This issue could also manifest if link training is being attempted before
> the USB-C Hub is ready to accept a signal. A small delay before attempting
> Link Training with a USB-C LSPCON may work.

> Ricardo,
>    Could you try adding a short delay msleep (200) to the start of
> intel_dp_start_link_train() and see if your retries drops to 0?</span >

That did not do the trick :(, also it does not explain why I got a couple of
times more than one retries.

@@ -317,10 +317,18 @@ void
 intel_dp_start_link_train(struct intel_dp *intel_dp)
 {
        struct intel_connector *intel_connector = intel_dp->attached_connector;
+       int tries;

-       if (!intel_dp_link_training_clock_recovery(intel_dp))
-               goto failure_handling;
-       if (!intel_dp_link_training_channel_equalization(intel_dp))
+       msleep(200);
+
+       for (tries = 0; tries < 5; tries++) {
+               if (!intel_dp_link_training_clock_recovery(intel_dp))
+                       continue;
+               if (intel_dp_link_training_channel_equalization(intel_dp))
+                       break;
+       }
+
+       if (tries == 5)
                goto failure_handling;

        DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Link Training Passed at Link Rate =
%d, Lane count = %d",</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>