drm/omapdrm: Annotate dma-fence critical section in commit path
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. Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Tomi Valkeinen <tomi.valkeinen@ti.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210121152959.1725404-9-daniel.vetter@ffwll.ch
This commit is contained in:
parent
a1891b9136
commit
250aa22920
@ -68,6 +68,7 @@ static void omap_atomic_commit_tail(struct drm_atomic_state *old_state)
|
|||||||
{
|
{
|
||||||
struct drm_device *dev = old_state->dev;
|
struct drm_device *dev = old_state->dev;
|
||||||
struct omap_drm_private *priv = dev->dev_private;
|
struct omap_drm_private *priv = dev->dev_private;
|
||||||
|
bool fence_cookie = dma_fence_begin_signalling();
|
||||||
|
|
||||||
dispc_runtime_get(priv->dispc);
|
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);
|
omap_atomic_wait_for_completion(dev, old_state);
|
||||||
|
|
||||||
drm_atomic_helper_commit_planes(dev, old_state, 0);
|
drm_atomic_helper_commit_planes(dev, old_state, 0);
|
||||||
|
|
||||||
drm_atomic_helper_commit_hw_done(old_state);
|
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* OMAP3 DSS seems to have issues with the work-around above,
|
* 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_planes(dev, old_state, 0);
|
||||||
|
|
||||||
drm_atomic_helper_commit_modeset_enables(dev, old_state);
|
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
|
* Wait for completion of the page flips to ensure that old buffers
|
||||||
* can't be touched by the hardware anymore before cleaning up planes.
|
* can't be touched by the hardware anymore before cleaning up planes.
|
||||||
|
Loading…
Reference in New Issue
Block a user