summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-10-17 08:56:09 +1000
committerBen Skeggs <bskeggs@redhat.com>2011-12-21 19:01:20 +1000
commit9976f15c27d573479d1cc79c81c2c2fc7ea93eb2 (patch)
tree57fca7491d7713244c4eac03125d5bb54e976089 /drivers/gpu/drm/nouveau
parent7ae494e80c8bbad71a968a816d06cf83da4e9b93 (diff)
downloadblackbird-op-linux-9976f15c27d573479d1cc79c81c2c2fc7ea93eb2.tar.gz
blackbird-op-linux-9976f15c27d573479d1cc79c81c2c2fc7ea93eb2.zip
drm/nv50/disp: wait for encoder disconnect to complete before link training
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
-rw-r--r--drivers/gpu/drm/nouveau/nv50_sor.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_sor.c b/drivers/gpu/drm/nouveau/nv50_sor.c
index 3fab98a2f959..48c09f5cd4fb 100644
--- a/drivers/gpu/drm/nouveau/nv50_sor.c
+++ b/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
OpenPOWER on IntegriCloud