<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - DP MST problems with xrandr while re-docking"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=80355#c33">Comment # 33</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - DP MST problems with xrandr while re-docking"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=80355">bug 80355</a>
              from <span class="vcard"><a class="email" href="mailto:chris@chris-wilson.co.uk" title="Chris Wilson <chris@chris-wilson.co.uk>"> <span class="fn">Chris Wilson</span></a>
</span></b>
        <pre>Ah, you already have that commit. In which case it looks like the set->fb and
set->mode BUG_ONs instead. (I first thought it might have been the locking
asserts.)

Try:

diff --git a/drivers/gpu/drm/i915/intel_display.c
b/drivers/gpu/drm/i915/intel_display.c
index efd3cf50cb0f..3ed6169bc203 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -10753,6 +10753,15 @@ static int intel_crtc_set_config(struct drm_mode_set
*set)
        BUG_ON(!set->crtc);
        BUG_ON(!set->crtc->helper_private);

+       if (set->mode == NULL)
+               set->fb = NULL;
+
+       if (set->num_connectors == 0)
+               set->fb = NULL;
+
+       if (set->fb == NULL)
+               set->mode = NULL;
+
        /* Enforce sane interface api - has been abused by the fb helper. */
        BUG_ON(!set->mode && set->fb);
        BUG_ON(set->fb && set->num_connectors == 0);</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>