OSDN Git Service

drm/tegra: Annotate dma-fence critical section in commit path
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 21 Jan 2021 15:29:58 +0000 (16:29 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 23 Feb 2021 11:54:19 +0000 (12:54 +0100)
Again ends just after drm_atomic_helper_commit_hw_done(), but with the
twist that we need to make sure we're only annotate the custom
version. And not the other clause which just calls
drm_atomic_helper_commit_tail_rpm(), which is already annotated.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Jonathan Hunter <jonathanh@nvidia.com>
Cc: linux-tegra@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20210121152959.1725404-11-daniel.vetter@ffwll.ch
drivers/gpu/drm/tegra/drm.c

index e45c841..ef2b79a 100644 (file)
@@ -65,11 +65,14 @@ static void tegra_atomic_commit_tail(struct drm_atomic_state *old_state)
        struct tegra_drm *tegra = drm->dev_private;
 
        if (tegra->hub) {
+               bool fence_cookie = dma_fence_begin_signalling();
+
                drm_atomic_helper_commit_modeset_disables(drm, old_state);
                tegra_display_hub_atomic_commit(drm, old_state);
                drm_atomic_helper_commit_planes(drm, old_state, 0);
                drm_atomic_helper_commit_modeset_enables(drm, old_state);
                drm_atomic_helper_commit_hw_done(old_state);
+               dma_fence_end_signalling(fence_cookie);
                drm_atomic_helper_wait_for_vblanks(drm, old_state);
                drm_atomic_helper_cleanup_planes(drm, old_state);
        } else {