diff options
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_drv.c')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/omap_drv.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c b/drivers/gpu/drm/omapdrm/omap_drv.c index 28bbad1353ee..8632139e0f01 100644 --- a/drivers/gpu/drm/omapdrm/omap_drv.c +++ b/drivers/gpu/drm/omapdrm/omap_drv.c @@ -68,6 +68,7 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)  {  	struct drm_device *dev = old_state->dev;  	struct omap_drm_private *priv = dev->dev_private; +	bool fence_cookie = dma_fence_begin_signalling();  	dispc_runtime_get(priv->dispc); @@ -90,8 +91,6 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)  		omap_atomic_wait_for_completion(dev, old_state);  		drm_atomic_helper_commit_planes(dev, old_state, 0); - -		drm_atomic_helper_commit_hw_done(old_state);  	} else {  		/*  		 * OMAP3 DSS seems to have issues with the work-around above, @@ -101,10 +100,12 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)  		drm_atomic_helper_commit_planes(dev, old_state, 0);  		drm_atomic_helper_commit_modeset_enables(dev, old_state); - -		drm_atomic_helper_commit_hw_done(old_state);  	} +	drm_atomic_helper_commit_hw_done(old_state); + +	dma_fence_end_signalling(fence_cookie); +  	/*  	 * Wait for completion of the page flips to ensure that old buffers  	 * can't be touched by the hardware anymore before cleaning up planes. | 
