197fb5e8dSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 225fdd593SJeykumar Sankaran /* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. 325fdd593SJeykumar Sankaran */ 425fdd593SJeykumar Sankaran 525fdd593SJeykumar Sankaran #if !defined(_DPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 625fdd593SJeykumar Sankaran #define _DPU_TRACE_H_ 725fdd593SJeykumar Sankaran 825fdd593SJeykumar Sankaran #include <linux/stringify.h> 925fdd593SJeykumar Sankaran #include <linux/types.h> 1025fdd593SJeykumar Sankaran #include <linux/tracepoint.h> 1125fdd593SJeykumar Sankaran 1225fdd593SJeykumar Sankaran #include <drm/drm_rect.h> 1325fdd593SJeykumar Sankaran #include "dpu_crtc.h" 1425fdd593SJeykumar Sankaran #include "dpu_encoder_phys.h" 1525fdd593SJeykumar Sankaran #include "dpu_hw_mdss.h" 1625fdd593SJeykumar Sankaran #include "dpu_hw_vbif.h" 1725fdd593SJeykumar Sankaran #include "dpu_plane.h" 1825fdd593SJeykumar Sankaran 1925fdd593SJeykumar Sankaran #undef TRACE_SYSTEM 2025fdd593SJeykumar Sankaran #define TRACE_SYSTEM dpu 2125fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_FILE 2225fdd593SJeykumar Sankaran #define TRACE_INCLUDE_FILE dpu_trace 2325fdd593SJeykumar Sankaran 2425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_set_qos_luts, 2525fdd593SJeykumar Sankaran TP_PROTO(u32 pnum, u32 fmt, bool rt, u32 fl, 2625fdd593SJeykumar Sankaran u32 lut, u32 lut_usage), 2725fdd593SJeykumar Sankaran TP_ARGS(pnum, fmt, rt, fl, lut, lut_usage), 2825fdd593SJeykumar Sankaran TP_STRUCT__entry( 2925fdd593SJeykumar Sankaran __field(u32, pnum) 3025fdd593SJeykumar Sankaran __field(u32, fmt) 3125fdd593SJeykumar Sankaran __field(bool, rt) 3225fdd593SJeykumar Sankaran __field(u32, fl) 3325fdd593SJeykumar Sankaran __field(u64, lut) 3425fdd593SJeykumar Sankaran __field(u32, lut_usage) 3525fdd593SJeykumar Sankaran ), 3625fdd593SJeykumar Sankaran TP_fast_assign( 3725fdd593SJeykumar Sankaran __entry->pnum = pnum; 3825fdd593SJeykumar Sankaran __entry->fmt = fmt; 3925fdd593SJeykumar Sankaran __entry->rt = rt; 4025fdd593SJeykumar Sankaran __entry->fl = fl; 4125fdd593SJeykumar Sankaran __entry->lut = lut; 4225fdd593SJeykumar Sankaran __entry->lut_usage = lut_usage; 4325fdd593SJeykumar Sankaran ), 4425fdd593SJeykumar Sankaran TP_printk("pnum=%d fmt=%x rt=%d fl=%d lut=0x%llx lut_usage=%d", 4525fdd593SJeykumar Sankaran __entry->pnum, __entry->fmt, 4625fdd593SJeykumar Sankaran __entry->rt, __entry->fl, 4725fdd593SJeykumar Sankaran __entry->lut, __entry->lut_usage) 4825fdd593SJeykumar Sankaran ); 4925fdd593SJeykumar Sankaran 5025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_set_danger_luts, 5125fdd593SJeykumar Sankaran TP_PROTO(u32 pnum, u32 fmt, u32 mode, u32 danger_lut, 5225fdd593SJeykumar Sankaran u32 safe_lut), 5325fdd593SJeykumar Sankaran TP_ARGS(pnum, fmt, mode, danger_lut, safe_lut), 5425fdd593SJeykumar Sankaran TP_STRUCT__entry( 5525fdd593SJeykumar Sankaran __field(u32, pnum) 5625fdd593SJeykumar Sankaran __field(u32, fmt) 5725fdd593SJeykumar Sankaran __field(u32, mode) 5825fdd593SJeykumar Sankaran __field(u32, danger_lut) 5925fdd593SJeykumar Sankaran __field(u32, safe_lut) 6025fdd593SJeykumar Sankaran ), 6125fdd593SJeykumar Sankaran TP_fast_assign( 6225fdd593SJeykumar Sankaran __entry->pnum = pnum; 6325fdd593SJeykumar Sankaran __entry->fmt = fmt; 6425fdd593SJeykumar Sankaran __entry->mode = mode; 6525fdd593SJeykumar Sankaran __entry->danger_lut = danger_lut; 6625fdd593SJeykumar Sankaran __entry->safe_lut = safe_lut; 6725fdd593SJeykumar Sankaran ), 6825fdd593SJeykumar Sankaran TP_printk("pnum=%d fmt=%x mode=%d luts[0x%x, 0x%x]", 6925fdd593SJeykumar Sankaran __entry->pnum, __entry->fmt, 7025fdd593SJeykumar Sankaran __entry->mode, __entry->danger_lut, 7125fdd593SJeykumar Sankaran __entry->safe_lut) 7225fdd593SJeykumar Sankaran ); 7325fdd593SJeykumar Sankaran 7425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_set_ot, 7525fdd593SJeykumar Sankaran TP_PROTO(u32 pnum, u32 xin_id, u32 rd_lim, u32 vbif_idx), 7625fdd593SJeykumar Sankaran TP_ARGS(pnum, xin_id, rd_lim, vbif_idx), 7725fdd593SJeykumar Sankaran TP_STRUCT__entry( 7825fdd593SJeykumar Sankaran __field(u32, pnum) 7925fdd593SJeykumar Sankaran __field(u32, xin_id) 8025fdd593SJeykumar Sankaran __field(u32, rd_lim) 8125fdd593SJeykumar Sankaran __field(u32, vbif_idx) 8225fdd593SJeykumar Sankaran ), 8325fdd593SJeykumar Sankaran TP_fast_assign( 8425fdd593SJeykumar Sankaran __entry->pnum = pnum; 8525fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 8625fdd593SJeykumar Sankaran __entry->rd_lim = rd_lim; 8725fdd593SJeykumar Sankaran __entry->vbif_idx = vbif_idx; 8825fdd593SJeykumar Sankaran ), 8925fdd593SJeykumar Sankaran TP_printk("pnum:%d xin_id:%d ot:%d vbif:%d", 9025fdd593SJeykumar Sankaran __entry->pnum, __entry->xin_id, __entry->rd_lim, 9125fdd593SJeykumar Sankaran __entry->vbif_idx) 9225fdd593SJeykumar Sankaran ) 9325fdd593SJeykumar Sankaran 9425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_cmd_release_bw, 9525fdd593SJeykumar Sankaran TP_PROTO(u32 crtc_id), 9625fdd593SJeykumar Sankaran TP_ARGS(crtc_id), 9725fdd593SJeykumar Sankaran TP_STRUCT__entry( 9825fdd593SJeykumar Sankaran __field(u32, crtc_id) 9925fdd593SJeykumar Sankaran ), 10025fdd593SJeykumar Sankaran TP_fast_assign( 10125fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 10225fdd593SJeykumar Sankaran ), 10325fdd593SJeykumar Sankaran TP_printk("crtc:%d", __entry->crtc_id) 10425fdd593SJeykumar Sankaran ); 10525fdd593SJeykumar Sankaran 10625fdd593SJeykumar Sankaran TRACE_EVENT(tracing_mark_write, 10725fdd593SJeykumar Sankaran TP_PROTO(int pid, const char *name, bool trace_begin), 10825fdd593SJeykumar Sankaran TP_ARGS(pid, name, trace_begin), 10925fdd593SJeykumar Sankaran TP_STRUCT__entry( 11025fdd593SJeykumar Sankaran __field(int, pid) 11125fdd593SJeykumar Sankaran __string(trace_name, name) 11225fdd593SJeykumar Sankaran __field(bool, trace_begin) 11325fdd593SJeykumar Sankaran ), 11425fdd593SJeykumar Sankaran TP_fast_assign( 11525fdd593SJeykumar Sankaran __entry->pid = pid; 11625fdd593SJeykumar Sankaran __assign_str(trace_name, name); 11725fdd593SJeykumar Sankaran __entry->trace_begin = trace_begin; 11825fdd593SJeykumar Sankaran ), 11925fdd593SJeykumar Sankaran TP_printk("%s|%d|%s", __entry->trace_begin ? "B" : "E", 12025fdd593SJeykumar Sankaran __entry->pid, __get_str(trace_name)) 12125fdd593SJeykumar Sankaran ) 12225fdd593SJeykumar Sankaran 12325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_trace_counter, 12425fdd593SJeykumar Sankaran TP_PROTO(int pid, char *name, int value), 12525fdd593SJeykumar Sankaran TP_ARGS(pid, name, value), 12625fdd593SJeykumar Sankaran TP_STRUCT__entry( 12725fdd593SJeykumar Sankaran __field(int, pid) 12825fdd593SJeykumar Sankaran __string(counter_name, name) 12925fdd593SJeykumar Sankaran __field(int, value) 13025fdd593SJeykumar Sankaran ), 13125fdd593SJeykumar Sankaran TP_fast_assign( 13225fdd593SJeykumar Sankaran __entry->pid = current->tgid; 13325fdd593SJeykumar Sankaran __assign_str(counter_name, name); 13425fdd593SJeykumar Sankaran __entry->value = value; 13525fdd593SJeykumar Sankaran ), 13625fdd593SJeykumar Sankaran TP_printk("%d|%s|%d", __entry->pid, 13725fdd593SJeykumar Sankaran __get_str(counter_name), __entry->value) 13825fdd593SJeykumar Sankaran ) 13925fdd593SJeykumar Sankaran 14025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_crtc_update, 141cb88482eSJayant Shekhar TP_PROTO(u32 crtc, u64 bw_ctl, u32 core_clk_rate, 142cb88482eSJayant Shekhar bool stop_req, bool update_bus, bool update_clk), 143cb88482eSJayant Shekhar TP_ARGS(crtc, bw_ctl, core_clk_rate, stop_req, update_bus, update_clk), 14425fdd593SJeykumar Sankaran TP_STRUCT__entry( 14525fdd593SJeykumar Sankaran __field(u32, crtc) 146cb88482eSJayant Shekhar __field(u64, bw_ctl) 14725fdd593SJeykumar Sankaran __field(u32, core_clk_rate) 14825fdd593SJeykumar Sankaran __field(bool, stop_req) 14925fdd593SJeykumar Sankaran __field(u32, update_bus) 15025fdd593SJeykumar Sankaran __field(u32, update_clk) 15125fdd593SJeykumar Sankaran ), 15225fdd593SJeykumar Sankaran TP_fast_assign( 15325fdd593SJeykumar Sankaran __entry->crtc = crtc; 154cb88482eSJayant Shekhar __entry->bw_ctl = bw_ctl; 15525fdd593SJeykumar Sankaran __entry->core_clk_rate = core_clk_rate; 15625fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 15725fdd593SJeykumar Sankaran __entry->update_bus = update_bus; 15825fdd593SJeykumar Sankaran __entry->update_clk = update_clk; 15925fdd593SJeykumar Sankaran ), 16025fdd593SJeykumar Sankaran TP_printk( 161cb88482eSJayant Shekhar "crtc=%d bw_ctl=%llu clk_rate=%u stop_req=%d u_bus=%d u_clk=%d", 16225fdd593SJeykumar Sankaran __entry->crtc, 163cb88482eSJayant Shekhar __entry->bw_ctl, 16425fdd593SJeykumar Sankaran __entry->core_clk_rate, 16525fdd593SJeykumar Sankaran __entry->stop_req, 16625fdd593SJeykumar Sankaran __entry->update_bus, 16725fdd593SJeykumar Sankaran __entry->update_clk) 16825fdd593SJeykumar Sankaran ); 16925fdd593SJeykumar Sankaran 1706ee11c41SDmitry Baryshkov DECLARE_EVENT_CLASS(dpu_irq_template, 1716ee11c41SDmitry Baryshkov TP_PROTO(int irq_idx), 1726ee11c41SDmitry Baryshkov TP_ARGS(irq_idx), 17325fdd593SJeykumar Sankaran TP_STRUCT__entry( 17425fdd593SJeykumar Sankaran __field( int, irq_idx ) 17525fdd593SJeykumar Sankaran ), 17625fdd593SJeykumar Sankaran TP_fast_assign( 17725fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 17825fdd593SJeykumar Sankaran ), 1796ee11c41SDmitry Baryshkov TP_printk("irq=%d", __entry->irq_idx) 18025fdd593SJeykumar Sankaran ); 1816ee11c41SDmitry Baryshkov DEFINE_EVENT(dpu_irq_template, dpu_irq_register_success, 1826ee11c41SDmitry Baryshkov TP_PROTO(int irq_idx), 1836ee11c41SDmitry Baryshkov TP_ARGS(irq_idx) 18425fdd593SJeykumar Sankaran ); 1856ee11c41SDmitry Baryshkov DEFINE_EVENT(dpu_irq_template, dpu_irq_unregister_success, 1866ee11c41SDmitry Baryshkov TP_PROTO(int irq_idx), 1876ee11c41SDmitry Baryshkov TP_ARGS(irq_idx) 18825fdd593SJeykumar Sankaran ); 18925fdd593SJeykumar Sankaran 19025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_irq_wait_success, 1911e7ac595SDmitry Baryshkov TP_PROTO(uint32_t drm_id, void *func, 19225fdd593SJeykumar Sankaran int irq_idx, enum dpu_pingpong pp_idx, int atomic_cnt), 1931e7ac595SDmitry Baryshkov TP_ARGS(drm_id, func, irq_idx, pp_idx, atomic_cnt), 19425fdd593SJeykumar Sankaran TP_STRUCT__entry( 19525fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 1961e7ac595SDmitry Baryshkov __field( void *, func ) 19725fdd593SJeykumar Sankaran __field( int, irq_idx ) 19825fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp_idx ) 19925fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 20025fdd593SJeykumar Sankaran ), 20125fdd593SJeykumar Sankaran TP_fast_assign( 20225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 2031e7ac595SDmitry Baryshkov __entry->func = func; 20425fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 20525fdd593SJeykumar Sankaran __entry->pp_idx = pp_idx; 20625fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 20725fdd593SJeykumar Sankaran ), 2081e7ac595SDmitry Baryshkov TP_printk("id=%u, callback=%ps, irq=%d, pp=%d, atomic_cnt=%d", 2091e7ac595SDmitry Baryshkov __entry->drm_id, __entry->func, 21025fdd593SJeykumar Sankaran __entry->irq_idx, __entry->pp_idx, __entry->atomic_cnt) 21125fdd593SJeykumar Sankaran ); 21225fdd593SJeykumar Sankaran 21325fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_drm_obj_template, 21425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 21525fdd593SJeykumar Sankaran TP_ARGS(drm_id), 21625fdd593SJeykumar Sankaran TP_STRUCT__entry( 21725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 21825fdd593SJeykumar Sankaran ), 21925fdd593SJeykumar Sankaran TP_fast_assign( 22025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 22125fdd593SJeykumar Sankaran ), 22225fdd593SJeykumar Sankaran TP_printk("id=%u", __entry->drm_id) 22325fdd593SJeykumar Sankaran ); 22425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_atomic_check, 22525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 22625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 22725fdd593SJeykumar Sankaran ); 22825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_mode_set, 22925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 23025fdd593SJeykumar Sankaran TP_ARGS(drm_id) 23125fdd593SJeykumar Sankaran ); 23225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_disable, 23325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 23425fdd593SJeykumar Sankaran TP_ARGS(drm_id) 23525fdd593SJeykumar Sankaran ); 23625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_kickoff, 23725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 23825fdd593SJeykumar Sankaran TP_ARGS(drm_id) 23925fdd593SJeykumar Sankaran ); 24025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_prepare_kickoff, 24125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 24225fdd593SJeykumar Sankaran TP_ARGS(drm_id) 24325fdd593SJeykumar Sankaran ); 24425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_prepare_kickoff_reset, 24525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 24625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 24725fdd593SJeykumar Sankaran ); 24825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_flip, 24925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 25025fdd593SJeykumar Sankaran TP_ARGS(drm_id) 25125fdd593SJeykumar Sankaran ); 25225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_vblank_cb, 25325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 25425fdd593SJeykumar Sankaran TP_ARGS(drm_id) 25525fdd593SJeykumar Sankaran ); 25625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_commit, 25725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 25825fdd593SJeykumar Sankaran TP_ARGS(drm_id) 25925fdd593SJeykumar Sankaran ); 26025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_commit, 26125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 26225fdd593SJeykumar Sankaran TP_ARGS(drm_id) 26325fdd593SJeykumar Sankaran ); 26425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_wait_for_commit_done, 26525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 26625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 26725fdd593SJeykumar Sankaran ); 2683cf63cd5SSean Paul DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_runtime_resume, 2693cf63cd5SSean Paul TP_PROTO(uint32_t drm_id), 2703cf63cd5SSean Paul TP_ARGS(drm_id) 2713cf63cd5SSean Paul ); 27225fdd593SJeykumar Sankaran 27325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_enable, 27425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int hdisplay, int vdisplay), 27525fdd593SJeykumar Sankaran TP_ARGS(drm_id, hdisplay, vdisplay), 27625fdd593SJeykumar Sankaran TP_STRUCT__entry( 27725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 27825fdd593SJeykumar Sankaran __field( int, hdisplay ) 27925fdd593SJeykumar Sankaran __field( int, vdisplay ) 28025fdd593SJeykumar Sankaran ), 28125fdd593SJeykumar Sankaran TP_fast_assign( 28225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 28325fdd593SJeykumar Sankaran __entry->hdisplay = hdisplay; 28425fdd593SJeykumar Sankaran __entry->vdisplay = vdisplay; 28525fdd593SJeykumar Sankaran ), 28625fdd593SJeykumar Sankaran TP_printk("id=%u, mode=%dx%d", 28725fdd593SJeykumar Sankaran __entry->drm_id, __entry->hdisplay, __entry->vdisplay) 28825fdd593SJeykumar Sankaran ); 28925fdd593SJeykumar Sankaran 29025fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_keyval_template, 29125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int val), 29225fdd593SJeykumar Sankaran TP_ARGS(drm_id, val), 29325fdd593SJeykumar Sankaran TP_STRUCT__entry( 29425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 29525fdd593SJeykumar Sankaran __field( int, val ) 29625fdd593SJeykumar Sankaran ), 29725fdd593SJeykumar Sankaran TP_fast_assign( 29825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 29925fdd593SJeykumar Sankaran __entry->val = val; 30025fdd593SJeykumar Sankaran ), 30125fdd593SJeykumar Sankaran TP_printk("id=%u, val=%d", __entry->drm_id, __entry->val) 30225fdd593SJeykumar Sankaran ); 30325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_underrun_cb, 30425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int count), 30525fdd593SJeykumar Sankaran TP_ARGS(drm_id, count) 30625fdd593SJeykumar Sankaran ); 30725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_trigger_start, 30825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int ctl_idx), 30925fdd593SJeykumar Sankaran TP_ARGS(drm_id, ctl_idx) 31025fdd593SJeykumar Sankaran ); 31125fdd593SJeykumar Sankaran 31225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_atomic_check_flags, 3135dce0c0bSVille Syrjälä TP_PROTO(uint32_t drm_id, unsigned int flags), 3145dce0c0bSVille Syrjälä TP_ARGS(drm_id, flags), 31525fdd593SJeykumar Sankaran TP_STRUCT__entry( 31625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 31725fdd593SJeykumar Sankaran __field( unsigned int, flags ) 31825fdd593SJeykumar Sankaran ), 31925fdd593SJeykumar Sankaran TP_fast_assign( 32025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 32125fdd593SJeykumar Sankaran __entry->flags = flags; 32225fdd593SJeykumar Sankaran ), 3235dce0c0bSVille Syrjälä TP_printk("id=%u, flags=%u", 3245dce0c0bSVille Syrjälä __entry->drm_id, __entry->flags) 32525fdd593SJeykumar Sankaran ); 32625fdd593SJeykumar Sankaran 32725fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_id_enable_template, 32825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 32925fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable), 33025fdd593SJeykumar Sankaran TP_STRUCT__entry( 33125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 33225fdd593SJeykumar Sankaran __field( bool, enable ) 33325fdd593SJeykumar Sankaran ), 33425fdd593SJeykumar Sankaran TP_fast_assign( 33525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 33625fdd593SJeykumar Sankaran __entry->enable = enable; 33725fdd593SJeykumar Sankaran ), 33825fdd593SJeykumar Sankaran TP_printk("id=%u, enable=%s", 33925fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false") 34025fdd593SJeykumar Sankaran ); 34125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_rc_helper, 34225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 34325fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 34425fdd593SJeykumar Sankaran ); 34525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_vblank_cb, 34625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 34725fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 34825fdd593SJeykumar Sankaran ); 34925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_frame_event_cb, 35025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 35125fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 35225fdd593SJeykumar Sankaran ); 35325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_phys_cmd_connect_te, 35425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 35525fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 35625fdd593SJeykumar Sankaran ); 35725fdd593SJeykumar Sankaran 35825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_rc, 35925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 sw_event, bool idle_pc_supported, 36025fdd593SJeykumar Sankaran int rc_state, const char *stage), 36125fdd593SJeykumar Sankaran TP_ARGS(drm_id, sw_event, idle_pc_supported, rc_state, stage), 36225fdd593SJeykumar Sankaran TP_STRUCT__entry( 36325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 36425fdd593SJeykumar Sankaran __field( u32, sw_event ) 36525fdd593SJeykumar Sankaran __field( bool, idle_pc_supported ) 36625fdd593SJeykumar Sankaran __field( int, rc_state ) 36725fdd593SJeykumar Sankaran __string( stage_str, stage ) 36825fdd593SJeykumar Sankaran ), 36925fdd593SJeykumar Sankaran TP_fast_assign( 37025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 37125fdd593SJeykumar Sankaran __entry->sw_event = sw_event; 37225fdd593SJeykumar Sankaran __entry->idle_pc_supported = idle_pc_supported; 37325fdd593SJeykumar Sankaran __entry->rc_state = rc_state; 37425fdd593SJeykumar Sankaran __assign_str(stage_str, stage); 37525fdd593SJeykumar Sankaran ), 376b721ea48SRob Clark TP_printk("%s: id:%u, sw_event:%d, idle_pc_supported:%s, rc_state:%d", 37725fdd593SJeykumar Sankaran __get_str(stage_str), __entry->drm_id, __entry->sw_event, 37825fdd593SJeykumar Sankaran __entry->idle_pc_supported ? "true" : "false", 37925fdd593SJeykumar Sankaran __entry->rc_state) 38025fdd593SJeykumar Sankaran ); 38125fdd593SJeykumar Sankaran 38225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb_not_busy, 383da10e280SAbhinav Kumar TP_PROTO(uint32_t drm_id, u32 event, char *intf_mode, enum dpu_intf intf_idx, 384da10e280SAbhinav Kumar enum dpu_wb wb_idx), 385da10e280SAbhinav Kumar TP_ARGS(drm_id, event, intf_mode, intf_idx, wb_idx), 38625fdd593SJeykumar Sankaran TP_STRUCT__entry( 38725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 38825fdd593SJeykumar Sankaran __field( u32, event ) 389da10e280SAbhinav Kumar __string( intf_mode_str, intf_mode ) 39025fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 391da10e280SAbhinav Kumar __field( enum dpu_wb, wb_idx ) 39225fdd593SJeykumar Sankaran ), 39325fdd593SJeykumar Sankaran TP_fast_assign( 39425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 39525fdd593SJeykumar Sankaran __entry->event = event; 396da10e280SAbhinav Kumar __assign_str(intf_mode_str, intf_mode); 39725fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 398da10e280SAbhinav Kumar __entry->wb_idx = wb_idx; 39925fdd593SJeykumar Sankaran ), 400da10e280SAbhinav Kumar TP_printk("id=%u, event=%u, intf_mode=%s intf=%d wb=%d", __entry->drm_id, 401da10e280SAbhinav Kumar __entry->event, __get_str(intf_mode_str), 402da10e280SAbhinav Kumar __entry->intf_idx, __entry->wb_idx) 40325fdd593SJeykumar Sankaran ); 40425fdd593SJeykumar Sankaran 40525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb, 40625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int idx, 40725fdd593SJeykumar Sankaran unsigned long frame_busy_mask), 40825fdd593SJeykumar Sankaran TP_ARGS(drm_id, idx, frame_busy_mask), 40925fdd593SJeykumar Sankaran TP_STRUCT__entry( 41025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 41125fdd593SJeykumar Sankaran __field( unsigned int, idx ) 41225fdd593SJeykumar Sankaran __field( unsigned long, frame_busy_mask ) 41325fdd593SJeykumar Sankaran ), 41425fdd593SJeykumar Sankaran TP_fast_assign( 41525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 41625fdd593SJeykumar Sankaran __entry->idx = idx; 41725fdd593SJeykumar Sankaran __entry->frame_busy_mask = frame_busy_mask; 41825fdd593SJeykumar Sankaran ), 41925fdd593SJeykumar Sankaran TP_printk("id=%u, idx=%u, frame_busy_mask=%lx", __entry->drm_id, 42025fdd593SJeykumar Sankaran __entry->idx, __entry->frame_busy_mask) 42125fdd593SJeykumar Sankaran ); 42225fdd593SJeykumar Sankaran 42325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_trigger_flush, 424da10e280SAbhinav Kumar TP_PROTO(uint32_t drm_id, char *intf_mode, enum dpu_intf intf_idx, enum dpu_wb wb_idx, 4251bb4e701SSean Paul int pending_kickoff_cnt, int ctl_idx, u32 extra_flush_bits, 4261bb4e701SSean Paul u32 pending_flush_ret), 427da10e280SAbhinav Kumar TP_ARGS(drm_id, intf_mode, intf_idx, wb_idx, pending_kickoff_cnt, ctl_idx, 4281bb4e701SSean Paul extra_flush_bits, pending_flush_ret), 42925fdd593SJeykumar Sankaran TP_STRUCT__entry( 43025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 431da10e280SAbhinav Kumar __string( intf_mode_str, intf_mode ) 43225fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 433da10e280SAbhinav Kumar __field( enum dpu_wb, wb_idx ) 43425fdd593SJeykumar Sankaran __field( int, pending_kickoff_cnt ) 43525fdd593SJeykumar Sankaran __field( int, ctl_idx ) 4361bb4e701SSean Paul __field( u32, extra_flush_bits ) 43725fdd593SJeykumar Sankaran __field( u32, pending_flush_ret ) 43825fdd593SJeykumar Sankaran ), 43925fdd593SJeykumar Sankaran TP_fast_assign( 44025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 441da10e280SAbhinav Kumar __assign_str(intf_mode_str, intf_mode); 44225fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 443da10e280SAbhinav Kumar __entry->wb_idx = wb_idx; 44425fdd593SJeykumar Sankaran __entry->pending_kickoff_cnt = pending_kickoff_cnt; 44525fdd593SJeykumar Sankaran __entry->ctl_idx = ctl_idx; 4461bb4e701SSean Paul __entry->extra_flush_bits = extra_flush_bits; 44725fdd593SJeykumar Sankaran __entry->pending_flush_ret = pending_flush_ret; 44825fdd593SJeykumar Sankaran ), 449da10e280SAbhinav Kumar TP_printk("id=%u, intf_mode=%s, intf_idx=%d, wb_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d " 4501bb4e701SSean Paul "extra_flush_bits=0x%x pending_flush_ret=0x%x", 451da10e280SAbhinav Kumar __entry->drm_id, __get_str(intf_mode_str), __entry->intf_idx, __entry->wb_idx, 4521bb4e701SSean Paul __entry->pending_kickoff_cnt, __entry->ctl_idx, 4531bb4e701SSean Paul __entry->extra_flush_bits, __entry->pending_flush_ret) 45425fdd593SJeykumar Sankaran ); 45525fdd593SJeykumar Sankaran 45625fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_ktime_template, 45725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 45825fdd593SJeykumar Sankaran TP_ARGS(drm_id, time), 45925fdd593SJeykumar Sankaran TP_STRUCT__entry( 46025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 46125fdd593SJeykumar Sankaran __field( ktime_t, time ) 46225fdd593SJeykumar Sankaran ), 46325fdd593SJeykumar Sankaran TP_fast_assign( 46425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 46525fdd593SJeykumar Sankaran __entry->time = time; 46625fdd593SJeykumar Sankaran ), 46725fdd593SJeykumar Sankaran TP_printk("id=%u, time=%lld", __entry->drm_id, 46825fdd593SJeykumar Sankaran ktime_to_ms(__entry->time)) 46925fdd593SJeykumar Sankaran ); 47025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_vsync_event_work, 47125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 47225fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 47325fdd593SJeykumar Sankaran ); 47425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_early_kickoff, 47525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 47625fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 47725fdd593SJeykumar Sankaran ); 47825fdd593SJeykumar Sankaran 47925fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_id_event_template, 48025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 48125fdd593SJeykumar Sankaran TP_ARGS(drm_id, event), 48225fdd593SJeykumar Sankaran TP_STRUCT__entry( 48325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 48425fdd593SJeykumar Sankaran __field( u32, event ) 48525fdd593SJeykumar Sankaran ), 48625fdd593SJeykumar Sankaran TP_fast_assign( 48725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 48825fdd593SJeykumar Sankaran __entry->event = event; 48925fdd593SJeykumar Sankaran ), 49025fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u", __entry->drm_id, __entry->event) 49125fdd593SJeykumar Sankaran ); 49225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_enc_frame_done_timeout, 49325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 49425fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 49525fdd593SJeykumar Sankaran ); 49625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_cb, 49725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 49825fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 49925fdd593SJeykumar Sankaran ); 50025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_done, 50125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 50225fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 50325fdd593SJeykumar Sankaran ); 50425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_more_pending, 50525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 50625fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 50725fdd593SJeykumar Sankaran ); 50825fdd593SJeykumar Sankaran 50925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_wait_event_timeout, 510667e9985SDmitry Baryshkov TP_PROTO(uint32_t drm_id, int irq_idx, int rc, s64 time, 51125fdd593SJeykumar Sankaran s64 expected_time, int atomic_cnt), 512667e9985SDmitry Baryshkov TP_ARGS(drm_id, irq_idx, rc, time, expected_time, atomic_cnt), 51325fdd593SJeykumar Sankaran TP_STRUCT__entry( 51425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 515667e9985SDmitry Baryshkov __field( int, irq_idx ) 51625fdd593SJeykumar Sankaran __field( int, rc ) 51725fdd593SJeykumar Sankaran __field( s64, time ) 51825fdd593SJeykumar Sankaran __field( s64, expected_time ) 51925fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 52025fdd593SJeykumar Sankaran ), 52125fdd593SJeykumar Sankaran TP_fast_assign( 52225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 523667e9985SDmitry Baryshkov __entry->irq_idx = irq_idx; 52425fdd593SJeykumar Sankaran __entry->rc = rc; 52525fdd593SJeykumar Sankaran __entry->time = time; 52625fdd593SJeykumar Sankaran __entry->expected_time = expected_time; 52725fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 52825fdd593SJeykumar Sankaran ), 529667e9985SDmitry Baryshkov TP_printk("id=%u, irq_idx=%d, rc=%d, time=%lld, expected=%lld cnt=%d", 530667e9985SDmitry Baryshkov __entry->drm_id, __entry->irq_idx, __entry->rc, __entry->time, 53125fdd593SJeykumar Sankaran __entry->expected_time, __entry->atomic_cnt) 53225fdd593SJeykumar Sankaran ); 53325fdd593SJeykumar Sankaran 53425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_irq_ctrl, 53525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, bool enable, 53625fdd593SJeykumar Sankaran int refcnt), 53725fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, enable, refcnt), 53825fdd593SJeykumar Sankaran TP_STRUCT__entry( 53925fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 54025fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 54125fdd593SJeykumar Sankaran __field( bool, enable ) 54225fdd593SJeykumar Sankaran __field( int, refcnt ) 54325fdd593SJeykumar Sankaran ), 54425fdd593SJeykumar Sankaran TP_fast_assign( 54525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 54625fdd593SJeykumar Sankaran __entry->pp = pp; 54725fdd593SJeykumar Sankaran __entry->enable = enable; 54825fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 54925fdd593SJeykumar Sankaran ), 55025fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, enable=%s, refcnt=%d", __entry->drm_id, 55125fdd593SJeykumar Sankaran __entry->pp, __entry->enable ? "true" : "false", 55225fdd593SJeykumar Sankaran __entry->refcnt) 55325fdd593SJeykumar Sankaran ); 55425fdd593SJeykumar Sankaran 55525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pp_tx_done, 55625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int new_count, 55725fdd593SJeykumar Sankaran u32 event), 55825fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, new_count, event), 55925fdd593SJeykumar Sankaran TP_STRUCT__entry( 56025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 56125fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 56225fdd593SJeykumar Sankaran __field( int, new_count ) 56325fdd593SJeykumar Sankaran __field( u32, event ) 56425fdd593SJeykumar Sankaran ), 56525fdd593SJeykumar Sankaran TP_fast_assign( 56625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 56725fdd593SJeykumar Sankaran __entry->pp = pp; 56825fdd593SJeykumar Sankaran __entry->new_count = new_count; 56925fdd593SJeykumar Sankaran __entry->event = event; 57025fdd593SJeykumar Sankaran ), 57125fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, new_count=%d, event=%u", __entry->drm_id, 57225fdd593SJeykumar Sankaran __entry->pp, __entry->new_count, __entry->event) 57325fdd593SJeykumar Sankaran ); 57425fdd593SJeykumar Sankaran 57525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pdone_timeout, 57625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int timeout_count, 57725fdd593SJeykumar Sankaran int kickoff_count, u32 event), 57825fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, timeout_count, kickoff_count, event), 57925fdd593SJeykumar Sankaran TP_STRUCT__entry( 58025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 58125fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 58225fdd593SJeykumar Sankaran __field( int, timeout_count ) 58325fdd593SJeykumar Sankaran __field( int, kickoff_count ) 58425fdd593SJeykumar Sankaran __field( u32, event ) 58525fdd593SJeykumar Sankaran ), 58625fdd593SJeykumar Sankaran TP_fast_assign( 58725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 58825fdd593SJeykumar Sankaran __entry->pp = pp; 58925fdd593SJeykumar Sankaran __entry->timeout_count = timeout_count; 59025fdd593SJeykumar Sankaran __entry->kickoff_count = kickoff_count; 59125fdd593SJeykumar Sankaran __entry->event = event; 59225fdd593SJeykumar Sankaran ), 59325fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, timeout_count=%d, kickoff_count=%d, event=%u", 59425fdd593SJeykumar Sankaran __entry->drm_id, __entry->pp, __entry->timeout_count, 59525fdd593SJeykumar Sankaran __entry->kickoff_count, __entry->event) 59625fdd593SJeykumar Sankaran ); 59725fdd593SJeykumar Sankaran 59825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_post_kickoff, 59925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx), 60025fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx), 60125fdd593SJeykumar Sankaran TP_STRUCT__entry( 60225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 60325fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 60425fdd593SJeykumar Sankaran ), 60525fdd593SJeykumar Sankaran TP_fast_assign( 60625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 60725fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 60825fdd593SJeykumar Sankaran ), 60925fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d", __entry->drm_id, __entry->intf_idx) 61025fdd593SJeykumar Sankaran ); 61125fdd593SJeykumar Sankaran 61225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_irq_ctrl, 61325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, bool enable, 61425fdd593SJeykumar Sankaran int refcnt), 61525fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, enable, refcnt), 61625fdd593SJeykumar Sankaran TP_STRUCT__entry( 61725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 61825fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 61925fdd593SJeykumar Sankaran __field( bool, enable ) 62025fdd593SJeykumar Sankaran __field( int, refcnt ) 62125fdd593SJeykumar Sankaran ), 62225fdd593SJeykumar Sankaran TP_fast_assign( 62325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 62425fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 62525fdd593SJeykumar Sankaran __entry->enable = enable; 62625fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 62725fdd593SJeykumar Sankaran ), 62825fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d enable=%s refcnt=%d", __entry->drm_id, 62925fdd593SJeykumar Sankaran __entry->intf_idx, __entry->enable ? "true" : "false", 63025fdd593SJeykumar Sankaran __entry->drm_id) 63125fdd593SJeykumar Sankaran ); 63225fdd593SJeykumar Sankaran 63325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_mixer, 63425fdd593SJeykumar Sankaran TP_PROTO(uint32_t crtc_id, uint32_t plane_id, 63525fdd593SJeykumar Sankaran struct drm_plane_state *state, struct dpu_plane_state *pstate, 636*3cfcd130SDmitry Baryshkov uint32_t stage_idx, uint32_t pixel_format, 63725fdd593SJeykumar Sankaran uint64_t modifier), 638*3cfcd130SDmitry Baryshkov TP_ARGS(crtc_id, plane_id, state, pstate, stage_idx, 63925fdd593SJeykumar Sankaran pixel_format, modifier), 64025fdd593SJeykumar Sankaran TP_STRUCT__entry( 64125fdd593SJeykumar Sankaran __field( uint32_t, crtc_id ) 64225fdd593SJeykumar Sankaran __field( uint32_t, plane_id ) 643f65f035fSSean Paul __field( uint32_t, fb_id ) 644f65f035fSSean Paul __field_struct( struct drm_rect, src_rect ) 645f65f035fSSean Paul __field_struct( struct drm_rect, dst_rect ) 64625fdd593SJeykumar Sankaran __field( uint32_t, stage_idx ) 647f65f035fSSean Paul __field( enum dpu_stage, stage ) 64825fdd593SJeykumar Sankaran __field( enum dpu_sspp, sspp ) 649f65f035fSSean Paul __field( uint32_t, multirect_idx ) 650f65f035fSSean Paul __field( uint32_t, multirect_mode ) 65125fdd593SJeykumar Sankaran __field( uint32_t, pixel_format ) 65225fdd593SJeykumar Sankaran __field( uint64_t, modifier ) 65325fdd593SJeykumar Sankaran ), 65425fdd593SJeykumar Sankaran TP_fast_assign( 65525fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 65625fdd593SJeykumar Sankaran __entry->plane_id = plane_id; 657f65f035fSSean Paul __entry->fb_id = state ? state->fb->base.id : 0; 658f65f035fSSean Paul __entry->src_rect = drm_plane_state_src(state); 659f65f035fSSean Paul __entry->dst_rect = drm_plane_state_dest(state); 66025fdd593SJeykumar Sankaran __entry->stage_idx = stage_idx; 661f65f035fSSean Paul __entry->stage = pstate->stage; 662*3cfcd130SDmitry Baryshkov __entry->sspp = pstate->pipe.sspp->idx; 663*3cfcd130SDmitry Baryshkov __entry->multirect_idx = pstate->pipe.multirect_index; 664*3cfcd130SDmitry Baryshkov __entry->multirect_mode = pstate->pipe.multirect_mode; 66525fdd593SJeykumar Sankaran __entry->pixel_format = pixel_format; 66625fdd593SJeykumar Sankaran __entry->modifier = modifier; 66725fdd593SJeykumar Sankaran ), 668f65f035fSSean Paul TP_printk("crtc_id:%u plane_id:%u fb_id:%u src:" DRM_RECT_FP_FMT 669f65f035fSSean Paul " dst:" DRM_RECT_FMT " stage_idx:%u stage:%d, sspp:%d " 67025fdd593SJeykumar Sankaran "multirect_index:%d multirect_mode:%u pix_format:%u " 67125fdd593SJeykumar Sankaran "modifier:%llu", 672f65f035fSSean Paul __entry->crtc_id, __entry->plane_id, __entry->fb_id, 673f65f035fSSean Paul DRM_RECT_FP_ARG(&__entry->src_rect), 674f65f035fSSean Paul DRM_RECT_ARG(&__entry->dst_rect), 675f65f035fSSean Paul __entry->stage_idx, __entry->stage, __entry->sspp, 676f65f035fSSean Paul __entry->multirect_idx, __entry->multirect_mode, 677f65f035fSSean Paul __entry->pixel_format, __entry->modifier) 67825fdd593SJeykumar Sankaran ); 67925fdd593SJeykumar Sankaran 68025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_lm_bounds, 68125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int mixer, struct drm_rect *bounds), 68225fdd593SJeykumar Sankaran TP_ARGS(drm_id, mixer, bounds), 68325fdd593SJeykumar Sankaran TP_STRUCT__entry( 68425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 68525fdd593SJeykumar Sankaran __field( int, mixer ) 686f65f035fSSean Paul __field_struct( struct drm_rect, bounds ) 68725fdd593SJeykumar Sankaran ), 68825fdd593SJeykumar Sankaran TP_fast_assign( 68925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 69025fdd593SJeykumar Sankaran __entry->mixer = mixer; 691f65f035fSSean Paul __entry->bounds = *bounds; 69225fdd593SJeykumar Sankaran ), 69325fdd593SJeykumar Sankaran TP_printk("id:%u mixer:%d bounds:" DRM_RECT_FMT, __entry->drm_id, 694f65f035fSSean Paul __entry->mixer, DRM_RECT_ARG(&__entry->bounds)) 69525fdd593SJeykumar Sankaran ); 69625fdd593SJeykumar Sankaran 69725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_vblank_enable, 69825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, uint32_t enc_id, bool enable, 69925fdd593SJeykumar Sankaran struct dpu_crtc *crtc), 70025fdd593SJeykumar Sankaran TP_ARGS(drm_id, enc_id, enable, crtc), 70125fdd593SJeykumar Sankaran TP_STRUCT__entry( 70225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 70325fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 70425fdd593SJeykumar Sankaran __field( bool, enable ) 705f65f035fSSean Paul __field( bool, enabled ) 70625fdd593SJeykumar Sankaran ), 70725fdd593SJeykumar Sankaran TP_fast_assign( 70825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 70925fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 71025fdd593SJeykumar Sankaran __entry->enable = enable; 711f65f035fSSean Paul __entry->enabled = crtc->enabled; 71225fdd593SJeykumar Sankaran ), 7133e46c5dfSSean Paul TP_printk("id:%u encoder:%u enable:%s state{enabled:%s}", 71425fdd593SJeykumar Sankaran __entry->drm_id, __entry->enc_id, 71525fdd593SJeykumar Sankaran __entry->enable ? "true" : "false", 7163e46c5dfSSean Paul __entry->enabled ? "true" : "false") 71725fdd593SJeykumar Sankaran ); 71825fdd593SJeykumar Sankaran 71925fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_crtc_enable_template, 72025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 72125fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc), 72225fdd593SJeykumar Sankaran TP_STRUCT__entry( 72325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 72425fdd593SJeykumar Sankaran __field( bool, enable ) 725f65f035fSSean Paul __field( bool, enabled ) 72625fdd593SJeykumar Sankaran ), 72725fdd593SJeykumar Sankaran TP_fast_assign( 72825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 72925fdd593SJeykumar Sankaran __entry->enable = enable; 730f65f035fSSean Paul __entry->enabled = crtc->enabled; 73125fdd593SJeykumar Sankaran ), 7323e46c5dfSSean Paul TP_printk("id:%u enable:%s state{enabled:%s}", 73325fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false", 7343e46c5dfSSean Paul __entry->enabled ? "true" : "false") 73525fdd593SJeykumar Sankaran ); 73625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_enable, 73725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 73825fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 73925fdd593SJeykumar Sankaran ); 74025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_disable, 74125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 74225fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 74325fdd593SJeykumar Sankaran ); 74425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_vblank, 74525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 74625fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 74725fdd593SJeykumar Sankaran ); 74825fdd593SJeykumar Sankaran 74925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_disable_frame_pending, 75025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int frame_pending), 75125fdd593SJeykumar Sankaran TP_ARGS(drm_id, frame_pending), 75225fdd593SJeykumar Sankaran TP_STRUCT__entry( 75325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 75425fdd593SJeykumar Sankaran __field( int, frame_pending ) 75525fdd593SJeykumar Sankaran ), 75625fdd593SJeykumar Sankaran TP_fast_assign( 75725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 75825fdd593SJeykumar Sankaran __entry->frame_pending = frame_pending; 75925fdd593SJeykumar Sankaran ), 76025fdd593SJeykumar Sankaran TP_printk("id:%u frame_pending:%d", __entry->drm_id, 76125fdd593SJeykumar Sankaran __entry->frame_pending) 76225fdd593SJeykumar Sankaran ); 76325fdd593SJeykumar Sankaran 76425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_set_scanout, 76525fdd593SJeykumar Sankaran TP_PROTO(enum dpu_sspp index, struct dpu_hw_fmt_layout *layout, 76625fdd593SJeykumar Sankaran enum dpu_sspp_multirect_index multirect_index), 76725fdd593SJeykumar Sankaran TP_ARGS(index, layout, multirect_index), 76825fdd593SJeykumar Sankaran TP_STRUCT__entry( 76925fdd593SJeykumar Sankaran __field( enum dpu_sspp, index ) 770f65f035fSSean Paul __field_struct( struct dpu_hw_fmt_layout, layout ) 77125fdd593SJeykumar Sankaran __field( enum dpu_sspp_multirect_index, multirect_index) 77225fdd593SJeykumar Sankaran ), 77325fdd593SJeykumar Sankaran TP_fast_assign( 77425fdd593SJeykumar Sankaran __entry->index = index; 775f65f035fSSean Paul __entry->layout = *layout; 77625fdd593SJeykumar Sankaran __entry->multirect_index = multirect_index; 77725fdd593SJeykumar Sankaran ), 77825fdd593SJeykumar Sankaran TP_printk("index:%d layout:{%ux%u @ [%u/%u, %u/%u, %u/%u, %u/%u]} " 779f65f035fSSean Paul "multirect_index:%d", __entry->index, __entry->layout.width, 780f65f035fSSean Paul __entry->layout.height, __entry->layout.plane_addr[0], 781f65f035fSSean Paul __entry->layout.plane_size[0], 782f65f035fSSean Paul __entry->layout.plane_addr[1], 783f65f035fSSean Paul __entry->layout.plane_size[1], 784f65f035fSSean Paul __entry->layout.plane_addr[2], 785f65f035fSSean Paul __entry->layout.plane_size[2], 786f65f035fSSean Paul __entry->layout.plane_addr[3], 787f65f035fSSean Paul __entry->layout.plane_size[3], __entry->multirect_index) 78825fdd593SJeykumar Sankaran ); 78925fdd593SJeykumar Sankaran 79025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_disable, 79125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool is_virtual, uint32_t multirect_mode), 79225fdd593SJeykumar Sankaran TP_ARGS(drm_id, is_virtual, multirect_mode), 79325fdd593SJeykumar Sankaran TP_STRUCT__entry( 79425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 79525fdd593SJeykumar Sankaran __field( bool, is_virtual ) 79625fdd593SJeykumar Sankaran __field( uint32_t, multirect_mode ) 79725fdd593SJeykumar Sankaran ), 79825fdd593SJeykumar Sankaran TP_fast_assign( 79925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 80025fdd593SJeykumar Sankaran __entry->is_virtual = is_virtual; 80125fdd593SJeykumar Sankaran __entry->multirect_mode = multirect_mode; 80225fdd593SJeykumar Sankaran ), 80325fdd593SJeykumar Sankaran TP_printk("id:%u is_virtual:%s multirect_mode:%u", __entry->drm_id, 80425fdd593SJeykumar Sankaran __entry->is_virtual ? "true" : "false", 80525fdd593SJeykumar Sankaran __entry->multirect_mode) 80625fdd593SJeykumar Sankaran ); 80725fdd593SJeykumar Sankaran 80825fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_rm_iter_template, 8091a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8101a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id), 81125fdd593SJeykumar Sankaran TP_STRUCT__entry( 81225fdd593SJeykumar Sankaran __field( uint32_t, id ) 81325fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 81425fdd593SJeykumar Sankaran ), 81525fdd593SJeykumar Sankaran TP_fast_assign( 81625fdd593SJeykumar Sankaran __entry->id = id; 81725fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 81825fdd593SJeykumar Sankaran ), 8191a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u", __entry->id, __entry->enc_id) 82025fdd593SJeykumar Sankaran ); 82125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, 8221a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8231a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 82425fdd593SJeykumar Sankaran ); 82525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, 8261a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8271a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 82825fdd593SJeykumar Sankaran ); 82925fdd593SJeykumar Sankaran 83025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_rm_reserve_lms, 8311a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id, uint32_t pp_id), 8321a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id, pp_id), 83325fdd593SJeykumar Sankaran TP_STRUCT__entry( 83425fdd593SJeykumar Sankaran __field( uint32_t, id ) 83525fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 83625fdd593SJeykumar Sankaran __field( uint32_t, pp_id ) 83725fdd593SJeykumar Sankaran ), 83825fdd593SJeykumar Sankaran TP_fast_assign( 83925fdd593SJeykumar Sankaran __entry->id = id; 84025fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 84125fdd593SJeykumar Sankaran __entry->pp_id = pp_id; 84225fdd593SJeykumar Sankaran ), 8431a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u pp_id:%u", __entry->id, 8441a5e1778SJeykumar Sankaran __entry->enc_id, __entry->pp_id) 84525fdd593SJeykumar Sankaran ); 84625fdd593SJeykumar Sankaran 84725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_vbif_wait_xin_halt_fail, 84825fdd593SJeykumar Sankaran TP_PROTO(enum dpu_vbif index, u32 xin_id), 84925fdd593SJeykumar Sankaran TP_ARGS(index, xin_id), 85025fdd593SJeykumar Sankaran TP_STRUCT__entry( 85125fdd593SJeykumar Sankaran __field( enum dpu_vbif, index ) 85225fdd593SJeykumar Sankaran __field( u32, xin_id ) 85325fdd593SJeykumar Sankaran ), 85425fdd593SJeykumar Sankaran TP_fast_assign( 85525fdd593SJeykumar Sankaran __entry->index = index; 85625fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 85725fdd593SJeykumar Sankaran ), 85825fdd593SJeykumar Sankaran TP_printk("index:%d xin_id:%u", __entry->index, __entry->xin_id) 85925fdd593SJeykumar Sankaran ); 86025fdd593SJeykumar Sankaran 86125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_pp_connect_ext_te, 86225fdd593SJeykumar Sankaran TP_PROTO(enum dpu_pingpong pp, u32 cfg), 86325fdd593SJeykumar Sankaran TP_ARGS(pp, cfg), 86425fdd593SJeykumar Sankaran TP_STRUCT__entry( 86525fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 86625fdd593SJeykumar Sankaran __field( u32, cfg ) 86725fdd593SJeykumar Sankaran ), 86825fdd593SJeykumar Sankaran TP_fast_assign( 86925fdd593SJeykumar Sankaran __entry->pp = pp; 87025fdd593SJeykumar Sankaran __entry->cfg = cfg; 87125fdd593SJeykumar Sankaran ), 87225fdd593SJeykumar Sankaran TP_printk("pp:%d cfg:%u", __entry->pp, __entry->cfg) 87325fdd593SJeykumar Sankaran ); 87425fdd593SJeykumar Sankaran 875c929ac60SDmitry Baryshkov TRACE_EVENT(dpu_core_irq_register_callback, 876c929ac60SDmitry Baryshkov TP_PROTO(int irq_idx, void *callback), 87725fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback), 87825fdd593SJeykumar Sankaran TP_STRUCT__entry( 87925fdd593SJeykumar Sankaran __field( int, irq_idx ) 880c929ac60SDmitry Baryshkov __field( void *, callback) 88125fdd593SJeykumar Sankaran ), 88225fdd593SJeykumar Sankaran TP_fast_assign( 88325fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 88425fdd593SJeykumar Sankaran __entry->callback = callback; 88525fdd593SJeykumar Sankaran ), 886c929ac60SDmitry Baryshkov TP_printk("irq_idx:%d callback:%ps", __entry->irq_idx, 88725fdd593SJeykumar Sankaran __entry->callback) 88825fdd593SJeykumar Sankaran ); 889c929ac60SDmitry Baryshkov 890c929ac60SDmitry Baryshkov TRACE_EVENT(dpu_core_irq_unregister_callback, 891c929ac60SDmitry Baryshkov TP_PROTO(int irq_idx), 892c929ac60SDmitry Baryshkov TP_ARGS(irq_idx), 893c929ac60SDmitry Baryshkov TP_STRUCT__entry( 894c929ac60SDmitry Baryshkov __field( int, irq_idx ) 895c929ac60SDmitry Baryshkov ), 896c929ac60SDmitry Baryshkov TP_fast_assign( 897c929ac60SDmitry Baryshkov __entry->irq_idx = irq_idx; 898c929ac60SDmitry Baryshkov ), 899c929ac60SDmitry Baryshkov TP_printk("irq_idx:%d", __entry->irq_idx) 90025fdd593SJeykumar Sankaran ); 90125fdd593SJeykumar Sankaran 90225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_core_perf_update_clk, 90325fdd593SJeykumar Sankaran TP_PROTO(struct drm_device *dev, bool stop_req, u64 clk_rate), 90425fdd593SJeykumar Sankaran TP_ARGS(dev, stop_req, clk_rate), 90525fdd593SJeykumar Sankaran TP_STRUCT__entry( 906f65f035fSSean Paul __string( dev_name, dev->unique ) 90725fdd593SJeykumar Sankaran __field( bool, stop_req ) 90825fdd593SJeykumar Sankaran __field( u64, clk_rate ) 90925fdd593SJeykumar Sankaran ), 91025fdd593SJeykumar Sankaran TP_fast_assign( 911f65f035fSSean Paul __assign_str(dev_name, dev->unique); 91225fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 91325fdd593SJeykumar Sankaran __entry->clk_rate = clk_rate; 91425fdd593SJeykumar Sankaran ), 915f65f035fSSean Paul TP_printk("dev:%s stop_req:%s clk_rate:%llu", __get_str(dev_name), 91625fdd593SJeykumar Sankaran __entry->stop_req ? "true" : "false", __entry->clk_rate) 91725fdd593SJeykumar Sankaran ); 91825fdd593SJeykumar Sankaran 919812eeeb6SSean Paul TRACE_EVENT(dpu_hw_ctl_update_pending_flush, 920812eeeb6SSean Paul TP_PROTO(u32 new_bits, u32 pending_mask), 921812eeeb6SSean Paul TP_ARGS(new_bits, pending_mask), 922812eeeb6SSean Paul TP_STRUCT__entry( 923812eeeb6SSean Paul __field( u32, new_bits ) 924812eeeb6SSean Paul __field( u32, pending_mask ) 925812eeeb6SSean Paul ), 926812eeeb6SSean Paul TP_fast_assign( 927812eeeb6SSean Paul __entry->new_bits = new_bits; 928812eeeb6SSean Paul __entry->pending_mask = pending_mask; 929812eeeb6SSean Paul ), 930812eeeb6SSean Paul TP_printk("new=%x existing=%x", __entry->new_bits, 931812eeeb6SSean Paul __entry->pending_mask) 932812eeeb6SSean Paul ); 933812eeeb6SSean Paul 934812eeeb6SSean Paul DECLARE_EVENT_CLASS(dpu_hw_ctl_pending_flush_template, 935812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 936812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush), 937812eeeb6SSean Paul TP_STRUCT__entry( 938812eeeb6SSean Paul __field( u32, pending_mask ) 939812eeeb6SSean Paul __field( u32, ctl_flush ) 940812eeeb6SSean Paul ), 941812eeeb6SSean Paul TP_fast_assign( 942812eeeb6SSean Paul __entry->pending_mask = pending_mask; 943812eeeb6SSean Paul __entry->ctl_flush = ctl_flush; 944812eeeb6SSean Paul ), 945812eeeb6SSean Paul TP_printk("pending_mask=%x CTL_FLUSH=%x", __entry->pending_mask, 946812eeeb6SSean Paul __entry->ctl_flush) 947812eeeb6SSean Paul ); 948812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_clear_pending_flush, 949812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 950812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 951812eeeb6SSean Paul ); 952812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, 953812eeeb6SSean Paul dpu_hw_ctl_trigger_pending_flush, 954812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 955812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 956812eeeb6SSean Paul ); 957812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_prepare, 958812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 959812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 960812eeeb6SSean Paul ); 961812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_start, 962812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 963812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 964812eeeb6SSean Paul ); 965812eeeb6SSean Paul 96625fdd593SJeykumar Sankaran #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) 96725fdd593SJeykumar Sankaran #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) 96825fdd593SJeykumar Sankaran #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__) 96925fdd593SJeykumar Sankaran 97025fdd593SJeykumar Sankaran #define DPU_ATRACE_INT(name, value) \ 97125fdd593SJeykumar Sankaran trace_dpu_trace_counter(current->tgid, name, value) 97225fdd593SJeykumar Sankaran 97325fdd593SJeykumar Sankaran #endif /* _DPU_TRACE_H_ */ 97425fdd593SJeykumar Sankaran 97525fdd593SJeykumar Sankaran /* This part must be outside protection */ 97625fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_PATH 97725fdd593SJeykumar Sankaran #define TRACE_INCLUDE_PATH . 97825fdd593SJeykumar Sankaran #include <trace/define_trace.h> 979