This patch converts all DPU_EVTs in dpu_plane with either a DRM_* log
message or a linux tracepoint.

Signed-off-by: Sean Paul <seanp...@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 19 +++-------
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 44 +++++++++++++++++++++++
 2 files changed, 49 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index 6090ace6012a..2c3dc00477b3 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -609,18 +609,9 @@ static inline void _dpu_plane_set_scanout(struct drm_plane 
*plane,
        else if (ret)
                DPU_ERROR_PLANE(pdpu, "failed to get format layout, %d\n", ret);
        else if (pdpu->pipe_hw->ops.setup_sourceaddress) {
-               DPU_EVT32_VERBOSE(pdpu->pipe_hw->idx,
-                               pipe_cfg->layout.width,
-                               pipe_cfg->layout.height,
-                               pipe_cfg->layout.plane_addr[0],
-                               pipe_cfg->layout.plane_size[0],
-                               pipe_cfg->layout.plane_addr[1],
-                               pipe_cfg->layout.plane_size[1],
-                               pipe_cfg->layout.plane_addr[2],
-                               pipe_cfg->layout.plane_size[2],
-                               pipe_cfg->layout.plane_addr[3],
-                               pipe_cfg->layout.plane_size[3],
-                               pstate->multirect_index);
+               trace_dpu_plane_set_scanout(pdpu->pipe_hw->idx,
+                                           &pipe_cfg->layout,
+                                           pstate->multirect_index);
                pdpu->pipe_hw->ops.setup_sourceaddress(pdpu->pipe_hw, pipe_cfg,
                                                pstate->multirect_index);
        }
@@ -1420,8 +1411,8 @@ static void _dpu_plane_atomic_disable(struct drm_plane 
*plane,
        state = plane->state;
        pstate = to_dpu_plane_state(state);
 
-       DPU_EVT32(DRMID(plane), is_dpu_plane_virtual(plane),
-                       pstate->multirect_mode);
+       trace_dpu_plane_disable(DRMID(plane), is_dpu_plane_virtual(plane),
+                               pstate->multirect_mode);
 
        pstate->pending = true;
 
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
index 877621184782..5d3aa5a994be 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
@@ -725,6 +725,50 @@ TRACE_EVENT(dpu_crtc_disable_frame_pending,
                  __entry->frame_pending)
 );
 
+TRACE_EVENT(dpu_plane_set_scanout,
+       TP_PROTO(enum dpu_sspp index, struct dpu_hw_fmt_layout *layout,
+                enum dpu_sspp_multirect_index multirect_index),
+       TP_ARGS(index, layout, multirect_index),
+       TP_STRUCT__entry(
+               __field(        enum dpu_sspp,                  index   )
+               __field(        struct dpu_hw_fmt_layout*,      layout  )
+               __field(        enum dpu_sspp_multirect_index,  multirect_index)
+       ),
+       TP_fast_assign(
+               __entry->index = index;
+               __entry->layout = layout;
+               __entry->multirect_index = multirect_index;
+       ),
+       TP_printk("index:%d layout:{%ux%u @ [%u/%u, %u/%u, %u/%u, %u/%u]} "
+                 "multirect_index:%d", __entry->index, __entry->layout->width,
+                 __entry->layout->height, __entry->layout->plane_addr[0],
+                 __entry->layout->plane_size[0],
+                 __entry->layout->plane_addr[1],
+                 __entry->layout->plane_size[1],
+                 __entry->layout->plane_addr[2],
+                 __entry->layout->plane_size[2],
+                 __entry->layout->plane_addr[3],
+                 __entry->layout->plane_size[3], __entry->multirect_index)
+);
+
+TRACE_EVENT(dpu_plane_disable,
+       TP_PROTO(uint32_t drm_id, bool is_virtual, uint32_t multirect_mode),
+       TP_ARGS(drm_id, is_virtual, multirect_mode),
+       TP_STRUCT__entry(
+               __field(        uint32_t,               drm_id          )
+               __field(        bool,                   is_virtual      )
+               __field(        uint32_t,               multirect_mode  )
+       ),
+       TP_fast_assign(
+               __entry->drm_id = drm_id;
+               __entry->is_virtual = is_virtual;
+               __entry->multirect_mode = multirect_mode;
+       ),
+       TP_printk("id:%u is_virtual:%s multirect_mode:%u", __entry->drm_id,
+                 __entry->is_virtual ? "true" : "false",
+                 __entry->multirect_mode)
+);
+
 #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0)
 #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1)
 #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__)
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

Reply via email to