<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SKL] Intel HD 520 failed to train DP when connected with a external monitor"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=93578#c67">Comment # 67</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [SKL] Intel HD 520 failed to train DP when connected with a external monitor"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=93578">bug 93578</a>
              from <span class="vcard"><a class="email" href="mailto:ville.syrjala@linux.intel.com" title="Ville Syrjala <ville.syrjala@linux.intel.com>"> <span class="fn">Ville Syrjala</span></a>
</span></b>
        <pre>(In reply to Mads from <a href="show_bug.cgi?id=93578#c66">comment #66</a>)
<span class="quote">> Tested drm-intel-nightly f6a248e2507f98d7eb1f4fec8cfcbf685a33d289
> (4.9.0-rc8+), and the DA200 dongle still can't output high resolutions yet.
> XPS 15 9550.

> Are there any new CONFIG options in the kernel we should make sure are
> enabled? USB-C-stuff?</span >

There are none. That's really the problem. There is no USB-C driver/framework
which could tell us how the cable is configured to carry DP.

<span class="quote">> 
> Why does USB-C -> DP work, but not USB-C -> DA200 -> HDMI? Are they not
> related at all? (I'm typing this on a 4k monitor connected through USB-C
> with a USB-C -> DP-dongle on the aforementioned XPS 15)</span >

The number of required/used lanes may differ between the cases, and the cables
may be configured to use a different number of lanes for DP in each case. That
could explain why low resolution might work and high resolution might not (low
res needs fewer lanes). dmesgs (w/ drm.debug=0xe) from both low and high res
use cases on the bad dongle using a recent kernel could help prove that.

If you want to try a hideous hack, this might also help prove whether the
number of used lanes is part of the problem:

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index db75bb924e48..3655e47faf61 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -158,6 +158,9 @@ static u8 intel_dp_max_lane_count(struct intel_dp
*intel_dp)
        source_max = intel_dig_port->max_lanes;
        sink_max = drm_dp_max_lane_count(intel_dp->dpcd);

+       if (!is_edp(intel_dp))
+               sink_max = min(sink_max, 2);
+
        return min(source_max, sink_max);
 }</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>