This commit is seperate from the previous one to make it easier to
revert in the future. Basically, while working on making MSTOs per-head
as opposed to per-head-per-connector I discovered these lovely issues:

https://gitlab.freedesktop.org/xorg/xserver/merge_requests/277
https://gitlab.gnome.org/GNOME/mutter/issues/759

Note as well that Intel already has a temporary workaround for this in
their kernel driver. So, unfortunately we need to follow suit to avoid
causing a regression in userspace. Once these issues get fixed, this
commit should be reverted.

Signed-off-by: Lyude Paul <ly...@redhat.com>
Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c 
b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index d23ac13763b5..f5ad20af0dd5 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -2366,6 +2366,18 @@ nv50_display_create(struct drm_device *dev)
                                head->msto = NULL;
                                goto out;
                        }
+
+                       /*
+                        * FIXME: This is a hack to workaround the following
+                        * issues:
+                        *
+                        * https://gitlab.gnome.org/GNOME/mutter/issues/759
+                        * 
https://gitlab.freedesktop.org/xorg/xserver/merge_requests/277
+                        *
+                        * Once these issues are closed, this should be
+                        * removed
+                        */
+                       head->msto->encoder.possible_crtcs = crtcs;
                }
        }
 
-- 
2.21.0

Reply via email to