From: Dave Airlie <[email protected]>

At the moment when eDP gets inherited at startup, the first atomic
comment, turns off the CRTC then turns it back on. This for some
reasons end in a black screen and no display.

I've tried to investigate this and it might be link training,
but it also might be a problem with starting the stream.

For now just don't inherit eDP at all.

Cc: [email protected]
Signed-off-by: Dave Airlie <[email protected]>
---
 drivers/gpu/drm/nouveau/dispnv50/disp.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c 
b/drivers/gpu/drm/nouveau/dispnv50/disp.c
index 12b1dba8e05d..72e7cad6ccff 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c
@@ -2748,6 +2748,13 @@ nv50_display_read_hw_or_state(struct drm_device *dev, 
struct nv50_disp *disp,
        if (drm_WARN_ON(dev, !found_conn))
                return;
 
+       /*
+        * Don't inherit eDP connections as it breaks the panel on
+        * a bunch of laptops. It seems link training related,
+        * but not inheriting just makes it work.
+        */
+       if (nouveau_connector(conn)->type == DCB_CONNECTOR_eDP)
+               return;
        armh->state.encoder_mask = encoder_mask;
        armh->state.connector_mask = drm_connector_mask(conn);
        armh->state.active = true;
-- 
2.51.1

Reply via email to