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, 191*1e7ac595SDmitry Baryshkov TP_PROTO(uint32_t drm_id, void *func, 19225fdd593SJeykumar Sankaran int irq_idx, enum dpu_pingpong pp_idx, int atomic_cnt), 193*1e7ac595SDmitry Baryshkov TP_ARGS(drm_id, func, irq_idx, pp_idx, atomic_cnt), 19425fdd593SJeykumar Sankaran TP_STRUCT__entry( 19525fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 196*1e7ac595SDmitry 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; 203*1e7ac595SDmitry 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 ), 208*1e7ac595SDmitry Baryshkov TP_printk("id=%u, callback=%ps, irq=%d, pp=%d, atomic_cnt=%d", 209*1e7ac595SDmitry 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, 38325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event, enum dpu_intf intf_idx), 38425fdd593SJeykumar Sankaran TP_ARGS(drm_id, event, intf_idx), 38525fdd593SJeykumar Sankaran TP_STRUCT__entry( 38625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 38725fdd593SJeykumar Sankaran __field( u32, event ) 38825fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 38925fdd593SJeykumar Sankaran ), 39025fdd593SJeykumar Sankaran TP_fast_assign( 39125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 39225fdd593SJeykumar Sankaran __entry->event = event; 39325fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 39425fdd593SJeykumar Sankaran ), 39525fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u, intf=%d", __entry->drm_id, __entry->event, 39625fdd593SJeykumar Sankaran __entry->intf_idx) 39725fdd593SJeykumar Sankaran ); 39825fdd593SJeykumar Sankaran 39925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb, 40025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int idx, 40125fdd593SJeykumar Sankaran unsigned long frame_busy_mask), 40225fdd593SJeykumar Sankaran TP_ARGS(drm_id, idx, frame_busy_mask), 40325fdd593SJeykumar Sankaran TP_STRUCT__entry( 40425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 40525fdd593SJeykumar Sankaran __field( unsigned int, idx ) 40625fdd593SJeykumar Sankaran __field( unsigned long, frame_busy_mask ) 40725fdd593SJeykumar Sankaran ), 40825fdd593SJeykumar Sankaran TP_fast_assign( 40925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 41025fdd593SJeykumar Sankaran __entry->idx = idx; 41125fdd593SJeykumar Sankaran __entry->frame_busy_mask = frame_busy_mask; 41225fdd593SJeykumar Sankaran ), 41325fdd593SJeykumar Sankaran TP_printk("id=%u, idx=%u, frame_busy_mask=%lx", __entry->drm_id, 41425fdd593SJeykumar Sankaran __entry->idx, __entry->frame_busy_mask) 41525fdd593SJeykumar Sankaran ); 41625fdd593SJeykumar Sankaran 41725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_trigger_flush, 41825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, 4191bb4e701SSean Paul int pending_kickoff_cnt, int ctl_idx, u32 extra_flush_bits, 4201bb4e701SSean Paul u32 pending_flush_ret), 42125fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, pending_kickoff_cnt, ctl_idx, 4221bb4e701SSean Paul extra_flush_bits, pending_flush_ret), 42325fdd593SJeykumar Sankaran TP_STRUCT__entry( 42425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 42525fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 42625fdd593SJeykumar Sankaran __field( int, pending_kickoff_cnt ) 42725fdd593SJeykumar Sankaran __field( int, ctl_idx ) 4281bb4e701SSean Paul __field( u32, extra_flush_bits ) 42925fdd593SJeykumar Sankaran __field( u32, pending_flush_ret ) 43025fdd593SJeykumar Sankaran ), 43125fdd593SJeykumar Sankaran TP_fast_assign( 43225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 43325fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 43425fdd593SJeykumar Sankaran __entry->pending_kickoff_cnt = pending_kickoff_cnt; 43525fdd593SJeykumar Sankaran __entry->ctl_idx = ctl_idx; 4361bb4e701SSean Paul __entry->extra_flush_bits = extra_flush_bits; 43725fdd593SJeykumar Sankaran __entry->pending_flush_ret = pending_flush_ret; 43825fdd593SJeykumar Sankaran ), 43925fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d " 4401bb4e701SSean Paul "extra_flush_bits=0x%x pending_flush_ret=0x%x", 4411bb4e701SSean Paul __entry->drm_id, __entry->intf_idx, 4421bb4e701SSean Paul __entry->pending_kickoff_cnt, __entry->ctl_idx, 4431bb4e701SSean Paul __entry->extra_flush_bits, __entry->pending_flush_ret) 44425fdd593SJeykumar Sankaran ); 44525fdd593SJeykumar Sankaran 44625fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_ktime_template, 44725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 44825fdd593SJeykumar Sankaran TP_ARGS(drm_id, time), 44925fdd593SJeykumar Sankaran TP_STRUCT__entry( 45025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 45125fdd593SJeykumar Sankaran __field( ktime_t, time ) 45225fdd593SJeykumar Sankaran ), 45325fdd593SJeykumar Sankaran TP_fast_assign( 45425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 45525fdd593SJeykumar Sankaran __entry->time = time; 45625fdd593SJeykumar Sankaran ), 45725fdd593SJeykumar Sankaran TP_printk("id=%u, time=%lld", __entry->drm_id, 45825fdd593SJeykumar Sankaran ktime_to_ms(__entry->time)) 45925fdd593SJeykumar Sankaran ); 46025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_vsync_event_work, 46125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 46225fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 46325fdd593SJeykumar Sankaran ); 46425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_early_kickoff, 46525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 46625fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 46725fdd593SJeykumar Sankaran ); 46825fdd593SJeykumar Sankaran 46925fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_id_event_template, 47025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 47125fdd593SJeykumar Sankaran TP_ARGS(drm_id, event), 47225fdd593SJeykumar Sankaran TP_STRUCT__entry( 47325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 47425fdd593SJeykumar Sankaran __field( u32, event ) 47525fdd593SJeykumar Sankaran ), 47625fdd593SJeykumar Sankaran TP_fast_assign( 47725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 47825fdd593SJeykumar Sankaran __entry->event = event; 47925fdd593SJeykumar Sankaran ), 48025fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u", __entry->drm_id, __entry->event) 48125fdd593SJeykumar Sankaran ); 48225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_enc_frame_done_timeout, 48325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 48425fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 48525fdd593SJeykumar Sankaran ); 48625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_cb, 48725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 48825fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 48925fdd593SJeykumar Sankaran ); 49025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_done, 49125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 49225fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 49325fdd593SJeykumar Sankaran ); 49425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_more_pending, 49525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 49625fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 49725fdd593SJeykumar Sankaran ); 49825fdd593SJeykumar Sankaran 49925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_wait_event_timeout, 500667e9985SDmitry Baryshkov TP_PROTO(uint32_t drm_id, int irq_idx, int rc, s64 time, 50125fdd593SJeykumar Sankaran s64 expected_time, int atomic_cnt), 502667e9985SDmitry Baryshkov TP_ARGS(drm_id, irq_idx, rc, time, expected_time, atomic_cnt), 50325fdd593SJeykumar Sankaran TP_STRUCT__entry( 50425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 505667e9985SDmitry Baryshkov __field( int, irq_idx ) 50625fdd593SJeykumar Sankaran __field( int, rc ) 50725fdd593SJeykumar Sankaran __field( s64, time ) 50825fdd593SJeykumar Sankaran __field( s64, expected_time ) 50925fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 51025fdd593SJeykumar Sankaran ), 51125fdd593SJeykumar Sankaran TP_fast_assign( 51225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 513667e9985SDmitry Baryshkov __entry->irq_idx = irq_idx; 51425fdd593SJeykumar Sankaran __entry->rc = rc; 51525fdd593SJeykumar Sankaran __entry->time = time; 51625fdd593SJeykumar Sankaran __entry->expected_time = expected_time; 51725fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 51825fdd593SJeykumar Sankaran ), 519667e9985SDmitry Baryshkov TP_printk("id=%u, irq_idx=%d, rc=%d, time=%lld, expected=%lld cnt=%d", 520667e9985SDmitry Baryshkov __entry->drm_id, __entry->irq_idx, __entry->rc, __entry->time, 52125fdd593SJeykumar Sankaran __entry->expected_time, __entry->atomic_cnt) 52225fdd593SJeykumar Sankaran ); 52325fdd593SJeykumar Sankaran 52425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_irq_ctrl, 52525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, bool enable, 52625fdd593SJeykumar Sankaran int refcnt), 52725fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, enable, refcnt), 52825fdd593SJeykumar Sankaran TP_STRUCT__entry( 52925fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 53025fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 53125fdd593SJeykumar Sankaran __field( bool, enable ) 53225fdd593SJeykumar Sankaran __field( int, refcnt ) 53325fdd593SJeykumar Sankaran ), 53425fdd593SJeykumar Sankaran TP_fast_assign( 53525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 53625fdd593SJeykumar Sankaran __entry->pp = pp; 53725fdd593SJeykumar Sankaran __entry->enable = enable; 53825fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 53925fdd593SJeykumar Sankaran ), 54025fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, enable=%s, refcnt=%d", __entry->drm_id, 54125fdd593SJeykumar Sankaran __entry->pp, __entry->enable ? "true" : "false", 54225fdd593SJeykumar Sankaran __entry->refcnt) 54325fdd593SJeykumar Sankaran ); 54425fdd593SJeykumar Sankaran 54525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pp_tx_done, 54625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int new_count, 54725fdd593SJeykumar Sankaran u32 event), 54825fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, new_count, event), 54925fdd593SJeykumar Sankaran TP_STRUCT__entry( 55025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 55125fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 55225fdd593SJeykumar Sankaran __field( int, new_count ) 55325fdd593SJeykumar Sankaran __field( u32, event ) 55425fdd593SJeykumar Sankaran ), 55525fdd593SJeykumar Sankaran TP_fast_assign( 55625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 55725fdd593SJeykumar Sankaran __entry->pp = pp; 55825fdd593SJeykumar Sankaran __entry->new_count = new_count; 55925fdd593SJeykumar Sankaran __entry->event = event; 56025fdd593SJeykumar Sankaran ), 56125fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, new_count=%d, event=%u", __entry->drm_id, 56225fdd593SJeykumar Sankaran __entry->pp, __entry->new_count, __entry->event) 56325fdd593SJeykumar Sankaran ); 56425fdd593SJeykumar Sankaran 56525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pdone_timeout, 56625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int timeout_count, 56725fdd593SJeykumar Sankaran int kickoff_count, u32 event), 56825fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, timeout_count, kickoff_count, event), 56925fdd593SJeykumar Sankaran TP_STRUCT__entry( 57025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 57125fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 57225fdd593SJeykumar Sankaran __field( int, timeout_count ) 57325fdd593SJeykumar Sankaran __field( int, kickoff_count ) 57425fdd593SJeykumar Sankaran __field( u32, event ) 57525fdd593SJeykumar Sankaran ), 57625fdd593SJeykumar Sankaran TP_fast_assign( 57725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 57825fdd593SJeykumar Sankaran __entry->pp = pp; 57925fdd593SJeykumar Sankaran __entry->timeout_count = timeout_count; 58025fdd593SJeykumar Sankaran __entry->kickoff_count = kickoff_count; 58125fdd593SJeykumar Sankaran __entry->event = event; 58225fdd593SJeykumar Sankaran ), 58325fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, timeout_count=%d, kickoff_count=%d, event=%u", 58425fdd593SJeykumar Sankaran __entry->drm_id, __entry->pp, __entry->timeout_count, 58525fdd593SJeykumar Sankaran __entry->kickoff_count, __entry->event) 58625fdd593SJeykumar Sankaran ); 58725fdd593SJeykumar Sankaran 58825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_post_kickoff, 58925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx), 59025fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx), 59125fdd593SJeykumar Sankaran TP_STRUCT__entry( 59225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 59325fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 59425fdd593SJeykumar Sankaran ), 59525fdd593SJeykumar Sankaran TP_fast_assign( 59625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 59725fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 59825fdd593SJeykumar Sankaran ), 59925fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d", __entry->drm_id, __entry->intf_idx) 60025fdd593SJeykumar Sankaran ); 60125fdd593SJeykumar Sankaran 60225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_irq_ctrl, 60325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, bool enable, 60425fdd593SJeykumar Sankaran int refcnt), 60525fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, enable, refcnt), 60625fdd593SJeykumar Sankaran TP_STRUCT__entry( 60725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 60825fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 60925fdd593SJeykumar Sankaran __field( bool, enable ) 61025fdd593SJeykumar Sankaran __field( int, refcnt ) 61125fdd593SJeykumar Sankaran ), 61225fdd593SJeykumar Sankaran TP_fast_assign( 61325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 61425fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 61525fdd593SJeykumar Sankaran __entry->enable = enable; 61625fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 61725fdd593SJeykumar Sankaran ), 61825fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d enable=%s refcnt=%d", __entry->drm_id, 61925fdd593SJeykumar Sankaran __entry->intf_idx, __entry->enable ? "true" : "false", 62025fdd593SJeykumar Sankaran __entry->drm_id) 62125fdd593SJeykumar Sankaran ); 62225fdd593SJeykumar Sankaran 62325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_mixer, 62425fdd593SJeykumar Sankaran TP_PROTO(uint32_t crtc_id, uint32_t plane_id, 62525fdd593SJeykumar Sankaran struct drm_plane_state *state, struct dpu_plane_state *pstate, 62625fdd593SJeykumar Sankaran uint32_t stage_idx, enum dpu_sspp sspp, uint32_t pixel_format, 62725fdd593SJeykumar Sankaran uint64_t modifier), 62825fdd593SJeykumar Sankaran TP_ARGS(crtc_id, plane_id, state, pstate, stage_idx, sspp, 62925fdd593SJeykumar Sankaran pixel_format, modifier), 63025fdd593SJeykumar Sankaran TP_STRUCT__entry( 63125fdd593SJeykumar Sankaran __field( uint32_t, crtc_id ) 63225fdd593SJeykumar Sankaran __field( uint32_t, plane_id ) 633f65f035fSSean Paul __field( uint32_t, fb_id ) 634f65f035fSSean Paul __field_struct( struct drm_rect, src_rect ) 635f65f035fSSean Paul __field_struct( struct drm_rect, dst_rect ) 63625fdd593SJeykumar Sankaran __field( uint32_t, stage_idx ) 637f65f035fSSean Paul __field( enum dpu_stage, stage ) 63825fdd593SJeykumar Sankaran __field( enum dpu_sspp, sspp ) 639f65f035fSSean Paul __field( uint32_t, multirect_idx ) 640f65f035fSSean Paul __field( uint32_t, multirect_mode ) 64125fdd593SJeykumar Sankaran __field( uint32_t, pixel_format ) 64225fdd593SJeykumar Sankaran __field( uint64_t, modifier ) 64325fdd593SJeykumar Sankaran ), 64425fdd593SJeykumar Sankaran TP_fast_assign( 64525fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 64625fdd593SJeykumar Sankaran __entry->plane_id = plane_id; 647f65f035fSSean Paul __entry->fb_id = state ? state->fb->base.id : 0; 648f65f035fSSean Paul __entry->src_rect = drm_plane_state_src(state); 649f65f035fSSean Paul __entry->dst_rect = drm_plane_state_dest(state); 65025fdd593SJeykumar Sankaran __entry->stage_idx = stage_idx; 651f65f035fSSean Paul __entry->stage = pstate->stage; 65225fdd593SJeykumar Sankaran __entry->sspp = sspp; 653f65f035fSSean Paul __entry->multirect_idx = pstate->multirect_index; 654f65f035fSSean Paul __entry->multirect_mode = pstate->multirect_mode; 65525fdd593SJeykumar Sankaran __entry->pixel_format = pixel_format; 65625fdd593SJeykumar Sankaran __entry->modifier = modifier; 65725fdd593SJeykumar Sankaran ), 658f65f035fSSean Paul TP_printk("crtc_id:%u plane_id:%u fb_id:%u src:" DRM_RECT_FP_FMT 659f65f035fSSean Paul " dst:" DRM_RECT_FMT " stage_idx:%u stage:%d, sspp:%d " 66025fdd593SJeykumar Sankaran "multirect_index:%d multirect_mode:%u pix_format:%u " 66125fdd593SJeykumar Sankaran "modifier:%llu", 662f65f035fSSean Paul __entry->crtc_id, __entry->plane_id, __entry->fb_id, 663f65f035fSSean Paul DRM_RECT_FP_ARG(&__entry->src_rect), 664f65f035fSSean Paul DRM_RECT_ARG(&__entry->dst_rect), 665f65f035fSSean Paul __entry->stage_idx, __entry->stage, __entry->sspp, 666f65f035fSSean Paul __entry->multirect_idx, __entry->multirect_mode, 667f65f035fSSean Paul __entry->pixel_format, __entry->modifier) 66825fdd593SJeykumar Sankaran ); 66925fdd593SJeykumar Sankaran 67025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_lm_bounds, 67125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int mixer, struct drm_rect *bounds), 67225fdd593SJeykumar Sankaran TP_ARGS(drm_id, mixer, bounds), 67325fdd593SJeykumar Sankaran TP_STRUCT__entry( 67425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 67525fdd593SJeykumar Sankaran __field( int, mixer ) 676f65f035fSSean Paul __field_struct( struct drm_rect, bounds ) 67725fdd593SJeykumar Sankaran ), 67825fdd593SJeykumar Sankaran TP_fast_assign( 67925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 68025fdd593SJeykumar Sankaran __entry->mixer = mixer; 681f65f035fSSean Paul __entry->bounds = *bounds; 68225fdd593SJeykumar Sankaran ), 68325fdd593SJeykumar Sankaran TP_printk("id:%u mixer:%d bounds:" DRM_RECT_FMT, __entry->drm_id, 684f65f035fSSean Paul __entry->mixer, DRM_RECT_ARG(&__entry->bounds)) 68525fdd593SJeykumar Sankaran ); 68625fdd593SJeykumar Sankaran 68725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_vblank_enable, 68825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, uint32_t enc_id, bool enable, 68925fdd593SJeykumar Sankaran struct dpu_crtc *crtc), 69025fdd593SJeykumar Sankaran TP_ARGS(drm_id, enc_id, enable, crtc), 69125fdd593SJeykumar Sankaran TP_STRUCT__entry( 69225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 69325fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 69425fdd593SJeykumar Sankaran __field( bool, enable ) 695f65f035fSSean Paul __field( bool, enabled ) 69625fdd593SJeykumar Sankaran ), 69725fdd593SJeykumar Sankaran TP_fast_assign( 69825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 69925fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 70025fdd593SJeykumar Sankaran __entry->enable = enable; 701f65f035fSSean Paul __entry->enabled = crtc->enabled; 70225fdd593SJeykumar Sankaran ), 7033e46c5dfSSean Paul TP_printk("id:%u encoder:%u enable:%s state{enabled:%s}", 70425fdd593SJeykumar Sankaran __entry->drm_id, __entry->enc_id, 70525fdd593SJeykumar Sankaran __entry->enable ? "true" : "false", 7063e46c5dfSSean Paul __entry->enabled ? "true" : "false") 70725fdd593SJeykumar Sankaran ); 70825fdd593SJeykumar Sankaran 70925fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_crtc_enable_template, 71025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 71125fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc), 71225fdd593SJeykumar Sankaran TP_STRUCT__entry( 71325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 71425fdd593SJeykumar Sankaran __field( bool, enable ) 715f65f035fSSean Paul __field( bool, enabled ) 71625fdd593SJeykumar Sankaran ), 71725fdd593SJeykumar Sankaran TP_fast_assign( 71825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 71925fdd593SJeykumar Sankaran __entry->enable = enable; 720f65f035fSSean Paul __entry->enabled = crtc->enabled; 72125fdd593SJeykumar Sankaran ), 7223e46c5dfSSean Paul TP_printk("id:%u enable:%s state{enabled:%s}", 72325fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false", 7243e46c5dfSSean Paul __entry->enabled ? "true" : "false") 72525fdd593SJeykumar Sankaran ); 72625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_enable, 72725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 72825fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 72925fdd593SJeykumar Sankaran ); 73025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_disable, 73125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 73225fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 73325fdd593SJeykumar Sankaran ); 73425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_vblank, 73525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 73625fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 73725fdd593SJeykumar Sankaran ); 73825fdd593SJeykumar Sankaran 73925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_disable_frame_pending, 74025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int frame_pending), 74125fdd593SJeykumar Sankaran TP_ARGS(drm_id, frame_pending), 74225fdd593SJeykumar Sankaran TP_STRUCT__entry( 74325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 74425fdd593SJeykumar Sankaran __field( int, frame_pending ) 74525fdd593SJeykumar Sankaran ), 74625fdd593SJeykumar Sankaran TP_fast_assign( 74725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 74825fdd593SJeykumar Sankaran __entry->frame_pending = frame_pending; 74925fdd593SJeykumar Sankaran ), 75025fdd593SJeykumar Sankaran TP_printk("id:%u frame_pending:%d", __entry->drm_id, 75125fdd593SJeykumar Sankaran __entry->frame_pending) 75225fdd593SJeykumar Sankaran ); 75325fdd593SJeykumar Sankaran 75425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_set_scanout, 75525fdd593SJeykumar Sankaran TP_PROTO(enum dpu_sspp index, struct dpu_hw_fmt_layout *layout, 75625fdd593SJeykumar Sankaran enum dpu_sspp_multirect_index multirect_index), 75725fdd593SJeykumar Sankaran TP_ARGS(index, layout, multirect_index), 75825fdd593SJeykumar Sankaran TP_STRUCT__entry( 75925fdd593SJeykumar Sankaran __field( enum dpu_sspp, index ) 760f65f035fSSean Paul __field_struct( struct dpu_hw_fmt_layout, layout ) 76125fdd593SJeykumar Sankaran __field( enum dpu_sspp_multirect_index, multirect_index) 76225fdd593SJeykumar Sankaran ), 76325fdd593SJeykumar Sankaran TP_fast_assign( 76425fdd593SJeykumar Sankaran __entry->index = index; 765f65f035fSSean Paul __entry->layout = *layout; 76625fdd593SJeykumar Sankaran __entry->multirect_index = multirect_index; 76725fdd593SJeykumar Sankaran ), 76825fdd593SJeykumar Sankaran TP_printk("index:%d layout:{%ux%u @ [%u/%u, %u/%u, %u/%u, %u/%u]} " 769f65f035fSSean Paul "multirect_index:%d", __entry->index, __entry->layout.width, 770f65f035fSSean Paul __entry->layout.height, __entry->layout.plane_addr[0], 771f65f035fSSean Paul __entry->layout.plane_size[0], 772f65f035fSSean Paul __entry->layout.plane_addr[1], 773f65f035fSSean Paul __entry->layout.plane_size[1], 774f65f035fSSean Paul __entry->layout.plane_addr[2], 775f65f035fSSean Paul __entry->layout.plane_size[2], 776f65f035fSSean Paul __entry->layout.plane_addr[3], 777f65f035fSSean Paul __entry->layout.plane_size[3], __entry->multirect_index) 77825fdd593SJeykumar Sankaran ); 77925fdd593SJeykumar Sankaran 78025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_disable, 78125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool is_virtual, uint32_t multirect_mode), 78225fdd593SJeykumar Sankaran TP_ARGS(drm_id, is_virtual, multirect_mode), 78325fdd593SJeykumar Sankaran TP_STRUCT__entry( 78425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 78525fdd593SJeykumar Sankaran __field( bool, is_virtual ) 78625fdd593SJeykumar Sankaran __field( uint32_t, multirect_mode ) 78725fdd593SJeykumar Sankaran ), 78825fdd593SJeykumar Sankaran TP_fast_assign( 78925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 79025fdd593SJeykumar Sankaran __entry->is_virtual = is_virtual; 79125fdd593SJeykumar Sankaran __entry->multirect_mode = multirect_mode; 79225fdd593SJeykumar Sankaran ), 79325fdd593SJeykumar Sankaran TP_printk("id:%u is_virtual:%s multirect_mode:%u", __entry->drm_id, 79425fdd593SJeykumar Sankaran __entry->is_virtual ? "true" : "false", 79525fdd593SJeykumar Sankaran __entry->multirect_mode) 79625fdd593SJeykumar Sankaran ); 79725fdd593SJeykumar Sankaran 79825fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_rm_iter_template, 7991a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8001a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id), 80125fdd593SJeykumar Sankaran TP_STRUCT__entry( 80225fdd593SJeykumar Sankaran __field( uint32_t, id ) 80325fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 80425fdd593SJeykumar Sankaran ), 80525fdd593SJeykumar Sankaran TP_fast_assign( 80625fdd593SJeykumar Sankaran __entry->id = id; 80725fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 80825fdd593SJeykumar Sankaran ), 8091a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u", __entry->id, __entry->enc_id) 81025fdd593SJeykumar Sankaran ); 81125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, 8121a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8131a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 81425fdd593SJeykumar Sankaran ); 81525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, 8161a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8171a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 81825fdd593SJeykumar Sankaran ); 81925fdd593SJeykumar Sankaran 82025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_rm_reserve_lms, 8211a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id, uint32_t pp_id), 8221a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id, pp_id), 82325fdd593SJeykumar Sankaran TP_STRUCT__entry( 82425fdd593SJeykumar Sankaran __field( uint32_t, id ) 82525fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 82625fdd593SJeykumar Sankaran __field( uint32_t, pp_id ) 82725fdd593SJeykumar Sankaran ), 82825fdd593SJeykumar Sankaran TP_fast_assign( 82925fdd593SJeykumar Sankaran __entry->id = id; 83025fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 83125fdd593SJeykumar Sankaran __entry->pp_id = pp_id; 83225fdd593SJeykumar Sankaran ), 8331a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u pp_id:%u", __entry->id, 8341a5e1778SJeykumar Sankaran __entry->enc_id, __entry->pp_id) 83525fdd593SJeykumar Sankaran ); 83625fdd593SJeykumar Sankaran 83725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_vbif_wait_xin_halt_fail, 83825fdd593SJeykumar Sankaran TP_PROTO(enum dpu_vbif index, u32 xin_id), 83925fdd593SJeykumar Sankaran TP_ARGS(index, xin_id), 84025fdd593SJeykumar Sankaran TP_STRUCT__entry( 84125fdd593SJeykumar Sankaran __field( enum dpu_vbif, index ) 84225fdd593SJeykumar Sankaran __field( u32, xin_id ) 84325fdd593SJeykumar Sankaran ), 84425fdd593SJeykumar Sankaran TP_fast_assign( 84525fdd593SJeykumar Sankaran __entry->index = index; 84625fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 84725fdd593SJeykumar Sankaran ), 84825fdd593SJeykumar Sankaran TP_printk("index:%d xin_id:%u", __entry->index, __entry->xin_id) 84925fdd593SJeykumar Sankaran ); 85025fdd593SJeykumar Sankaran 85125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_pp_connect_ext_te, 85225fdd593SJeykumar Sankaran TP_PROTO(enum dpu_pingpong pp, u32 cfg), 85325fdd593SJeykumar Sankaran TP_ARGS(pp, cfg), 85425fdd593SJeykumar Sankaran TP_STRUCT__entry( 85525fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 85625fdd593SJeykumar Sankaran __field( u32, cfg ) 85725fdd593SJeykumar Sankaran ), 85825fdd593SJeykumar Sankaran TP_fast_assign( 85925fdd593SJeykumar Sankaran __entry->pp = pp; 86025fdd593SJeykumar Sankaran __entry->cfg = cfg; 86125fdd593SJeykumar Sankaran ), 86225fdd593SJeykumar Sankaran TP_printk("pp:%d cfg:%u", __entry->pp, __entry->cfg) 86325fdd593SJeykumar Sankaran ); 86425fdd593SJeykumar Sankaran 865c929ac60SDmitry Baryshkov TRACE_EVENT(dpu_core_irq_register_callback, 866c929ac60SDmitry Baryshkov TP_PROTO(int irq_idx, void *callback), 86725fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback), 86825fdd593SJeykumar Sankaran TP_STRUCT__entry( 86925fdd593SJeykumar Sankaran __field( int, irq_idx ) 870c929ac60SDmitry Baryshkov __field( void *, callback) 87125fdd593SJeykumar Sankaran ), 87225fdd593SJeykumar Sankaran TP_fast_assign( 87325fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 87425fdd593SJeykumar Sankaran __entry->callback = callback; 87525fdd593SJeykumar Sankaran ), 876c929ac60SDmitry Baryshkov TP_printk("irq_idx:%d callback:%ps", __entry->irq_idx, 87725fdd593SJeykumar Sankaran __entry->callback) 87825fdd593SJeykumar Sankaran ); 879c929ac60SDmitry Baryshkov 880c929ac60SDmitry Baryshkov TRACE_EVENT(dpu_core_irq_unregister_callback, 881c929ac60SDmitry Baryshkov TP_PROTO(int irq_idx), 882c929ac60SDmitry Baryshkov TP_ARGS(irq_idx), 883c929ac60SDmitry Baryshkov TP_STRUCT__entry( 884c929ac60SDmitry Baryshkov __field( int, irq_idx ) 885c929ac60SDmitry Baryshkov ), 886c929ac60SDmitry Baryshkov TP_fast_assign( 887c929ac60SDmitry Baryshkov __entry->irq_idx = irq_idx; 888c929ac60SDmitry Baryshkov ), 889c929ac60SDmitry Baryshkov TP_printk("irq_idx:%d", __entry->irq_idx) 89025fdd593SJeykumar Sankaran ); 89125fdd593SJeykumar Sankaran 89225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_core_perf_update_clk, 89325fdd593SJeykumar Sankaran TP_PROTO(struct drm_device *dev, bool stop_req, u64 clk_rate), 89425fdd593SJeykumar Sankaran TP_ARGS(dev, stop_req, clk_rate), 89525fdd593SJeykumar Sankaran TP_STRUCT__entry( 896f65f035fSSean Paul __string( dev_name, dev->unique ) 89725fdd593SJeykumar Sankaran __field( bool, stop_req ) 89825fdd593SJeykumar Sankaran __field( u64, clk_rate ) 89925fdd593SJeykumar Sankaran ), 90025fdd593SJeykumar Sankaran TP_fast_assign( 901f65f035fSSean Paul __assign_str(dev_name, dev->unique); 90225fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 90325fdd593SJeykumar Sankaran __entry->clk_rate = clk_rate; 90425fdd593SJeykumar Sankaran ), 905f65f035fSSean Paul TP_printk("dev:%s stop_req:%s clk_rate:%llu", __get_str(dev_name), 90625fdd593SJeykumar Sankaran __entry->stop_req ? "true" : "false", __entry->clk_rate) 90725fdd593SJeykumar Sankaran ); 90825fdd593SJeykumar Sankaran 909812eeeb6SSean Paul TRACE_EVENT(dpu_hw_ctl_update_pending_flush, 910812eeeb6SSean Paul TP_PROTO(u32 new_bits, u32 pending_mask), 911812eeeb6SSean Paul TP_ARGS(new_bits, pending_mask), 912812eeeb6SSean Paul TP_STRUCT__entry( 913812eeeb6SSean Paul __field( u32, new_bits ) 914812eeeb6SSean Paul __field( u32, pending_mask ) 915812eeeb6SSean Paul ), 916812eeeb6SSean Paul TP_fast_assign( 917812eeeb6SSean Paul __entry->new_bits = new_bits; 918812eeeb6SSean Paul __entry->pending_mask = pending_mask; 919812eeeb6SSean Paul ), 920812eeeb6SSean Paul TP_printk("new=%x existing=%x", __entry->new_bits, 921812eeeb6SSean Paul __entry->pending_mask) 922812eeeb6SSean Paul ); 923812eeeb6SSean Paul 924812eeeb6SSean Paul DECLARE_EVENT_CLASS(dpu_hw_ctl_pending_flush_template, 925812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 926812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush), 927812eeeb6SSean Paul TP_STRUCT__entry( 928812eeeb6SSean Paul __field( u32, pending_mask ) 929812eeeb6SSean Paul __field( u32, ctl_flush ) 930812eeeb6SSean Paul ), 931812eeeb6SSean Paul TP_fast_assign( 932812eeeb6SSean Paul __entry->pending_mask = pending_mask; 933812eeeb6SSean Paul __entry->ctl_flush = ctl_flush; 934812eeeb6SSean Paul ), 935812eeeb6SSean Paul TP_printk("pending_mask=%x CTL_FLUSH=%x", __entry->pending_mask, 936812eeeb6SSean Paul __entry->ctl_flush) 937812eeeb6SSean Paul ); 938812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_clear_pending_flush, 939812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 940812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 941812eeeb6SSean Paul ); 942812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, 943812eeeb6SSean Paul dpu_hw_ctl_trigger_pending_flush, 944812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 945812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 946812eeeb6SSean Paul ); 947812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_prepare, 948812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 949812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 950812eeeb6SSean Paul ); 951812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_start, 952812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 953812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 954812eeeb6SSean Paul ); 955812eeeb6SSean Paul 95625fdd593SJeykumar Sankaran #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) 95725fdd593SJeykumar Sankaran #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) 95825fdd593SJeykumar Sankaran #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__) 95925fdd593SJeykumar Sankaran 96025fdd593SJeykumar Sankaran #define DPU_ATRACE_INT(name, value) \ 96125fdd593SJeykumar Sankaran trace_dpu_trace_counter(current->tgid, name, value) 96225fdd593SJeykumar Sankaran 96325fdd593SJeykumar Sankaran #endif /* _DPU_TRACE_H_ */ 96425fdd593SJeykumar Sankaran 96525fdd593SJeykumar Sankaran /* This part must be outside protection */ 96625fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_PATH 96725fdd593SJeykumar Sankaran #define TRACE_INCLUDE_PATH . 96825fdd593SJeykumar Sankaran #include <trace/define_trace.h> 969