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; 116*2c92ca84SSteven Rostedt (Google) __assign_str(trace_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; 133*2c92ca84SSteven Rostedt (Google) __assign_str(counter_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, 1716be6ece9SDmitry Baryshkov TP_PROTO(unsigned int irq_reg, unsigned int irq_bit), 1726be6ece9SDmitry Baryshkov TP_ARGS(irq_reg, irq_bit), 17325fdd593SJeykumar Sankaran TP_STRUCT__entry( 1746be6ece9SDmitry Baryshkov __field( unsigned int, irq_reg ) 1756be6ece9SDmitry Baryshkov __field( unsigned int, irq_bit ) 17625fdd593SJeykumar Sankaran ), 17725fdd593SJeykumar Sankaran TP_fast_assign( 1786be6ece9SDmitry Baryshkov __entry->irq_reg = irq_reg; 1796be6ece9SDmitry Baryshkov __entry->irq_bit = irq_bit; 18025fdd593SJeykumar Sankaran ), 1816be6ece9SDmitry Baryshkov TP_printk("IRQ=[%d, %d]", __entry->irq_reg, __entry->irq_bit) 18225fdd593SJeykumar Sankaran ); 1836ee11c41SDmitry Baryshkov DEFINE_EVENT(dpu_irq_template, dpu_irq_register_success, 1846be6ece9SDmitry Baryshkov TP_PROTO(unsigned int irq_reg, unsigned int irq_bit), 1856be6ece9SDmitry Baryshkov TP_ARGS(irq_reg, irq_bit) 18625fdd593SJeykumar Sankaran ); 1876ee11c41SDmitry Baryshkov DEFINE_EVENT(dpu_irq_template, dpu_irq_unregister_success, 1886be6ece9SDmitry Baryshkov TP_PROTO(unsigned int irq_reg, unsigned int irq_bit), 1896be6ece9SDmitry Baryshkov TP_ARGS(irq_reg, irq_bit) 19025fdd593SJeykumar Sankaran ); 19125fdd593SJeykumar Sankaran 19225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_irq_wait_success, 1931e7ac595SDmitry Baryshkov TP_PROTO(uint32_t drm_id, void *func, 1946be6ece9SDmitry Baryshkov unsigned int irq_reg, unsigned int irq_bit, enum dpu_pingpong pp_idx, int atomic_cnt), 1956be6ece9SDmitry Baryshkov TP_ARGS(drm_id, func, irq_reg, irq_bit, pp_idx, atomic_cnt), 19625fdd593SJeykumar Sankaran TP_STRUCT__entry( 19725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 1981e7ac595SDmitry Baryshkov __field( void *, func ) 1996be6ece9SDmitry Baryshkov __field( unsigned int, irq_reg ) 2006be6ece9SDmitry Baryshkov __field( unsigned int, irq_bit ) 20125fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp_idx ) 20225fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 20325fdd593SJeykumar Sankaran ), 20425fdd593SJeykumar Sankaran TP_fast_assign( 20525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 2061e7ac595SDmitry Baryshkov __entry->func = func; 2076be6ece9SDmitry Baryshkov __entry->irq_reg = irq_reg; 2086be6ece9SDmitry Baryshkov __entry->irq_bit = irq_bit; 20925fdd593SJeykumar Sankaran __entry->pp_idx = pp_idx; 21025fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 21125fdd593SJeykumar Sankaran ), 2126be6ece9SDmitry Baryshkov TP_printk("id=%u, callback=%ps, IRQ=[%d, %d], pp=%d, atomic_cnt=%d", 2131e7ac595SDmitry Baryshkov __entry->drm_id, __entry->func, 2146be6ece9SDmitry Baryshkov __entry->irq_reg, __entry->irq_bit, __entry->pp_idx, __entry->atomic_cnt) 21525fdd593SJeykumar Sankaran ); 21625fdd593SJeykumar Sankaran 21725fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_drm_obj_template, 21825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 21925fdd593SJeykumar Sankaran TP_ARGS(drm_id), 22025fdd593SJeykumar Sankaran TP_STRUCT__entry( 22125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 22225fdd593SJeykumar Sankaran ), 22325fdd593SJeykumar Sankaran TP_fast_assign( 22425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 22525fdd593SJeykumar Sankaran ), 22625fdd593SJeykumar Sankaran TP_printk("id=%u", __entry->drm_id) 22725fdd593SJeykumar Sankaran ); 22825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_atomic_check, 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_mode_set, 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_disable, 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_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, 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_enc_prepare_kickoff_reset, 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_complete_flip, 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_vblank_cb, 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_crtc_complete_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_commit, 26525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 26625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 26725fdd593SJeykumar Sankaran ); 26825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_wait_for_commit_done, 26925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 27025fdd593SJeykumar Sankaran TP_ARGS(drm_id) 27125fdd593SJeykumar Sankaran ); 2723cf63cd5SSean Paul DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_runtime_resume, 2733cf63cd5SSean Paul TP_PROTO(uint32_t drm_id), 2743cf63cd5SSean Paul TP_ARGS(drm_id) 2753cf63cd5SSean Paul ); 276ca8c1fd3SDmitry Baryshkov DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_rc_enable, 277ca8c1fd3SDmitry Baryshkov TP_PROTO(uint32_t drm_id), 278ca8c1fd3SDmitry Baryshkov TP_ARGS(drm_id) 279ca8c1fd3SDmitry Baryshkov ); 280ca8c1fd3SDmitry Baryshkov DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_rc_disable, 281ca8c1fd3SDmitry Baryshkov TP_PROTO(uint32_t drm_id), 282ca8c1fd3SDmitry Baryshkov TP_ARGS(drm_id) 283ca8c1fd3SDmitry Baryshkov ); 28425fdd593SJeykumar Sankaran 28525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_enable, 28625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int hdisplay, int vdisplay), 28725fdd593SJeykumar Sankaran TP_ARGS(drm_id, hdisplay, vdisplay), 28825fdd593SJeykumar Sankaran TP_STRUCT__entry( 28925fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 29025fdd593SJeykumar Sankaran __field( int, hdisplay ) 29125fdd593SJeykumar Sankaran __field( int, vdisplay ) 29225fdd593SJeykumar Sankaran ), 29325fdd593SJeykumar Sankaran TP_fast_assign( 29425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 29525fdd593SJeykumar Sankaran __entry->hdisplay = hdisplay; 29625fdd593SJeykumar Sankaran __entry->vdisplay = vdisplay; 29725fdd593SJeykumar Sankaran ), 29825fdd593SJeykumar Sankaran TP_printk("id=%u, mode=%dx%d", 29925fdd593SJeykumar Sankaran __entry->drm_id, __entry->hdisplay, __entry->vdisplay) 30025fdd593SJeykumar Sankaran ); 30125fdd593SJeykumar Sankaran 30225fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_keyval_template, 30325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int val), 30425fdd593SJeykumar Sankaran TP_ARGS(drm_id, val), 30525fdd593SJeykumar Sankaran TP_STRUCT__entry( 30625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 30725fdd593SJeykumar Sankaran __field( int, val ) 30825fdd593SJeykumar Sankaran ), 30925fdd593SJeykumar Sankaran TP_fast_assign( 31025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 31125fdd593SJeykumar Sankaran __entry->val = val; 31225fdd593SJeykumar Sankaran ), 31325fdd593SJeykumar Sankaran TP_printk("id=%u, val=%d", __entry->drm_id, __entry->val) 31425fdd593SJeykumar Sankaran ); 31525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_underrun_cb, 31625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int count), 31725fdd593SJeykumar Sankaran TP_ARGS(drm_id, count) 31825fdd593SJeykumar Sankaran ); 31925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_trigger_start, 32025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int ctl_idx), 32125fdd593SJeykumar Sankaran TP_ARGS(drm_id, ctl_idx) 32225fdd593SJeykumar Sankaran ); 32325fdd593SJeykumar Sankaran 32425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_atomic_check_flags, 3255dce0c0bSVille Syrjälä TP_PROTO(uint32_t drm_id, unsigned int flags), 3265dce0c0bSVille Syrjälä TP_ARGS(drm_id, flags), 32725fdd593SJeykumar Sankaran TP_STRUCT__entry( 32825fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 32925fdd593SJeykumar Sankaran __field( unsigned int, flags ) 33025fdd593SJeykumar Sankaran ), 33125fdd593SJeykumar Sankaran TP_fast_assign( 33225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 33325fdd593SJeykumar Sankaran __entry->flags = flags; 33425fdd593SJeykumar Sankaran ), 3355dce0c0bSVille Syrjälä TP_printk("id=%u, flags=%u", 3365dce0c0bSVille Syrjälä __entry->drm_id, __entry->flags) 33725fdd593SJeykumar Sankaran ); 33825fdd593SJeykumar Sankaran 33925fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_id_enable_template, 34025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 34125fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable), 34225fdd593SJeykumar Sankaran TP_STRUCT__entry( 34325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 34425fdd593SJeykumar Sankaran __field( bool, enable ) 34525fdd593SJeykumar Sankaran ), 34625fdd593SJeykumar Sankaran TP_fast_assign( 34725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 34825fdd593SJeykumar Sankaran __entry->enable = enable; 34925fdd593SJeykumar Sankaran ), 35025fdd593SJeykumar Sankaran TP_printk("id=%u, enable=%s", 35125fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false") 35225fdd593SJeykumar Sankaran ); 35325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_vblank_cb, 35425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 35525fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 35625fdd593SJeykumar Sankaran ); 35725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_phys_cmd_connect_te, 35825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 35925fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 36025fdd593SJeykumar Sankaran ); 36125fdd593SJeykumar Sankaran 36225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_rc, 36325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 sw_event, bool idle_pc_supported, 36425fdd593SJeykumar Sankaran int rc_state, const char *stage), 36525fdd593SJeykumar Sankaran TP_ARGS(drm_id, sw_event, idle_pc_supported, rc_state, stage), 36625fdd593SJeykumar Sankaran TP_STRUCT__entry( 36725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 36825fdd593SJeykumar Sankaran __field( u32, sw_event ) 36925fdd593SJeykumar Sankaran __field( bool, idle_pc_supported ) 37025fdd593SJeykumar Sankaran __field( int, rc_state ) 37125fdd593SJeykumar Sankaran __string( stage_str, stage ) 37225fdd593SJeykumar Sankaran ), 37325fdd593SJeykumar Sankaran TP_fast_assign( 37425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 37525fdd593SJeykumar Sankaran __entry->sw_event = sw_event; 37625fdd593SJeykumar Sankaran __entry->idle_pc_supported = idle_pc_supported; 37725fdd593SJeykumar Sankaran __entry->rc_state = rc_state; 378*2c92ca84SSteven Rostedt (Google) __assign_str(stage_str); 37925fdd593SJeykumar Sankaran ), 380b721ea48SRob Clark TP_printk("%s: id:%u, sw_event:%d, idle_pc_supported:%s, rc_state:%d", 38125fdd593SJeykumar Sankaran __get_str(stage_str), __entry->drm_id, __entry->sw_event, 38225fdd593SJeykumar Sankaran __entry->idle_pc_supported ? "true" : "false", 38325fdd593SJeykumar Sankaran __entry->rc_state) 38425fdd593SJeykumar Sankaran ); 38525fdd593SJeykumar Sankaran 38625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb_not_busy, 387da10e280SAbhinav Kumar TP_PROTO(uint32_t drm_id, u32 event, char *intf_mode, enum dpu_intf intf_idx, 388da10e280SAbhinav Kumar enum dpu_wb wb_idx), 389da10e280SAbhinav Kumar TP_ARGS(drm_id, event, intf_mode, intf_idx, wb_idx), 39025fdd593SJeykumar Sankaran TP_STRUCT__entry( 39125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 39225fdd593SJeykumar Sankaran __field( u32, event ) 393da10e280SAbhinav Kumar __string( intf_mode_str, intf_mode ) 39425fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 395da10e280SAbhinav Kumar __field( enum dpu_wb, wb_idx ) 39625fdd593SJeykumar Sankaran ), 39725fdd593SJeykumar Sankaran TP_fast_assign( 39825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 39925fdd593SJeykumar Sankaran __entry->event = event; 400*2c92ca84SSteven Rostedt (Google) __assign_str(intf_mode_str); 40125fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 402da10e280SAbhinav Kumar __entry->wb_idx = wb_idx; 40325fdd593SJeykumar Sankaran ), 404da10e280SAbhinav Kumar TP_printk("id=%u, event=%u, intf_mode=%s intf=%d wb=%d", __entry->drm_id, 405da10e280SAbhinav Kumar __entry->event, __get_str(intf_mode_str), 406da10e280SAbhinav Kumar __entry->intf_idx, __entry->wb_idx) 40725fdd593SJeykumar Sankaran ); 40825fdd593SJeykumar Sankaran 40925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb, 41025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int idx, 41125fdd593SJeykumar Sankaran unsigned long frame_busy_mask), 41225fdd593SJeykumar Sankaran TP_ARGS(drm_id, idx, frame_busy_mask), 41325fdd593SJeykumar Sankaran TP_STRUCT__entry( 41425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 41525fdd593SJeykumar Sankaran __field( unsigned int, idx ) 41625fdd593SJeykumar Sankaran __field( unsigned long, frame_busy_mask ) 41725fdd593SJeykumar Sankaran ), 41825fdd593SJeykumar Sankaran TP_fast_assign( 41925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 42025fdd593SJeykumar Sankaran __entry->idx = idx; 42125fdd593SJeykumar Sankaran __entry->frame_busy_mask = frame_busy_mask; 42225fdd593SJeykumar Sankaran ), 42325fdd593SJeykumar Sankaran TP_printk("id=%u, idx=%u, frame_busy_mask=%lx", __entry->drm_id, 42425fdd593SJeykumar Sankaran __entry->idx, __entry->frame_busy_mask) 42525fdd593SJeykumar Sankaran ); 42625fdd593SJeykumar Sankaran 42725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_trigger_flush, 428da10e280SAbhinav Kumar TP_PROTO(uint32_t drm_id, char *intf_mode, enum dpu_intf intf_idx, enum dpu_wb wb_idx, 4291bb4e701SSean Paul int pending_kickoff_cnt, int ctl_idx, u32 extra_flush_bits, 4301bb4e701SSean Paul u32 pending_flush_ret), 431da10e280SAbhinav Kumar TP_ARGS(drm_id, intf_mode, intf_idx, wb_idx, pending_kickoff_cnt, ctl_idx, 4321bb4e701SSean Paul extra_flush_bits, pending_flush_ret), 43325fdd593SJeykumar Sankaran TP_STRUCT__entry( 43425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 435da10e280SAbhinav Kumar __string( intf_mode_str, intf_mode ) 43625fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 437da10e280SAbhinav Kumar __field( enum dpu_wb, wb_idx ) 43825fdd593SJeykumar Sankaran __field( int, pending_kickoff_cnt ) 43925fdd593SJeykumar Sankaran __field( int, ctl_idx ) 4401bb4e701SSean Paul __field( u32, extra_flush_bits ) 44125fdd593SJeykumar Sankaran __field( u32, pending_flush_ret ) 44225fdd593SJeykumar Sankaran ), 44325fdd593SJeykumar Sankaran TP_fast_assign( 44425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 445*2c92ca84SSteven Rostedt (Google) __assign_str(intf_mode_str); 44625fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 447da10e280SAbhinav Kumar __entry->wb_idx = wb_idx; 44825fdd593SJeykumar Sankaran __entry->pending_kickoff_cnt = pending_kickoff_cnt; 44925fdd593SJeykumar Sankaran __entry->ctl_idx = ctl_idx; 4501bb4e701SSean Paul __entry->extra_flush_bits = extra_flush_bits; 45125fdd593SJeykumar Sankaran __entry->pending_flush_ret = pending_flush_ret; 45225fdd593SJeykumar Sankaran ), 453da10e280SAbhinav Kumar TP_printk("id=%u, intf_mode=%s, intf_idx=%d, wb_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d " 4541bb4e701SSean Paul "extra_flush_bits=0x%x pending_flush_ret=0x%x", 455da10e280SAbhinav Kumar __entry->drm_id, __get_str(intf_mode_str), __entry->intf_idx, __entry->wb_idx, 4561bb4e701SSean Paul __entry->pending_kickoff_cnt, __entry->ctl_idx, 4571bb4e701SSean Paul __entry->extra_flush_bits, __entry->pending_flush_ret) 45825fdd593SJeykumar Sankaran ); 45925fdd593SJeykumar Sankaran 46025fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_id_event_template, 46125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 46225fdd593SJeykumar Sankaran TP_ARGS(drm_id, event), 46325fdd593SJeykumar Sankaran TP_STRUCT__entry( 46425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 46525fdd593SJeykumar Sankaran __field( u32, event ) 46625fdd593SJeykumar Sankaran ), 46725fdd593SJeykumar Sankaran TP_fast_assign( 46825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 46925fdd593SJeykumar Sankaran __entry->event = event; 47025fdd593SJeykumar Sankaran ), 47125fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u", __entry->drm_id, __entry->event) 47225fdd593SJeykumar Sankaran ); 47325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_enc_frame_done_timeout, 47425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 47525fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 47625fdd593SJeykumar Sankaran ); 47725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_cb, 47825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 47925fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 48025fdd593SJeykumar Sankaran ); 48125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_done, 48225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 48325fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 48425fdd593SJeykumar Sankaran ); 48525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_more_pending, 48625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 48725fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 48825fdd593SJeykumar Sankaran ); 48925fdd593SJeykumar Sankaran 49025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_wait_event_timeout, 4916be6ece9SDmitry Baryshkov TP_PROTO(uint32_t drm_id, unsigned int irq_reg, unsigned int irq_bit, int rc, s64 time, 49225fdd593SJeykumar Sankaran s64 expected_time, int atomic_cnt), 4936be6ece9SDmitry Baryshkov TP_ARGS(drm_id, irq_reg, irq_bit, rc, time, expected_time, atomic_cnt), 49425fdd593SJeykumar Sankaran TP_STRUCT__entry( 49525fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 4966be6ece9SDmitry Baryshkov __field( unsigned int, irq_reg ) 4976be6ece9SDmitry Baryshkov __field( unsigned int, irq_bit ) 49825fdd593SJeykumar Sankaran __field( int, rc ) 49925fdd593SJeykumar Sankaran __field( s64, time ) 50025fdd593SJeykumar Sankaran __field( s64, expected_time ) 50125fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 50225fdd593SJeykumar Sankaran ), 50325fdd593SJeykumar Sankaran TP_fast_assign( 50425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 5056be6ece9SDmitry Baryshkov __entry->irq_reg = irq_reg; 5066be6ece9SDmitry Baryshkov __entry->irq_bit = irq_bit; 50725fdd593SJeykumar Sankaran __entry->rc = rc; 50825fdd593SJeykumar Sankaran __entry->time = time; 50925fdd593SJeykumar Sankaran __entry->expected_time = expected_time; 51025fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 51125fdd593SJeykumar Sankaran ), 5126be6ece9SDmitry Baryshkov TP_printk("id=%u, IRQ=[%d, %d], rc=%d, time=%lld, expected=%lld cnt=%d", 5136be6ece9SDmitry Baryshkov __entry->drm_id, __entry->irq_reg, __entry->irq_bit, __entry->rc, __entry->time, 51425fdd593SJeykumar Sankaran __entry->expected_time, __entry->atomic_cnt) 51525fdd593SJeykumar Sankaran ); 51625fdd593SJeykumar Sankaran 517c6f60037SDmitry Baryshkov TRACE_EVENT(dpu_enc_phys_cmd_irq_enable, 518c6f60037SDmitry Baryshkov TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, 51925fdd593SJeykumar Sankaran int refcnt), 520c6f60037SDmitry Baryshkov TP_ARGS(drm_id, pp, refcnt), 52125fdd593SJeykumar Sankaran TP_STRUCT__entry( 52225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 52325fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 52425fdd593SJeykumar Sankaran __field( int, refcnt ) 52525fdd593SJeykumar Sankaran ), 52625fdd593SJeykumar Sankaran TP_fast_assign( 52725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 52825fdd593SJeykumar Sankaran __entry->pp = pp; 52925fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 53025fdd593SJeykumar Sankaran ), 531c6f60037SDmitry Baryshkov TP_printk("id=%u, pp=%d, refcnt=%d", __entry->drm_id, 532c6f60037SDmitry Baryshkov __entry->pp, 533c6f60037SDmitry Baryshkov __entry->refcnt) 534c6f60037SDmitry Baryshkov ); 535c6f60037SDmitry Baryshkov 536c6f60037SDmitry Baryshkov TRACE_EVENT(dpu_enc_phys_cmd_irq_disable, 537c6f60037SDmitry Baryshkov TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, 538c6f60037SDmitry Baryshkov int refcnt), 539c6f60037SDmitry Baryshkov TP_ARGS(drm_id, pp, refcnt), 540c6f60037SDmitry Baryshkov TP_STRUCT__entry( 541c6f60037SDmitry Baryshkov __field( uint32_t, drm_id ) 542c6f60037SDmitry Baryshkov __field( enum dpu_pingpong, pp ) 543c6f60037SDmitry Baryshkov __field( int, refcnt ) 544c6f60037SDmitry Baryshkov ), 545c6f60037SDmitry Baryshkov TP_fast_assign( 546c6f60037SDmitry Baryshkov __entry->drm_id = drm_id; 547c6f60037SDmitry Baryshkov __entry->pp = pp; 548c6f60037SDmitry Baryshkov __entry->refcnt = refcnt; 549c6f60037SDmitry Baryshkov ), 550c6f60037SDmitry Baryshkov TP_printk("id=%u, pp=%d, refcnt=%d", __entry->drm_id, 551c6f60037SDmitry Baryshkov __entry->pp, 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 612c6f60037SDmitry Baryshkov TRACE_EVENT(dpu_enc_phys_vid_irq_enable, 613c6f60037SDmitry Baryshkov TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, 61425fdd593SJeykumar Sankaran int refcnt), 615c6f60037SDmitry Baryshkov TP_ARGS(drm_id, intf_idx, refcnt), 61625fdd593SJeykumar Sankaran TP_STRUCT__entry( 61725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 61825fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 61925fdd593SJeykumar Sankaran __field( int, refcnt ) 62025fdd593SJeykumar Sankaran ), 62125fdd593SJeykumar Sankaran TP_fast_assign( 62225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 62325fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 62425fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 62525fdd593SJeykumar Sankaran ), 626c6f60037SDmitry Baryshkov TP_printk("id=%u, intf_idx=%d refcnt=%d", __entry->drm_id, 627c6f60037SDmitry Baryshkov __entry->intf_idx, 628c6f60037SDmitry Baryshkov __entry->drm_id) 629c6f60037SDmitry Baryshkov ); 630c6f60037SDmitry Baryshkov 631c6f60037SDmitry Baryshkov TRACE_EVENT(dpu_enc_phys_vid_irq_disable, 632c6f60037SDmitry Baryshkov TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, 633c6f60037SDmitry Baryshkov int refcnt), 634c6f60037SDmitry Baryshkov TP_ARGS(drm_id, intf_idx, refcnt), 635c6f60037SDmitry Baryshkov TP_STRUCT__entry( 636c6f60037SDmitry Baryshkov __field( uint32_t, drm_id ) 637c6f60037SDmitry Baryshkov __field( enum dpu_intf, intf_idx ) 638c6f60037SDmitry Baryshkov __field( int, refcnt ) 639c6f60037SDmitry Baryshkov ), 640c6f60037SDmitry Baryshkov TP_fast_assign( 641c6f60037SDmitry Baryshkov __entry->drm_id = drm_id; 642c6f60037SDmitry Baryshkov __entry->intf_idx = intf_idx; 643c6f60037SDmitry Baryshkov __entry->refcnt = refcnt; 644c6f60037SDmitry Baryshkov ), 645c6f60037SDmitry Baryshkov TP_printk("id=%u, intf_idx=%d refcnt=%d", __entry->drm_id, 646c6f60037SDmitry Baryshkov __entry->intf_idx, 64725fdd593SJeykumar Sankaran __entry->drm_id) 64825fdd593SJeykumar Sankaran ); 64925fdd593SJeykumar Sankaran 65025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_mixer, 65125fdd593SJeykumar Sankaran TP_PROTO(uint32_t crtc_id, uint32_t plane_id, 65225fdd593SJeykumar Sankaran struct drm_plane_state *state, struct dpu_plane_state *pstate, 6533cfcd130SDmitry Baryshkov uint32_t stage_idx, uint32_t pixel_format, 65425fdd593SJeykumar Sankaran uint64_t modifier), 6553cfcd130SDmitry Baryshkov TP_ARGS(crtc_id, plane_id, state, pstate, stage_idx, 65625fdd593SJeykumar Sankaran pixel_format, modifier), 65725fdd593SJeykumar Sankaran TP_STRUCT__entry( 65825fdd593SJeykumar Sankaran __field( uint32_t, crtc_id ) 65925fdd593SJeykumar Sankaran __field( uint32_t, plane_id ) 660f65f035fSSean Paul __field( uint32_t, fb_id ) 661f65f035fSSean Paul __field_struct( struct drm_rect, src_rect ) 662f65f035fSSean Paul __field_struct( struct drm_rect, dst_rect ) 66325fdd593SJeykumar Sankaran __field( uint32_t, stage_idx ) 664f65f035fSSean Paul __field( enum dpu_stage, stage ) 66525fdd593SJeykumar Sankaran __field( enum dpu_sspp, sspp ) 666f65f035fSSean Paul __field( uint32_t, multirect_idx ) 667f65f035fSSean Paul __field( uint32_t, multirect_mode ) 66825fdd593SJeykumar Sankaran __field( uint32_t, pixel_format ) 66925fdd593SJeykumar Sankaran __field( uint64_t, modifier ) 67025fdd593SJeykumar Sankaran ), 67125fdd593SJeykumar Sankaran TP_fast_assign( 67225fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 67325fdd593SJeykumar Sankaran __entry->plane_id = plane_id; 674f65f035fSSean Paul __entry->fb_id = state ? state->fb->base.id : 0; 675f65f035fSSean Paul __entry->src_rect = drm_plane_state_src(state); 676f65f035fSSean Paul __entry->dst_rect = drm_plane_state_dest(state); 67725fdd593SJeykumar Sankaran __entry->stage_idx = stage_idx; 678f65f035fSSean Paul __entry->stage = pstate->stage; 6793cfcd130SDmitry Baryshkov __entry->sspp = pstate->pipe.sspp->idx; 6803cfcd130SDmitry Baryshkov __entry->multirect_idx = pstate->pipe.multirect_index; 6813cfcd130SDmitry Baryshkov __entry->multirect_mode = pstate->pipe.multirect_mode; 68225fdd593SJeykumar Sankaran __entry->pixel_format = pixel_format; 68325fdd593SJeykumar Sankaran __entry->modifier = modifier; 68425fdd593SJeykumar Sankaran ), 685f65f035fSSean Paul TP_printk("crtc_id:%u plane_id:%u fb_id:%u src:" DRM_RECT_FP_FMT 686f65f035fSSean Paul " dst:" DRM_RECT_FMT " stage_idx:%u stage:%d, sspp:%d " 68725fdd593SJeykumar Sankaran "multirect_index:%d multirect_mode:%u pix_format:%u " 68825fdd593SJeykumar Sankaran "modifier:%llu", 689f65f035fSSean Paul __entry->crtc_id, __entry->plane_id, __entry->fb_id, 690f65f035fSSean Paul DRM_RECT_FP_ARG(&__entry->src_rect), 691f65f035fSSean Paul DRM_RECT_ARG(&__entry->dst_rect), 692f65f035fSSean Paul __entry->stage_idx, __entry->stage, __entry->sspp, 693f65f035fSSean Paul __entry->multirect_idx, __entry->multirect_mode, 694f65f035fSSean Paul __entry->pixel_format, __entry->modifier) 69525fdd593SJeykumar Sankaran ); 69625fdd593SJeykumar Sankaran 69725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_lm_bounds, 69825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int mixer, struct drm_rect *bounds), 69925fdd593SJeykumar Sankaran TP_ARGS(drm_id, mixer, bounds), 70025fdd593SJeykumar Sankaran TP_STRUCT__entry( 70125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 70225fdd593SJeykumar Sankaran __field( int, mixer ) 703f65f035fSSean Paul __field_struct( struct drm_rect, bounds ) 70425fdd593SJeykumar Sankaran ), 70525fdd593SJeykumar Sankaran TP_fast_assign( 70625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 70725fdd593SJeykumar Sankaran __entry->mixer = mixer; 708f65f035fSSean Paul __entry->bounds = *bounds; 70925fdd593SJeykumar Sankaran ), 71025fdd593SJeykumar Sankaran TP_printk("id:%u mixer:%d bounds:" DRM_RECT_FMT, __entry->drm_id, 711f65f035fSSean Paul __entry->mixer, DRM_RECT_ARG(&__entry->bounds)) 71225fdd593SJeykumar Sankaran ); 71325fdd593SJeykumar Sankaran 71425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_vblank_enable, 71525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, uint32_t enc_id, bool enable, 71625fdd593SJeykumar Sankaran struct dpu_crtc *crtc), 71725fdd593SJeykumar Sankaran TP_ARGS(drm_id, enc_id, enable, crtc), 71825fdd593SJeykumar Sankaran TP_STRUCT__entry( 71925fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 72025fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 72125fdd593SJeykumar Sankaran __field( bool, enable ) 722f65f035fSSean Paul __field( bool, enabled ) 72325fdd593SJeykumar Sankaran ), 72425fdd593SJeykumar Sankaran TP_fast_assign( 72525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 72625fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 72725fdd593SJeykumar Sankaran __entry->enable = enable; 728f65f035fSSean Paul __entry->enabled = crtc->enabled; 72925fdd593SJeykumar Sankaran ), 7303e46c5dfSSean Paul TP_printk("id:%u encoder:%u enable:%s state{enabled:%s}", 73125fdd593SJeykumar Sankaran __entry->drm_id, __entry->enc_id, 73225fdd593SJeykumar Sankaran __entry->enable ? "true" : "false", 7333e46c5dfSSean Paul __entry->enabled ? "true" : "false") 73425fdd593SJeykumar Sankaran ); 73525fdd593SJeykumar Sankaran 73625fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_crtc_enable_template, 73725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 73825fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc), 73925fdd593SJeykumar Sankaran TP_STRUCT__entry( 74025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 74125fdd593SJeykumar Sankaran __field( bool, enable ) 742f65f035fSSean Paul __field( bool, enabled ) 74325fdd593SJeykumar Sankaran ), 74425fdd593SJeykumar Sankaran TP_fast_assign( 74525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 74625fdd593SJeykumar Sankaran __entry->enable = enable; 747f65f035fSSean Paul __entry->enabled = crtc->enabled; 74825fdd593SJeykumar Sankaran ), 7493e46c5dfSSean Paul TP_printk("id:%u enable:%s state{enabled:%s}", 75025fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false", 7513e46c5dfSSean Paul __entry->enabled ? "true" : "false") 75225fdd593SJeykumar Sankaran ); 75325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_enable, 75425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 75525fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 75625fdd593SJeykumar Sankaran ); 75725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_disable, 75825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 75925fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 76025fdd593SJeykumar Sankaran ); 76125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_vblank, 76225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 76325fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 76425fdd593SJeykumar Sankaran ); 76525fdd593SJeykumar Sankaran 76625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_disable_frame_pending, 76725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int frame_pending), 76825fdd593SJeykumar Sankaran TP_ARGS(drm_id, frame_pending), 76925fdd593SJeykumar Sankaran TP_STRUCT__entry( 77025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 77125fdd593SJeykumar Sankaran __field( int, frame_pending ) 77225fdd593SJeykumar Sankaran ), 77325fdd593SJeykumar Sankaran TP_fast_assign( 77425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 77525fdd593SJeykumar Sankaran __entry->frame_pending = frame_pending; 77625fdd593SJeykumar Sankaran ), 77725fdd593SJeykumar Sankaran TP_printk("id:%u frame_pending:%d", __entry->drm_id, 77825fdd593SJeykumar Sankaran __entry->frame_pending) 77925fdd593SJeykumar Sankaran ); 78025fdd593SJeykumar Sankaran 78125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_set_scanout, 78274fd7fdaSDmitry Baryshkov TP_PROTO(struct dpu_sw_pipe *pipe, struct dpu_hw_fmt_layout *layout), 78374fd7fdaSDmitry Baryshkov TP_ARGS(pipe, layout), 78425fdd593SJeykumar Sankaran TP_STRUCT__entry( 78525fdd593SJeykumar Sankaran __field( enum dpu_sspp, index ) 786f65f035fSSean Paul __field_struct( struct dpu_hw_fmt_layout, layout ) 78725fdd593SJeykumar Sankaran __field( enum dpu_sspp_multirect_index, multirect_index) 78825fdd593SJeykumar Sankaran ), 78925fdd593SJeykumar Sankaran TP_fast_assign( 79074fd7fdaSDmitry Baryshkov __entry->index = pipe->sspp->idx; 791f65f035fSSean Paul __entry->layout = *layout; 79274fd7fdaSDmitry Baryshkov __entry->multirect_index = pipe->multirect_index; 79325fdd593SJeykumar Sankaran ), 79425fdd593SJeykumar Sankaran TP_printk("index:%d layout:{%ux%u @ [%u/%u, %u/%u, %u/%u, %u/%u]} " 795f65f035fSSean Paul "multirect_index:%d", __entry->index, __entry->layout.width, 796f65f035fSSean Paul __entry->layout.height, __entry->layout.plane_addr[0], 797f65f035fSSean Paul __entry->layout.plane_size[0], 798f65f035fSSean Paul __entry->layout.plane_addr[1], 799f65f035fSSean Paul __entry->layout.plane_size[1], 800f65f035fSSean Paul __entry->layout.plane_addr[2], 801f65f035fSSean Paul __entry->layout.plane_size[2], 802f65f035fSSean Paul __entry->layout.plane_addr[3], 803f65f035fSSean Paul __entry->layout.plane_size[3], __entry->multirect_index) 80425fdd593SJeykumar Sankaran ); 80525fdd593SJeykumar Sankaran 80625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_disable, 80725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool is_virtual, uint32_t multirect_mode), 80825fdd593SJeykumar Sankaran TP_ARGS(drm_id, is_virtual, multirect_mode), 80925fdd593SJeykumar Sankaran TP_STRUCT__entry( 81025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 81125fdd593SJeykumar Sankaran __field( bool, is_virtual ) 81225fdd593SJeykumar Sankaran __field( uint32_t, multirect_mode ) 81325fdd593SJeykumar Sankaran ), 81425fdd593SJeykumar Sankaran TP_fast_assign( 81525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 81625fdd593SJeykumar Sankaran __entry->is_virtual = is_virtual; 81725fdd593SJeykumar Sankaran __entry->multirect_mode = multirect_mode; 81825fdd593SJeykumar Sankaran ), 81925fdd593SJeykumar Sankaran TP_printk("id:%u is_virtual:%s multirect_mode:%u", __entry->drm_id, 82025fdd593SJeykumar Sankaran __entry->is_virtual ? "true" : "false", 82125fdd593SJeykumar Sankaran __entry->multirect_mode) 82225fdd593SJeykumar Sankaran ); 82325fdd593SJeykumar Sankaran 82425fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_rm_iter_template, 8251a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8261a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id), 82725fdd593SJeykumar Sankaran TP_STRUCT__entry( 82825fdd593SJeykumar Sankaran __field( uint32_t, id ) 82925fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 83025fdd593SJeykumar Sankaran ), 83125fdd593SJeykumar Sankaran TP_fast_assign( 83225fdd593SJeykumar Sankaran __entry->id = id; 83325fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 83425fdd593SJeykumar Sankaran ), 8351a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u", __entry->id, __entry->enc_id) 83625fdd593SJeykumar Sankaran ); 83725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, 8381a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8391a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 84025fdd593SJeykumar Sankaran ); 84125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, 8421a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8431a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 84425fdd593SJeykumar Sankaran ); 84525fdd593SJeykumar Sankaran 84625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_rm_reserve_lms, 8471a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id, uint32_t pp_id), 8481a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id, pp_id), 84925fdd593SJeykumar Sankaran TP_STRUCT__entry( 85025fdd593SJeykumar Sankaran __field( uint32_t, id ) 85125fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 85225fdd593SJeykumar Sankaran __field( uint32_t, pp_id ) 85325fdd593SJeykumar Sankaran ), 85425fdd593SJeykumar Sankaran TP_fast_assign( 85525fdd593SJeykumar Sankaran __entry->id = id; 85625fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 85725fdd593SJeykumar Sankaran __entry->pp_id = pp_id; 85825fdd593SJeykumar Sankaran ), 8591a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u pp_id:%u", __entry->id, 8601a5e1778SJeykumar Sankaran __entry->enc_id, __entry->pp_id) 86125fdd593SJeykumar Sankaran ); 86225fdd593SJeykumar Sankaran 86325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_vbif_wait_xin_halt_fail, 86425fdd593SJeykumar Sankaran TP_PROTO(enum dpu_vbif index, u32 xin_id), 86525fdd593SJeykumar Sankaran TP_ARGS(index, xin_id), 86625fdd593SJeykumar Sankaran TP_STRUCT__entry( 86725fdd593SJeykumar Sankaran __field( enum dpu_vbif, index ) 86825fdd593SJeykumar Sankaran __field( u32, xin_id ) 86925fdd593SJeykumar Sankaran ), 87025fdd593SJeykumar Sankaran TP_fast_assign( 87125fdd593SJeykumar Sankaran __entry->index = index; 87225fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 87325fdd593SJeykumar Sankaran ), 87425fdd593SJeykumar Sankaran TP_printk("index:%d xin_id:%u", __entry->index, __entry->xin_id) 87525fdd593SJeykumar Sankaran ); 87625fdd593SJeykumar Sankaran 87725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_pp_connect_ext_te, 87825fdd593SJeykumar Sankaran TP_PROTO(enum dpu_pingpong pp, u32 cfg), 87925fdd593SJeykumar Sankaran TP_ARGS(pp, cfg), 88025fdd593SJeykumar Sankaran TP_STRUCT__entry( 88125fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 88225fdd593SJeykumar Sankaran __field( u32, cfg ) 88325fdd593SJeykumar Sankaran ), 88425fdd593SJeykumar Sankaran TP_fast_assign( 88525fdd593SJeykumar Sankaran __entry->pp = pp; 88625fdd593SJeykumar Sankaran __entry->cfg = cfg; 88725fdd593SJeykumar Sankaran ), 88825fdd593SJeykumar Sankaran TP_printk("pp:%d cfg:%u", __entry->pp, __entry->cfg) 88925fdd593SJeykumar Sankaran ); 89025fdd593SJeykumar Sankaran 891e955a3f0SMarijn Suijten TRACE_EVENT(dpu_intf_connect_ext_te, 892e955a3f0SMarijn Suijten TP_PROTO(enum dpu_intf intf, u32 cfg), 893e955a3f0SMarijn Suijten TP_ARGS(intf, cfg), 894e955a3f0SMarijn Suijten TP_STRUCT__entry( 895e955a3f0SMarijn Suijten __field( enum dpu_intf, intf ) 896e955a3f0SMarijn Suijten __field( u32, cfg ) 897e955a3f0SMarijn Suijten ), 898e955a3f0SMarijn Suijten TP_fast_assign( 899e955a3f0SMarijn Suijten __entry->intf = intf; 900e955a3f0SMarijn Suijten __entry->cfg = cfg; 901e955a3f0SMarijn Suijten ), 902e955a3f0SMarijn Suijten TP_printk("intf:%d cfg:%u", __entry->intf, __entry->cfg) 903e955a3f0SMarijn Suijten ); 904e955a3f0SMarijn Suijten 905c929ac60SDmitry Baryshkov TRACE_EVENT(dpu_core_irq_register_callback, 9066be6ece9SDmitry Baryshkov TP_PROTO(unsigned int irq_reg, unsigned int irq_bit, void *callback), 9076be6ece9SDmitry Baryshkov TP_ARGS(irq_reg, irq_bit, callback), 90825fdd593SJeykumar Sankaran TP_STRUCT__entry( 9096be6ece9SDmitry Baryshkov __field( unsigned int, irq_reg ) 9106be6ece9SDmitry Baryshkov __field( unsigned int, irq_bit ) 911c929ac60SDmitry Baryshkov __field( void *, callback) 91225fdd593SJeykumar Sankaran ), 91325fdd593SJeykumar Sankaran TP_fast_assign( 9146be6ece9SDmitry Baryshkov __entry->irq_reg = irq_reg; 9156be6ece9SDmitry Baryshkov __entry->irq_bit = irq_bit; 91625fdd593SJeykumar Sankaran __entry->callback = callback; 91725fdd593SJeykumar Sankaran ), 9186be6ece9SDmitry Baryshkov TP_printk("IRQ=[%d, %d] callback:%ps", __entry->irq_reg, __entry->irq_bit, 91925fdd593SJeykumar Sankaran __entry->callback) 92025fdd593SJeykumar Sankaran ); 921c929ac60SDmitry Baryshkov 922c929ac60SDmitry Baryshkov TRACE_EVENT(dpu_core_irq_unregister_callback, 9236be6ece9SDmitry Baryshkov TP_PROTO(unsigned int irq_reg, unsigned int irq_bit), 9246be6ece9SDmitry Baryshkov TP_ARGS(irq_reg, irq_bit), 925c929ac60SDmitry Baryshkov TP_STRUCT__entry( 9266be6ece9SDmitry Baryshkov __field( unsigned int, irq_reg ) 9276be6ece9SDmitry Baryshkov __field( unsigned int, irq_bit ) 928c929ac60SDmitry Baryshkov ), 929c929ac60SDmitry Baryshkov TP_fast_assign( 9306be6ece9SDmitry Baryshkov __entry->irq_reg = irq_reg; 9316be6ece9SDmitry Baryshkov __entry->irq_bit = irq_bit; 932c929ac60SDmitry Baryshkov ), 9336be6ece9SDmitry Baryshkov TP_printk("IRQ=[%d, %d]", __entry->irq_reg, __entry->irq_bit) 93425fdd593SJeykumar Sankaran ); 93525fdd593SJeykumar Sankaran 93625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_core_perf_update_clk, 93725fdd593SJeykumar Sankaran TP_PROTO(struct drm_device *dev, bool stop_req, u64 clk_rate), 93825fdd593SJeykumar Sankaran TP_ARGS(dev, stop_req, clk_rate), 93925fdd593SJeykumar Sankaran TP_STRUCT__entry( 940f65f035fSSean Paul __string( dev_name, dev->unique ) 94125fdd593SJeykumar Sankaran __field( bool, stop_req ) 94225fdd593SJeykumar Sankaran __field( u64, clk_rate ) 94325fdd593SJeykumar Sankaran ), 94425fdd593SJeykumar Sankaran TP_fast_assign( 945*2c92ca84SSteven Rostedt (Google) __assign_str(dev_name); 94625fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 94725fdd593SJeykumar Sankaran __entry->clk_rate = clk_rate; 94825fdd593SJeykumar Sankaran ), 949f65f035fSSean Paul TP_printk("dev:%s stop_req:%s clk_rate:%llu", __get_str(dev_name), 95025fdd593SJeykumar Sankaran __entry->stop_req ? "true" : "false", __entry->clk_rate) 95125fdd593SJeykumar Sankaran ); 95225fdd593SJeykumar Sankaran 953812eeeb6SSean Paul TRACE_EVENT(dpu_hw_ctl_update_pending_flush, 954812eeeb6SSean Paul TP_PROTO(u32 new_bits, u32 pending_mask), 955812eeeb6SSean Paul TP_ARGS(new_bits, pending_mask), 956812eeeb6SSean Paul TP_STRUCT__entry( 957812eeeb6SSean Paul __field( u32, new_bits ) 958812eeeb6SSean Paul __field( u32, pending_mask ) 959812eeeb6SSean Paul ), 960812eeeb6SSean Paul TP_fast_assign( 961812eeeb6SSean Paul __entry->new_bits = new_bits; 962812eeeb6SSean Paul __entry->pending_mask = pending_mask; 963812eeeb6SSean Paul ), 964812eeeb6SSean Paul TP_printk("new=%x existing=%x", __entry->new_bits, 965812eeeb6SSean Paul __entry->pending_mask) 966812eeeb6SSean Paul ); 967812eeeb6SSean Paul 968812eeeb6SSean Paul DECLARE_EVENT_CLASS(dpu_hw_ctl_pending_flush_template, 969812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 970812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush), 971812eeeb6SSean Paul TP_STRUCT__entry( 972812eeeb6SSean Paul __field( u32, pending_mask ) 973812eeeb6SSean Paul __field( u32, ctl_flush ) 974812eeeb6SSean Paul ), 975812eeeb6SSean Paul TP_fast_assign( 976812eeeb6SSean Paul __entry->pending_mask = pending_mask; 977812eeeb6SSean Paul __entry->ctl_flush = ctl_flush; 978812eeeb6SSean Paul ), 979812eeeb6SSean Paul TP_printk("pending_mask=%x CTL_FLUSH=%x", __entry->pending_mask, 980812eeeb6SSean Paul __entry->ctl_flush) 981812eeeb6SSean Paul ); 982812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_clear_pending_flush, 983812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 984812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 985812eeeb6SSean Paul ); 986812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, 987812eeeb6SSean Paul dpu_hw_ctl_trigger_pending_flush, 988812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 989812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 990812eeeb6SSean Paul ); 991812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_prepare, 992812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 993812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 994812eeeb6SSean Paul ); 995812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_start, 996812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 997812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 998812eeeb6SSean Paul ); 999812eeeb6SSean Paul 100025fdd593SJeykumar Sankaran #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) 100125fdd593SJeykumar Sankaran #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) 100225fdd593SJeykumar Sankaran #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__) 100325fdd593SJeykumar Sankaran 100425fdd593SJeykumar Sankaran #define DPU_ATRACE_INT(name, value) \ 100525fdd593SJeykumar Sankaran trace_dpu_trace_counter(current->tgid, name, value) 100625fdd593SJeykumar Sankaran 100725fdd593SJeykumar Sankaran #endif /* _DPU_TRACE_H_ */ 100825fdd593SJeykumar Sankaran 100925fdd593SJeykumar Sankaran /* This part must be outside protection */ 101025fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_PATH 101125fdd593SJeykumar Sankaran #define TRACE_INCLUDE_PATH . 101225fdd593SJeykumar Sankaran #include <trace/define_trace.h> 1013