summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/exynos/exynos_drm_plane.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/exynos/exynos_drm_plane.c')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_plane.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_plane.c b/drivers/gpu/drm/exynos/exynos_drm_plane.c
index 979108a52dcc..d8b398a9d68c 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_plane.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_plane.c
@@ -18,6 +18,7 @@
#include "exynos_drm_fb.h"
#include "exynos_drm_gem.h"
#include "exynos_drm_plane.h"
+#include "exynos_trace.h"
/*
* This function is to get X or Y size shown via screen. This needs length and
@@ -145,6 +146,7 @@ static void exynos_plane_update_cb(struct drm_reservation_cb *rcb, void *params)
struct exynos_drm_crtc *exynos_crtc =
to_exynos_crtc(exynos_plane->base.crtc);
+ trace_exynos_update_cb(exynos_crtc, exynos_plane);
if (exynos_crtc->ops->win_commit)
exynos_crtc->ops->win_commit(exynos_crtc,
exynos_plane->zpos);
@@ -193,18 +195,22 @@ static int exynos_plane_fence(struct exynos_drm_plane *plane,
plane->update_pending = true;
plane->pending_fence = fence;
+ trace_exynos_add_shared_fence(exynos_crtc, plane);
reservation_object_add_shared_fence(resv, plane->pending_fence);
if (!reservation_object_test_signaled_rcu(resv, false)) {
drm_reservation_cb_init(&plane->rcb, exynos_plane_update_cb, plane);
+ trace_exynos_cb_add(exynos_crtc, plane);
ret = drm_reservation_cb_add(&plane->rcb, resv, false);
if (ret < 0) {
DRM_ERROR("Adding reservation to callback failed: %d\n", ret);
goto err_fence;
}
+ trace_exynos_cb_done(exynos_crtc, plane);
drm_reservation_cb_done(&plane->rcb);
} else {
+ trace_exynos_cb_fast_path(exynos_crtc, plane);
exynos_plane_update_cb(&plane->rcb, plane);
}