Browse Source

drm/nv50/disp: wait for encoder disconnect to complete before link training

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 13 years ago
parent
commit
9976f15c27
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/gpu/drm/nouveau/nv50_sor.c

+ 5 - 0
drivers/gpu/drm/nouveau/nv50_sor.c

@@ -174,7 +174,12 @@ nv50_sor_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
 static void
 nv50_sor_prepare(struct drm_encoder *encoder)
 {
+	struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder);
 	nv50_sor_disconnect(encoder);
+	if (nv_encoder->dcb->type == OUTPUT_DP) {
+		/* avoid race between link training and supervisor intr */
+		nv50_display_sync(encoder->dev);
+	}
 }
 
 static void