From: ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
To: Sean Paul <seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org,
freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org
Subject: Re: [DPU PATCH 02/19] drm/msm: dpu_crtc: Replace DPU_EVT with tracepoints
Date: Tue, 26 Jun 2018 21:15:57 +0530 [thread overview]
Message-ID: <cccd9d6d17760d403dc01c4dd066b5ff@codeaurora.org> (raw)
In-Reply-To: <20180620204841.56354-3-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
On 2018-06-21 02:18, Sean Paul wrote:
> This patch converts all DPU_EVTs in dpu_crtc with either a DRM_* log
> message or a linux tracepoint.
>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Rajesh Yadav <ryadav@codeaurora.org>
> ---
> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 122 ++++++----------
> drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 166 ++++++++++++++++++++++
> 2 files changed, 210 insertions(+), 78 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> index 9ca8325877a1..eefc1892ad47 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
> @@ -431,18 +431,12 @@ static void *_dpu_crtc_rp_get(struct
> dpu_crtc_respool *rp, u32 type, u64 tag)
> list_for_each_entry(res, &old_rp->res_list, list) {
> if (res->type != type)
> continue;
> - DPU_DEBUG(
> - "crtc%d.%u found res:0x%x//%pK/ in crtc%d.%d\n",
> - crtc->base.id,
> - rp->sequence_id,
> - res->type, res->val,
> - crtc->base.id,
> - old_rp->sequence_id);
> - DPU_EVT32_VERBOSE(crtc->base.id,
> - rp->sequence_id,
> - res->type, res->val,
> - crtc->base.id,
> - old_rp->sequence_id);
> + DRM_DEBUG_KMS("crtc%d.%u found res:0x%x//%pK/ "
> + "in crtc%d.%d\n",
> + crtc->base.id, rp->sequence_id,
> + res->type, res->val,
> + crtc->base.id,
> + old_rp->sequence_id);
> if (res->ops.get)
> res->ops.get(res->val, 0, -1);
> val = res->val;
> @@ -688,23 +682,17 @@ static void _dpu_crtc_blend_setup_mixer(struct
> drm_crtc *crtc,
> if (pstate->stage == DPU_STAGE_BASE && format->alpha_enable)
> bg_alpha_enable = true;
>
> - DPU_EVT32(DRMID(crtc), DRMID(plane),
> - state->fb ? state->fb->base.id : -1,
> - state->src_x >> 16, state->src_y >> 16,
> - state->src_w >> 16, state->src_h >> 16,
> - state->crtc_x, state->crtc_y,
> - state->crtc_w, state->crtc_h);
> -
> stage_idx = zpos_cnt[pstate->stage]++;
> stage_cfg->stage[pstate->stage][stage_idx] =
> dpu_plane_pipe(plane);
> stage_cfg->multirect_index[pstate->stage][stage_idx] =
> pstate->multirect_index;
>
> - DPU_EVT32(DRMID(crtc), DRMID(plane), stage_idx,
> - dpu_plane_pipe(plane) - SSPP_VIG0, pstate->stage,
> - pstate->multirect_index, pstate->multirect_mode,
> - format->base.pixel_format, fb ? fb->modifier : 0);
> + trace_dpu_crtc_setup_mixer(DRMID(crtc), DRMID(plane),
> + state, pstate, stage_idx,
> + dpu_plane_pipe(plane) - SSPP_VIG0,
> + format->base.pixel_format,
> + fb ? fb->modifier : 0);
>
> /* blend config update */
> for (lm_idx = 0; lm_idx < dpu_crtc->num_mixers; lm_idx++) {
> @@ -821,7 +809,7 @@ static void _dpu_crtc_complete_flip(struct drm_crtc
> *crtc,
> dpu_crtc->event = NULL;
> DRM_DEBUG_VBL("%s: send event: %pK\n",
> dpu_crtc->name, event);
> - DPU_EVT32_VERBOSE(DRMID(crtc));
> + trace_dpu_crtc_complete_flip(DRMID(crtc));
> drm_crtc_send_vblank_event(crtc, event);
> }
> }
> @@ -856,8 +844,7 @@ static void dpu_crtc_vblank_cb(void *data)
> dpu_crtc->vblank_cb_count++;
> _dpu_crtc_complete_flip(crtc, NULL);
> drm_crtc_handle_vblank(crtc);
> - DRM_DEBUG_VBL("crtc%d\n", crtc->base.id);
> - DPU_EVT32_VERBOSE(DRMID(crtc));
> + trace_dpu_crtc_vblank_cb(DRMID(crtc));
> }
>
> /* _dpu_crtc_idle_notify - signal idle timeout to client */
> @@ -933,34 +920,28 @@ static void dpu_crtc_frame_event_work(struct
> kthread_work *work)
> priv = dpu_kms->dev->dev_private;
> DPU_ATRACE_BEGIN("crtc_frame_event");
>
> - DPU_DEBUG("crtc%d event:%u ts:%lld\n", crtc->base.id, fevent->event,
> + DRM_DEBUG_KMS("crtc%d event:%u ts:%lld\n", crtc->base.id,
> fevent->event,
> ktime_to_ns(fevent->ts));
>
> - DPU_EVT32_VERBOSE(DRMID(crtc), fevent->event, DPU_EVTLOG_FUNC_ENTRY);
> -
> if (fevent->event & (DPU_ENCODER_FRAME_EVENT_DONE
> | DPU_ENCODER_FRAME_EVENT_ERROR
> | DPU_ENCODER_FRAME_EVENT_PANEL_DEAD)) {
>
> if (atomic_read(&dpu_crtc->frame_pending) < 1) {
> /* this should not happen */
> - DPU_ERROR("crtc%d ts:%lld invalid frame_pending:%d\n",
> + DRM_ERROR("crtc%d ev:%u ts:%lld frame_pending:%d\n",
> crtc->base.id,
> + fevent->event,
> ktime_to_ns(fevent->ts),
> atomic_read(&dpu_crtc->frame_pending));
> - DPU_EVT32(DRMID(crtc), fevent->event,
> - DPU_EVTLOG_FUNC_CASE1);
> } else if (atomic_dec_return(&dpu_crtc->frame_pending) == 0) {
> /* release bandwidth and other resources */
> - DPU_DEBUG("crtc%d ts:%lld last pending\n",
> - crtc->base.id,
> - ktime_to_ns(fevent->ts));
> - DPU_EVT32(DRMID(crtc), fevent->event,
> - DPU_EVTLOG_FUNC_CASE2);
> + trace_dpu_crtc_frame_event_done(DRMID(crtc),
> + fevent->event);
> dpu_core_perf_crtc_release_bw(crtc);
> } else {
> - DPU_EVT32_VERBOSE(DRMID(crtc), fevent->event,
> - DPU_EVTLOG_FUNC_CASE3);
> + trace_dpu_crtc_frame_event_more_pending(DRMID(crtc),
> + fevent->event);
> }
>
> if (fevent->event & DPU_ENCODER_FRAME_EVENT_DONE)
> @@ -1011,8 +992,7 @@ static void dpu_crtc_frame_event_cb(void *data,
> u32 event)
> priv = crtc->dev->dev_private;
> crtc_id = drm_crtc_index(crtc);
>
> - DPU_DEBUG("crtc%d\n", crtc->base.id);
> - DPU_EVT32_VERBOSE(DRMID(crtc), event);
> + trace_dpu_crtc_frame_event_cb(DRMID(crtc), event);
>
> /* try to process the event in caller context */
> event_processed = _dpu_crtc_handle_event(dpu_crtc, event);
> @@ -1027,9 +1007,7 @@ static void dpu_crtc_frame_event_cb(void *data,
> u32 event)
> spin_unlock_irqrestore(&dpu_crtc->spin_lock, flags);
>
> if (!fevent) {
> - DPU_ERROR("crtc%d event %d overflow\n",
> - crtc->base.id, event);
> - DPU_EVT32(DRMID(crtc), event);
> + DRM_ERROR("crtc%d event %d overflow\n", crtc->base.id, event);
> return;
> }
>
> @@ -1046,7 +1024,7 @@ void dpu_crtc_complete_commit(struct drm_crtc
> *crtc,
> DPU_ERROR("invalid crtc\n");
> return;
> }
> - DPU_EVT32_VERBOSE(DRMID(crtc));
> + trace_dpu_crtc_complete_commit(DRMID(crtc));
> }
>
> static void _dpu_crtc_setup_mixer_for_encoder(
> @@ -1146,9 +1124,8 @@ static void _dpu_crtc_setup_lm_bounds(struct
> drm_crtc *crtc,
> cstate->lm_bounds[i].w = crtc_split_width;
> cstate->lm_bounds[i].h =
> dpu_crtc_get_mixer_height(dpu_crtc, cstate, adj_mode);
> - DPU_EVT32_VERBOSE(DRMID(crtc), i,
> - cstate->lm_bounds[i].x, cstate->lm_bounds[i].y,
> - cstate->lm_bounds[i].w, cstate->lm_bounds[i].h);
> + trace_dpu_crtc_setup_lm_bounds(DRMID(crtc), i,
> + &cstate->lm_bounds[i]);
> }
>
> drm_mode_debug_printmodeline(adj_mode);
> @@ -1345,16 +1322,14 @@ static int
> _dpu_crtc_wait_for_frame_done(struct drm_crtc *crtc)
> return 0;
> }
>
> - DPU_EVT32_VERBOSE(DRMID(crtc), DPU_EVTLOG_FUNC_ENTRY);
> + DPU_ATRACE_BEGIN("frame done completion wait");
> ret = wait_for_completion_timeout(&dpu_crtc->frame_done_comp,
> msecs_to_jiffies(DPU_FRAME_DONE_TIMEOUT));
> if (!ret) {
> - DPU_ERROR("frame done completion wait timed out, ret:%d\n",
> - ret);
> - DPU_EVT32(DRMID(crtc), DPU_EVTLOG_FATAL);
> + DRM_ERROR("frame done wait timed out, ret:%d\n", ret);
> rc = -ETIMEDOUT;
> }
> - DPU_EVT32_VERBOSE(DRMID(crtc), DPU_EVTLOG_FUNC_EXIT);
> + DPU_ATRACE_END("frame done completion wait");
>
> return rc;
> }
> @@ -1477,10 +1452,9 @@ static int _dpu_crtc_vblank_enable_no_lock(
> if (enc->crtc != crtc)
> continue;
>
> - DPU_EVT32(DRMID(&dpu_crtc->base), DRMID(enc), enable,
> - dpu_crtc->enabled,
> - dpu_crtc->suspend,
> - dpu_crtc->vblank_requested);
> + trace_dpu_crtc_vblank_enable(DRMID(&dpu_crtc->base),
> + DRMID(enc), enable,
> + dpu_crtc);
>
> dpu_encoder_register_vblank_callback(enc,
> dpu_crtc_vblank_cb, (void *)crtc);
> @@ -1490,10 +1464,9 @@ static int _dpu_crtc_vblank_enable_no_lock(
> if (enc->crtc != crtc)
> continue;
>
> - DPU_EVT32(DRMID(&dpu_crtc->base), DRMID(enc), enable,
> - dpu_crtc->enabled,
> - dpu_crtc->suspend,
> - dpu_crtc->vblank_requested);
> + trace_dpu_crtc_vblank_enable(DRMID(&dpu_crtc->base),
> + DRMID(enc), enable,
> + dpu_crtc);
>
> dpu_encoder_register_vblank_callback(enc, NULL, NULL);
> }
> @@ -1532,8 +1505,7 @@ static void _dpu_crtc_set_suspend(struct
> drm_crtc *crtc, bool enable)
> }
> dpu_kms = to_dpu_kms(priv->kms);
>
> - DPU_DEBUG("crtc%d suspend = %d\n", crtc->base.id, enable);
> - DPU_EVT32_VERBOSE(DRMID(crtc), enable);
> + DRM_DEBUG_KMS("crtc%d suspend = %d\n", crtc->base.id, enable);
>
> mutex_lock(&dpu_crtc->crtc_lock);
>
> @@ -1541,8 +1513,7 @@ static void _dpu_crtc_set_suspend(struct
> drm_crtc *crtc, bool enable)
> * If the vblank is enabled, release a power reference on suspend
> * and take it back during resume (if it is still enabled).
> */
> - DPU_EVT32(DRMID(&dpu_crtc->base), enable, dpu_crtc->enabled,
> - dpu_crtc->suspend, dpu_crtc->vblank_requested);
> + trace_dpu_crtc_set_suspend(DRMID(&dpu_crtc->base), enable, dpu_crtc);
> if (dpu_crtc->suspend == enable)
> DPU_DEBUG("crtc%d suspend already set to %d, ignoring update\n",
> crtc->base.id, enable);
> @@ -1644,7 +1615,7 @@ static void dpu_crtc_handle_power_event(u32
> event_type, void *arg)
>
> mutex_lock(&dpu_crtc->crtc_lock);
>
> - DPU_EVT32(DRMID(crtc), event_type);
> + trace_dpu_crtc_handle_power_event(DRMID(crtc), event_type);
>
> switch (event_type) {
> case DPU_POWER_EVENT_POST_ENABLE:
> @@ -1712,13 +1683,12 @@ static void dpu_crtc_disable(struct drm_crtc
> *crtc)
> mode = &cstate->base.adjusted_mode;
> priv = crtc->dev->dev_private;
>
> - DPU_DEBUG("crtc%d\n", crtc->base.id);
> + DRM_DEBUG_KMS("crtc%d\n", crtc->base.id);
>
> if (dpu_kms_is_suspend_state(crtc->dev))
> _dpu_crtc_set_suspend(crtc, true);
>
> mutex_lock(&dpu_crtc->crtc_lock);
> - DPU_EVT32_VERBOSE(DRMID(crtc));
>
> /* update color processing on suspend */
> event.type = DRM_EVENT_CRTC_POWER;
> @@ -1733,8 +1703,7 @@ static void dpu_crtc_disable(struct drm_crtc
> *crtc)
> crtc->base.id,
> atomic_read(&dpu_crtc->frame_pending));
>
> - DPU_EVT32(DRMID(crtc), dpu_crtc->enabled, dpu_crtc->suspend,
> - dpu_crtc->vblank_requested);
> + trace_dpu_crtc_disable(DRMID(crtc), false, dpu_crtc);
> if (dpu_crtc->enabled && !dpu_crtc->suspend &&
> dpu_crtc->vblank_requested) {
> ret = _dpu_crtc_vblank_enable_no_lock(dpu_crtc, false);
> @@ -1745,8 +1714,8 @@ static void dpu_crtc_disable(struct drm_crtc
> *crtc)
> dpu_crtc->enabled = false;
>
> if (atomic_read(&dpu_crtc->frame_pending)) {
> - DPU_EVT32(DRMID(crtc), atomic_read(&dpu_crtc->frame_pending),
> - DPU_EVTLOG_FUNC_CASE2);
> + trace_dpu_crtc_disable_frame_pending(DRMID(crtc),
> + atomic_read(&dpu_crtc->frame_pending));
> dpu_core_perf_crtc_release_bw(crtc);
> atomic_set(&dpu_crtc->frame_pending, 0);
> }
> @@ -1791,8 +1760,7 @@ static void dpu_crtc_enable(struct drm_crtc
> *crtc,
> }
> priv = crtc->dev->dev_private;
>
> - DPU_DEBUG("crtc%d\n", crtc->base.id);
> - DPU_EVT32_VERBOSE(DRMID(crtc));
> + DRM_DEBUG_KMS("crtc%d\n", crtc->base.id);
> dpu_crtc = to_dpu_crtc(crtc);
>
> drm_for_each_encoder(encoder, crtc->dev) {
> @@ -1803,8 +1771,7 @@ static void dpu_crtc_enable(struct drm_crtc
> *crtc,
> }
>
> mutex_lock(&dpu_crtc->crtc_lock);
> - DPU_EVT32(DRMID(crtc), dpu_crtc->enabled, dpu_crtc->suspend,
> - dpu_crtc->vblank_requested);
> + trace_dpu_crtc_enable(DRMID(crtc), true, dpu_crtc);
> if (!dpu_crtc->enabled && !dpu_crtc->suspend &&
> dpu_crtc->vblank_requested) {
> ret = _dpu_crtc_vblank_enable_no_lock(dpu_crtc, true);
> @@ -2078,8 +2045,7 @@ int dpu_crtc_vblank(struct drm_crtc *crtc, bool
> en)
> dpu_crtc = to_dpu_crtc(crtc);
>
> mutex_lock(&dpu_crtc->crtc_lock);
> - DPU_EVT32(DRMID(&dpu_crtc->base), en, dpu_crtc->enabled,
> - dpu_crtc->suspend, dpu_crtc->vblank_requested);
> + trace_dpu_crtc_vblank(DRMID(&dpu_crtc->base), en, dpu_crtc);
> if (dpu_crtc->enabled && !dpu_crtc->suspend) {
> ret = _dpu_crtc_vblank_enable_no_lock(dpu_crtc, en);
> if (ret)
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> index b00bdcd0f4e8..877621184782 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
> @@ -17,8 +17,10 @@
> #include <linux/types.h>
> #include <linux/tracepoint.h>
>
> +#include "dpu_crtc.h"
> #include "dpu_encoder_phys.h"
> #include "dpu_hw_mdss.h"
> +#include "dpu_plane.h"
>
> #undef TRACE_SYSTEM
> #define TRACE_SYSTEM dpu
> @@ -324,6 +326,18 @@ DEFINE_EVENT(dpu_drm_obj_template,
> dpu_enc_prepare_kickoff_reset,
> TP_PROTO(uint32_t drm_id),
> TP_ARGS(drm_id)
> );
> +DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_flip,
> + TP_PROTO(uint32_t drm_id),
> + TP_ARGS(drm_id)
> +);
> +DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_vblank_cb,
> + TP_PROTO(uint32_t drm_id),
> + TP_ARGS(drm_id)
> +);
> +DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_commit,
> + TP_PROTO(uint32_t drm_id),
> + TP_ARGS(drm_id)
> +);
>
> TRACE_EVENT(dpu_enc_enable,
> TP_PROTO(uint32_t drm_id, int hdisplay, int vdisplay),
> @@ -532,6 +546,22 @@ DEFINE_EVENT(dpu_id_event_template,
> dpu_enc_frame_done_timeout,
> TP_PROTO(uint32_t drm_id, u32 event),
> TP_ARGS(drm_id, event)
> );
> +DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_cb,
> + TP_PROTO(uint32_t drm_id, u32 event),
> + TP_ARGS(drm_id, event)
> +);
> +DEFINE_EVENT(dpu_id_event_template, dpu_crtc_handle_power_event,
> + TP_PROTO(uint32_t drm_id, u32 event),
> + TP_ARGS(drm_id, event)
> +);
> +DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_done,
> + TP_PROTO(uint32_t drm_id, u32 event),
> + TP_ARGS(drm_id, event)
> +);
> +DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_more_pending,
> + TP_PROTO(uint32_t drm_id, u32 event),
> + TP_ARGS(drm_id, event)
> +);
>
> TRACE_EVENT(dpu_enc_wait_event_timeout,
> TP_PROTO(uint32_t drm_id, int32_t hw_id, int rc, s64 time,
> @@ -558,6 +588,142 @@ TRACE_EVENT(dpu_enc_wait_event_timeout,
> __entry->expected_time, __entry->atomic_cnt)
> );
>
> +TRACE_EVENT(dpu_crtc_setup_mixer,
> + TP_PROTO(uint32_t crtc_id, uint32_t plane_id,
> + struct drm_plane_state *state, struct dpu_plane_state *pstate,
> + uint32_t stage_idx, enum dpu_sspp sspp, uint32_t pixel_format,
> + uint64_t modifier),
> + TP_ARGS(crtc_id, plane_id, state, pstate, stage_idx, sspp,
> + pixel_format, modifier),
> + TP_STRUCT__entry(
> + __field( uint32_t, crtc_id )
> + __field( uint32_t, plane_id )
> + __field( struct drm_plane_state*,state )
> + __field( struct dpu_plane_state*,pstate )
> + __field( uint32_t, stage_idx )
> + __field( enum dpu_sspp, sspp )
> + __field( uint32_t, pixel_format )
> + __field( uint64_t, modifier )
> + ),
> + TP_fast_assign(
> + __entry->crtc_id = crtc_id;
> + __entry->plane_id = plane_id;
> + __entry->state = state;
> + __entry->pstate = pstate;
> + __entry->stage_idx = stage_idx;
> + __entry->sspp = sspp;
> + __entry->pixel_format = pixel_format;
> + __entry->modifier = modifier;
> + ),
> + TP_printk("crtc_id:%u plane_id:%u fb_id:%u src:{%ux%u+%ux%u} "
> + "dst:{%ux%u+%ux%u} stage_idx:%u stage:%d, sspp:%d "
> + "multirect_index:%d multirect_mode:%u pix_format:%u "
> + "modifier:%llu",
> + __entry->crtc_id, __entry->plane_id,
> + __entry->state->fb ? __entry->state->fb->base.id : -1,
> + __entry->state->src_w >> 16, __entry->state->src_h >> 16,
> + __entry->state->src_x >> 16, __entry->state->src_y >> 16,
> + __entry->state->crtc_w, __entry->state->crtc_h,
> + __entry->state->crtc_x, __entry->state->crtc_y,
> + __entry->stage_idx, __entry->pstate->stage, __entry->sspp,
> + __entry->pstate->multirect_index,
> + __entry->pstate->multirect_mode, __entry->pixel_format,
> + __entry->modifier)
> +);
> +
> +TRACE_EVENT(dpu_crtc_setup_lm_bounds,
> + TP_PROTO(uint32_t drm_id, int mixer, struct dpu_rect *bounds),
> + TP_ARGS(drm_id, mixer, bounds),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( int, mixer )
> + __field( struct dpu_rect *, bounds )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->mixer = mixer;
> + __entry->bounds = bounds;
> + ),
> + TP_printk("id:%u mixer:%d bounds:{%ux%u/%ux%u}", __entry->drm_id,
> + __entry->mixer, __entry->bounds->x, __entry->bounds->y,
> + __entry->bounds->w, __entry->bounds->h)
> +);
> +
> +TRACE_EVENT(dpu_crtc_vblank_enable,
> + TP_PROTO(uint32_t drm_id, uint32_t enc_id, bool enable,
> + struct dpu_crtc *crtc),
> + TP_ARGS(drm_id, enc_id, enable, crtc),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( uint32_t, enc_id )
> + __field( bool, enable )
> + __field( struct dpu_crtc *, crtc )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->enc_id = enc_id;
> + __entry->enable = enable;
> + __entry->crtc = crtc;
> + ),
> + TP_printk("id:%u encoder:%u enable:%s state{enabled:%s suspend:%s "
> + "vblank_req:%s}",
> + __entry->drm_id, __entry->enc_id,
> + __entry->enable ? "true" : "false",
> + __entry->crtc->enabled ? "true" : "false",
> + __entry->crtc->suspend ? "true" : "false",
> + __entry->crtc->vblank_requested ? "true" : "false")
> +);
> +
> +DECLARE_EVENT_CLASS(dpu_crtc_enable_template,
> + TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc),
> + TP_ARGS(drm_id, enable, crtc),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( bool, enable )
> + __field( struct dpu_crtc *, crtc )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->enable = enable;
> + __entry->crtc = crtc;
> + ),
> + TP_printk("id:%u enable:%s state{enabled:%s suspend:%s
> vblank_req:%s}",
> + __entry->drm_id, __entry->enable ? "true" : "false",
> + __entry->crtc->enabled ? "true" : "false",
> + __entry->crtc->suspend ? "true" : "false",
> + __entry->crtc->vblank_requested ? "true" : "false")
> +);
> +DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_set_suspend,
> + TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc),
> + TP_ARGS(drm_id, enable, crtc)
> +);
> +DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_enable,
> + TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc),
> + TP_ARGS(drm_id, enable, crtc)
> +);
> +DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_disable,
> + TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc),
> + TP_ARGS(drm_id, enable, crtc)
> +);
> +DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_vblank,
> + TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc),
> + TP_ARGS(drm_id, enable, crtc)
> +);
> +
> +TRACE_EVENT(dpu_crtc_disable_frame_pending,
> + TP_PROTO(uint32_t drm_id, int frame_pending),
> + TP_ARGS(drm_id, frame_pending),
> + TP_STRUCT__entry(
> + __field( uint32_t, drm_id )
> + __field( int, frame_pending )
> + ),
> + TP_fast_assign(
> + __entry->drm_id = drm_id;
> + __entry->frame_pending = frame_pending;
> + ),
> + TP_printk("id:%u frame_pending:%d", __entry->drm_id,
> + __entry->frame_pending)
> +);
>
> #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)
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
next prev parent reply other threads:[~2018-06-26 15:45 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-20 20:48 [DPU PATCH 00/19] drm/msm: dpu: Clean up dpu_dbg Sean Paul
[not found] ` <20180620204841.56354-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-20 20:48 ` [DPU PATCH 01/19] drm/msm: dpu_encoder: Replace DPU_EVT with tracepoints Sean Paul
[not found] ` <20180620204841.56354-2-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 15:57 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 02/19] drm/msm: dpu_crtc: " Sean Paul
[not found] ` <20180620204841.56354-3-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 15:45 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ [this message]
2018-06-20 20:48 ` [DPU PATCH 03/19] drm/msm: dpu_plane: " Sean Paul
[not found] ` <20180620204841.56354-4-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:39 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 04/19] drm/msm: dpu_rm: " Sean Paul
[not found] ` <20180620204841.56354-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:30 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 05/19] drm/msm: dpu_kms: " Sean Paul
[not found] ` <20180620204841.56354-6-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:42 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 06/19] drm/msm: dpu_encoder_phys_cmd: " Sean Paul
[not found] ` <20180620204841.56354-7-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:37 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 07/19] drm/msm: dpu_encoder_phys_vid: " Sean Paul
[not found] ` <20180620204841.56354-8-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:47 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 08/19] drm/msm: dpu_vbif: " Sean Paul
[not found] ` <20180620204841.56354-9-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:43 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 09/19] drm/msm: dpu_pingpong: " Sean Paul
[not found] ` <20180620204841.56354-10-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:45 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 10/19] drm/msm: dpu_core_irq: " Sean Paul
[not found] ` <20180620204841.56354-11-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 10:51 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 11/19] drm/msm: dpu_core_perf: " Sean Paul
[not found] ` <20180620204841.56354-12-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:46 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 12/19] drm/msm: dpu_mdss: Replace DPU_EVT with DRM_ERROR Sean Paul
[not found] ` <20180620204841.56354-13-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:47 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 13/19] drm/msm: dpu: Remove dpu evtlog Sean Paul
[not found] ` <20180620204841.56354-14-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-26 6:52 ` ryadav-sgV2jX0FEOL9JmXXK+q4OQ
2018-06-20 20:48 ` [DPU PATCH 14/19] drm/msm: dpu_dbg: Remove dump_all option for dumping registers Sean Paul
2018-06-20 20:48 ` [DPU PATCH 15/19] drm/msm: dpu: Remove arbitrary register dumps Sean Paul
2018-06-20 20:48 ` [DPU PATCH 16/19] drm/msm: dpu: Remove panic from dpu debug dump Sean Paul
2018-06-20 20:48 ` [DPU PATCH 17/19] drm/msm: dpu: Remove dsi debug block name Sean Paul
2018-06-20 20:48 ` [DPU PATCH 18/19] drm/msm: dpu_dbg: Remove string parsing from DBG_DUMP Sean Paul
2018-06-20 20:48 ` [DPU PATCH 19/19] drm/msm: dpu: Move dpu_dbg into dpu1 directory Sean Paul
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cccd9d6d17760d403dc01c4dd066b5ff@codeaurora.org \
--to=ryadav-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox