Nothing special, just put the end right after hw_done(). Note that in
one path there's a wait for the flip/update to complete. But as far as
I understand from comments and code that's only relevant for modesets,
and skipped if there wasn't a modeset done on a given crtc.

For a bit more clarity pull the hw_done() call out of the if/else,
that way it's a bit clearer flow. But happy to shuffle this around as
is seen fit.

Signed-off-by: Daniel Vetter <daniel.vet...@intel.com>
Cc: Tomi Valkeinen <tomi.valkei...@ti.com>
---
 drivers/gpu/drm/omapdrm/omap_drv.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/omapdrm/omap_drv.c 
b/drivers/gpu/drm/omapdrm/omap_drv.c
index 2e598b8b72af..2b82a708eca6 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();
 
        priv->dispc_ops->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.
-- 
2.28.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to