drm/omap: Use old_fb to synchronize between successive page flips
authorArchit Taneja <archit@ti.com>
Fri, 11 Apr 2014 07:23:34 +0000 (12:53 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 15 Apr 2014 10:35:28 +0000 (13:35 +0300)
omap_crtc->old_fb is used to check whether the previous page flip has completed
or not. However, it's never initialized to anything, so it's always NULL. This
results in the check to always succeed, and the page_flip to proceed.

Initialize old_fb to the fb that we intend to flip to through page_flip, and
therefore prevent a future page flip to proceed if the last one didn't
complete.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_crtc.c

index 46f8e1e40e88a966af264a9679053d657801c82f..00798247190bce86c879a4433eb46f40e0a19ad0 100644 (file)
@@ -360,7 +360,7 @@ static int omap_crtc_page_flip_locked(struct drm_crtc *crtc,
        }
 
        omap_crtc->event = event;
-       primary->fb = fb;
+       omap_crtc->old_fb = primary->fb = fb;
 
        /*
         * Hold a reference temporarily until the crtc is updated