aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/nouveau/nv50_crtc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c
index 308af1db8381..568fb4704166 100644
--- a/drivers/gpu/drm/nouveau/nv50_crtc.c
+++ b/drivers/gpu/drm/nouveau/nv50_crtc.c
@@ -487,6 +487,7 @@ nv50_crtc_prepare(struct drm_crtc *crtc)
487 487
488 NV_DEBUG_KMS(dev, "index %d\n", nv_crtc->index); 488 NV_DEBUG_KMS(dev, "index %d\n", nv_crtc->index);
489 489
490 nv50_display_flip_stop(crtc);
490 drm_vblank_pre_modeset(dev, nv_crtc->index); 491 drm_vblank_pre_modeset(dev, nv_crtc->index);
491 nv50_crtc_blank(nv_crtc, true); 492 nv50_crtc_blank(nv_crtc, true);
492} 493}
@@ -502,6 +503,7 @@ nv50_crtc_commit(struct drm_crtc *crtc)
502 nv50_crtc_blank(nv_crtc, false); 503 nv50_crtc_blank(nv_crtc, false);
503 drm_vblank_post_modeset(dev, nv_crtc->index); 504 drm_vblank_post_modeset(dev, nv_crtc->index);
504 nv50_crtc_wait_complete(crtc); 505 nv50_crtc_wait_complete(crtc);
506 nv50_display_flip_next(crtc, crtc->fb, NULL);
505} 507}
506 508
507static bool 509static bool
@@ -683,11 +685,16 @@ nv50_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y,
683{ 685{
684 int ret; 686 int ret;
685 687
688 nv50_display_flip_stop(crtc);
686 ret = nv50_crtc_do_mode_set_base(crtc, old_fb, x, y, false); 689 ret = nv50_crtc_do_mode_set_base(crtc, old_fb, x, y, false);
687 if (ret) 690 if (ret)
688 return ret; 691 return ret;
689 692
690 return nv50_crtc_wait_complete(crtc); 693 ret = nv50_crtc_wait_complete(crtc);
694 if (ret)
695 return ret;
696
697 return nv50_display_flip_next(crtc, crtc->fb, NULL);
691} 698}
692 699
693static int 700static int
@@ -697,6 +704,7 @@ nv50_crtc_mode_set_base_atomic(struct drm_crtc *crtc,
697{ 704{
698 int ret; 705 int ret;
699 706
707 nv50_display_flip_stop(crtc);
700 ret = nv50_crtc_do_mode_set_base(crtc, fb, x, y, true); 708 ret = nv50_crtc_do_mode_set_base(crtc, fb, x, y, true);
701 if (ret) 709 if (ret)
702 return ret; 710 return ret;