125fdd593SJeykumar Sankaran /* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. 225fdd593SJeykumar Sankaran * 325fdd593SJeykumar Sankaran * This program is free software; you can redistribute it and/or modify 425fdd593SJeykumar Sankaran * it under the terms of the GNU General Public License version 2 and 525fdd593SJeykumar Sankaran * only version 2 as published by the Free Software Foundation. 625fdd593SJeykumar Sankaran * 725fdd593SJeykumar Sankaran * This program is distributed in the hope that it will be useful, 825fdd593SJeykumar Sankaran * but WITHOUT ANY WARRANTY; without even the implied warranty of 925fdd593SJeykumar Sankaran * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1025fdd593SJeykumar Sankaran * GNU General Public License for more details. 1125fdd593SJeykumar Sankaran */ 1225fdd593SJeykumar Sankaran 1325fdd593SJeykumar Sankaran #if !defined(_DPU_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 1425fdd593SJeykumar Sankaran #define _DPU_TRACE_H_ 1525fdd593SJeykumar Sankaran 1625fdd593SJeykumar Sankaran #include <linux/stringify.h> 1725fdd593SJeykumar Sankaran #include <linux/types.h> 1825fdd593SJeykumar Sankaran #include <linux/tracepoint.h> 1925fdd593SJeykumar Sankaran 2025fdd593SJeykumar Sankaran #include <drm/drm_rect.h> 2125fdd593SJeykumar Sankaran #include "dpu_crtc.h" 2225fdd593SJeykumar Sankaran #include "dpu_encoder_phys.h" 2325fdd593SJeykumar Sankaran #include "dpu_hw_mdss.h" 2425fdd593SJeykumar Sankaran #include "dpu_hw_vbif.h" 2525fdd593SJeykumar Sankaran #include "dpu_plane.h" 2625fdd593SJeykumar Sankaran 2725fdd593SJeykumar Sankaran #undef TRACE_SYSTEM 2825fdd593SJeykumar Sankaran #define TRACE_SYSTEM dpu 2925fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_FILE 3025fdd593SJeykumar Sankaran #define TRACE_INCLUDE_FILE dpu_trace 3125fdd593SJeykumar Sankaran 3225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_set_qos_luts, 3325fdd593SJeykumar Sankaran TP_PROTO(u32 pnum, u32 fmt, bool rt, u32 fl, 3425fdd593SJeykumar Sankaran u32 lut, u32 lut_usage), 3525fdd593SJeykumar Sankaran TP_ARGS(pnum, fmt, rt, fl, lut, lut_usage), 3625fdd593SJeykumar Sankaran TP_STRUCT__entry( 3725fdd593SJeykumar Sankaran __field(u32, pnum) 3825fdd593SJeykumar Sankaran __field(u32, fmt) 3925fdd593SJeykumar Sankaran __field(bool, rt) 4025fdd593SJeykumar Sankaran __field(u32, fl) 4125fdd593SJeykumar Sankaran __field(u64, lut) 4225fdd593SJeykumar Sankaran __field(u32, lut_usage) 4325fdd593SJeykumar Sankaran ), 4425fdd593SJeykumar Sankaran TP_fast_assign( 4525fdd593SJeykumar Sankaran __entry->pnum = pnum; 4625fdd593SJeykumar Sankaran __entry->fmt = fmt; 4725fdd593SJeykumar Sankaran __entry->rt = rt; 4825fdd593SJeykumar Sankaran __entry->fl = fl; 4925fdd593SJeykumar Sankaran __entry->lut = lut; 5025fdd593SJeykumar Sankaran __entry->lut_usage = lut_usage; 5125fdd593SJeykumar Sankaran ), 5225fdd593SJeykumar Sankaran TP_printk("pnum=%d fmt=%x rt=%d fl=%d lut=0x%llx lut_usage=%d", 5325fdd593SJeykumar Sankaran __entry->pnum, __entry->fmt, 5425fdd593SJeykumar Sankaran __entry->rt, __entry->fl, 5525fdd593SJeykumar Sankaran __entry->lut, __entry->lut_usage) 5625fdd593SJeykumar Sankaran ); 5725fdd593SJeykumar Sankaran 5825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_set_danger_luts, 5925fdd593SJeykumar Sankaran TP_PROTO(u32 pnum, u32 fmt, u32 mode, u32 danger_lut, 6025fdd593SJeykumar Sankaran u32 safe_lut), 6125fdd593SJeykumar Sankaran TP_ARGS(pnum, fmt, mode, danger_lut, safe_lut), 6225fdd593SJeykumar Sankaran TP_STRUCT__entry( 6325fdd593SJeykumar Sankaran __field(u32, pnum) 6425fdd593SJeykumar Sankaran __field(u32, fmt) 6525fdd593SJeykumar Sankaran __field(u32, mode) 6625fdd593SJeykumar Sankaran __field(u32, danger_lut) 6725fdd593SJeykumar Sankaran __field(u32, safe_lut) 6825fdd593SJeykumar Sankaran ), 6925fdd593SJeykumar Sankaran TP_fast_assign( 7025fdd593SJeykumar Sankaran __entry->pnum = pnum; 7125fdd593SJeykumar Sankaran __entry->fmt = fmt; 7225fdd593SJeykumar Sankaran __entry->mode = mode; 7325fdd593SJeykumar Sankaran __entry->danger_lut = danger_lut; 7425fdd593SJeykumar Sankaran __entry->safe_lut = safe_lut; 7525fdd593SJeykumar Sankaran ), 7625fdd593SJeykumar Sankaran TP_printk("pnum=%d fmt=%x mode=%d luts[0x%x, 0x%x]", 7725fdd593SJeykumar Sankaran __entry->pnum, __entry->fmt, 7825fdd593SJeykumar Sankaran __entry->mode, __entry->danger_lut, 7925fdd593SJeykumar Sankaran __entry->safe_lut) 8025fdd593SJeykumar Sankaran ); 8125fdd593SJeykumar Sankaran 8225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_set_ot, 8325fdd593SJeykumar Sankaran TP_PROTO(u32 pnum, u32 xin_id, u32 rd_lim, u32 vbif_idx), 8425fdd593SJeykumar Sankaran TP_ARGS(pnum, xin_id, rd_lim, vbif_idx), 8525fdd593SJeykumar Sankaran TP_STRUCT__entry( 8625fdd593SJeykumar Sankaran __field(u32, pnum) 8725fdd593SJeykumar Sankaran __field(u32, xin_id) 8825fdd593SJeykumar Sankaran __field(u32, rd_lim) 8925fdd593SJeykumar Sankaran __field(u32, vbif_idx) 9025fdd593SJeykumar Sankaran ), 9125fdd593SJeykumar Sankaran TP_fast_assign( 9225fdd593SJeykumar Sankaran __entry->pnum = pnum; 9325fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 9425fdd593SJeykumar Sankaran __entry->rd_lim = rd_lim; 9525fdd593SJeykumar Sankaran __entry->vbif_idx = vbif_idx; 9625fdd593SJeykumar Sankaran ), 9725fdd593SJeykumar Sankaran TP_printk("pnum:%d xin_id:%d ot:%d vbif:%d", 9825fdd593SJeykumar Sankaran __entry->pnum, __entry->xin_id, __entry->rd_lim, 9925fdd593SJeykumar Sankaran __entry->vbif_idx) 10025fdd593SJeykumar Sankaran ) 10125fdd593SJeykumar Sankaran 10225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_cmd_release_bw, 10325fdd593SJeykumar Sankaran TP_PROTO(u32 crtc_id), 10425fdd593SJeykumar Sankaran TP_ARGS(crtc_id), 10525fdd593SJeykumar Sankaran TP_STRUCT__entry( 10625fdd593SJeykumar Sankaran __field(u32, crtc_id) 10725fdd593SJeykumar Sankaran ), 10825fdd593SJeykumar Sankaran TP_fast_assign( 10925fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 11025fdd593SJeykumar Sankaran ), 11125fdd593SJeykumar Sankaran TP_printk("crtc:%d", __entry->crtc_id) 11225fdd593SJeykumar Sankaran ); 11325fdd593SJeykumar Sankaran 11425fdd593SJeykumar Sankaran TRACE_EVENT(tracing_mark_write, 11525fdd593SJeykumar Sankaran TP_PROTO(int pid, const char *name, bool trace_begin), 11625fdd593SJeykumar Sankaran TP_ARGS(pid, name, trace_begin), 11725fdd593SJeykumar Sankaran TP_STRUCT__entry( 11825fdd593SJeykumar Sankaran __field(int, pid) 11925fdd593SJeykumar Sankaran __string(trace_name, name) 12025fdd593SJeykumar Sankaran __field(bool, trace_begin) 12125fdd593SJeykumar Sankaran ), 12225fdd593SJeykumar Sankaran TP_fast_assign( 12325fdd593SJeykumar Sankaran __entry->pid = pid; 12425fdd593SJeykumar Sankaran __assign_str(trace_name, name); 12525fdd593SJeykumar Sankaran __entry->trace_begin = trace_begin; 12625fdd593SJeykumar Sankaran ), 12725fdd593SJeykumar Sankaran TP_printk("%s|%d|%s", __entry->trace_begin ? "B" : "E", 12825fdd593SJeykumar Sankaran __entry->pid, __get_str(trace_name)) 12925fdd593SJeykumar Sankaran ) 13025fdd593SJeykumar Sankaran 13125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_trace_counter, 13225fdd593SJeykumar Sankaran TP_PROTO(int pid, char *name, int value), 13325fdd593SJeykumar Sankaran TP_ARGS(pid, name, value), 13425fdd593SJeykumar Sankaran TP_STRUCT__entry( 13525fdd593SJeykumar Sankaran __field(int, pid) 13625fdd593SJeykumar Sankaran __string(counter_name, name) 13725fdd593SJeykumar Sankaran __field(int, value) 13825fdd593SJeykumar Sankaran ), 13925fdd593SJeykumar Sankaran TP_fast_assign( 14025fdd593SJeykumar Sankaran __entry->pid = current->tgid; 14125fdd593SJeykumar Sankaran __assign_str(counter_name, name); 14225fdd593SJeykumar Sankaran __entry->value = value; 14325fdd593SJeykumar Sankaran ), 14425fdd593SJeykumar Sankaran TP_printk("%d|%s|%d", __entry->pid, 14525fdd593SJeykumar Sankaran __get_str(counter_name), __entry->value) 14625fdd593SJeykumar Sankaran ) 14725fdd593SJeykumar Sankaran 14825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_crtc_update, 149*cb88482eSJayant Shekhar TP_PROTO(u32 crtc, u64 bw_ctl, u32 core_clk_rate, 150*cb88482eSJayant Shekhar bool stop_req, bool update_bus, bool update_clk), 151*cb88482eSJayant Shekhar TP_ARGS(crtc, bw_ctl, core_clk_rate, stop_req, update_bus, update_clk), 15225fdd593SJeykumar Sankaran TP_STRUCT__entry( 15325fdd593SJeykumar Sankaran __field(u32, crtc) 154*cb88482eSJayant Shekhar __field(u64, bw_ctl) 15525fdd593SJeykumar Sankaran __field(u32, core_clk_rate) 15625fdd593SJeykumar Sankaran __field(bool, stop_req) 15725fdd593SJeykumar Sankaran __field(u32, update_bus) 15825fdd593SJeykumar Sankaran __field(u32, update_clk) 15925fdd593SJeykumar Sankaran ), 16025fdd593SJeykumar Sankaran TP_fast_assign( 16125fdd593SJeykumar Sankaran __entry->crtc = crtc; 162*cb88482eSJayant Shekhar __entry->bw_ctl = bw_ctl; 16325fdd593SJeykumar Sankaran __entry->core_clk_rate = core_clk_rate; 16425fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 16525fdd593SJeykumar Sankaran __entry->update_bus = update_bus; 16625fdd593SJeykumar Sankaran __entry->update_clk = update_clk; 16725fdd593SJeykumar Sankaran ), 16825fdd593SJeykumar Sankaran TP_printk( 169*cb88482eSJayant Shekhar "crtc=%d bw_ctl=%llu clk_rate=%u stop_req=%d u_bus=%d u_clk=%d", 17025fdd593SJeykumar Sankaran __entry->crtc, 171*cb88482eSJayant Shekhar __entry->bw_ctl, 17225fdd593SJeykumar Sankaran __entry->core_clk_rate, 17325fdd593SJeykumar Sankaran __entry->stop_req, 17425fdd593SJeykumar Sankaran __entry->update_bus, 17525fdd593SJeykumar Sankaran __entry->update_clk) 17625fdd593SJeykumar Sankaran ); 17725fdd593SJeykumar Sankaran 17825fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_irq_template, 17925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 18025fdd593SJeykumar Sankaran int irq_idx), 18125fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx), 18225fdd593SJeykumar Sankaran TP_STRUCT__entry( 18325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 18425fdd593SJeykumar Sankaran __field( enum dpu_intr_idx, intr_idx ) 18525fdd593SJeykumar Sankaran __field( int, hw_idx ) 18625fdd593SJeykumar Sankaran __field( int, irq_idx ) 18725fdd593SJeykumar Sankaran ), 18825fdd593SJeykumar Sankaran TP_fast_assign( 18925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 19025fdd593SJeykumar Sankaran __entry->intr_idx = intr_idx; 19125fdd593SJeykumar Sankaran __entry->hw_idx = hw_idx; 19225fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 19325fdd593SJeykumar Sankaran ), 19425fdd593SJeykumar Sankaran TP_printk("id=%u, intr=%d, hw=%d, irq=%d", 19525fdd593SJeykumar Sankaran __entry->drm_id, __entry->intr_idx, __entry->hw_idx, 19625fdd593SJeykumar Sankaran __entry->irq_idx) 19725fdd593SJeykumar Sankaran ); 19825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_irq_template, dpu_enc_irq_register_success, 19925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 20025fdd593SJeykumar Sankaran int irq_idx), 20125fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx) 20225fdd593SJeykumar Sankaran ); 20325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_irq_template, dpu_enc_irq_unregister_success, 20425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 20525fdd593SJeykumar Sankaran int irq_idx), 20625fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx) 20725fdd593SJeykumar Sankaran ); 20825fdd593SJeykumar Sankaran 20925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_irq_wait_success, 21025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 21125fdd593SJeykumar Sankaran int irq_idx, enum dpu_pingpong pp_idx, int atomic_cnt), 21225fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx, pp_idx, atomic_cnt), 21325fdd593SJeykumar Sankaran TP_STRUCT__entry( 21425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 21525fdd593SJeykumar Sankaran __field( enum dpu_intr_idx, intr_idx ) 21625fdd593SJeykumar Sankaran __field( int, hw_idx ) 21725fdd593SJeykumar Sankaran __field( int, irq_idx ) 21825fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp_idx ) 21925fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 22025fdd593SJeykumar Sankaran ), 22125fdd593SJeykumar Sankaran TP_fast_assign( 22225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 22325fdd593SJeykumar Sankaran __entry->intr_idx = intr_idx; 22425fdd593SJeykumar Sankaran __entry->hw_idx = hw_idx; 22525fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 22625fdd593SJeykumar Sankaran __entry->pp_idx = pp_idx; 22725fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 22825fdd593SJeykumar Sankaran ), 22925fdd593SJeykumar Sankaran TP_printk("id=%u, intr=%d, hw=%d, irq=%d, pp=%d, atomic_cnt=%d", 23025fdd593SJeykumar Sankaran __entry->drm_id, __entry->intr_idx, __entry->hw_idx, 23125fdd593SJeykumar Sankaran __entry->irq_idx, __entry->pp_idx, __entry->atomic_cnt) 23225fdd593SJeykumar Sankaran ); 23325fdd593SJeykumar Sankaran 23425fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_drm_obj_template, 23525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 23625fdd593SJeykumar Sankaran TP_ARGS(drm_id), 23725fdd593SJeykumar Sankaran TP_STRUCT__entry( 23825fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 23925fdd593SJeykumar Sankaran ), 24025fdd593SJeykumar Sankaran TP_fast_assign( 24125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 24225fdd593SJeykumar Sankaran ), 24325fdd593SJeykumar Sankaran TP_printk("id=%u", __entry->drm_id) 24425fdd593SJeykumar Sankaran ); 24525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_atomic_check, 24625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 24725fdd593SJeykumar Sankaran TP_ARGS(drm_id) 24825fdd593SJeykumar Sankaran ); 24925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_mode_set, 25025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 25125fdd593SJeykumar Sankaran TP_ARGS(drm_id) 25225fdd593SJeykumar Sankaran ); 25325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_disable, 25425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 25525fdd593SJeykumar Sankaran TP_ARGS(drm_id) 25625fdd593SJeykumar Sankaran ); 25725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_kickoff, 25825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 25925fdd593SJeykumar Sankaran TP_ARGS(drm_id) 26025fdd593SJeykumar Sankaran ); 26125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_prepare_kickoff, 26225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 26325fdd593SJeykumar Sankaran TP_ARGS(drm_id) 26425fdd593SJeykumar Sankaran ); 26525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_prepare_kickoff_reset, 26625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 26725fdd593SJeykumar Sankaran TP_ARGS(drm_id) 26825fdd593SJeykumar Sankaran ); 26925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_flip, 27025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 27125fdd593SJeykumar Sankaran TP_ARGS(drm_id) 27225fdd593SJeykumar Sankaran ); 27325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_vblank_cb, 27425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 27525fdd593SJeykumar Sankaran TP_ARGS(drm_id) 27625fdd593SJeykumar Sankaran ); 27725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_commit, 27825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 27925fdd593SJeykumar Sankaran TP_ARGS(drm_id) 28025fdd593SJeykumar Sankaran ); 28125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_enc_enable, 28225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 28325fdd593SJeykumar Sankaran TP_ARGS(drm_id) 28425fdd593SJeykumar Sankaran ); 28525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_commit, 28625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 28725fdd593SJeykumar Sankaran TP_ARGS(drm_id) 28825fdd593SJeykumar Sankaran ); 28925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_wait_for_commit_done, 29025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 29125fdd593SJeykumar Sankaran TP_ARGS(drm_id) 29225fdd593SJeykumar Sankaran ); 2933cf63cd5SSean Paul DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_runtime_resume, 2943cf63cd5SSean Paul TP_PROTO(uint32_t drm_id), 2953cf63cd5SSean Paul TP_ARGS(drm_id) 2963cf63cd5SSean Paul ); 29725fdd593SJeykumar Sankaran 29825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_enable, 29925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int hdisplay, int vdisplay), 30025fdd593SJeykumar Sankaran TP_ARGS(drm_id, hdisplay, vdisplay), 30125fdd593SJeykumar Sankaran TP_STRUCT__entry( 30225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 30325fdd593SJeykumar Sankaran __field( int, hdisplay ) 30425fdd593SJeykumar Sankaran __field( int, vdisplay ) 30525fdd593SJeykumar Sankaran ), 30625fdd593SJeykumar Sankaran TP_fast_assign( 30725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 30825fdd593SJeykumar Sankaran __entry->hdisplay = hdisplay; 30925fdd593SJeykumar Sankaran __entry->vdisplay = vdisplay; 31025fdd593SJeykumar Sankaran ), 31125fdd593SJeykumar Sankaran TP_printk("id=%u, mode=%dx%d", 31225fdd593SJeykumar Sankaran __entry->drm_id, __entry->hdisplay, __entry->vdisplay) 31325fdd593SJeykumar Sankaran ); 31425fdd593SJeykumar Sankaran 31525fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_keyval_template, 31625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int val), 31725fdd593SJeykumar Sankaran TP_ARGS(drm_id, val), 31825fdd593SJeykumar Sankaran TP_STRUCT__entry( 31925fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 32025fdd593SJeykumar Sankaran __field( int, val ) 32125fdd593SJeykumar Sankaran ), 32225fdd593SJeykumar Sankaran TP_fast_assign( 32325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 32425fdd593SJeykumar Sankaran __entry->val = val; 32525fdd593SJeykumar Sankaran ), 32625fdd593SJeykumar Sankaran TP_printk("id=%u, val=%d", __entry->drm_id, __entry->val) 32725fdd593SJeykumar Sankaran ); 32825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_underrun_cb, 32925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int count), 33025fdd593SJeykumar Sankaran TP_ARGS(drm_id, count) 33125fdd593SJeykumar Sankaran ); 33225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_trigger_start, 33325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int ctl_idx), 33425fdd593SJeykumar Sankaran TP_ARGS(drm_id, ctl_idx) 33525fdd593SJeykumar Sankaran ); 33625fdd593SJeykumar Sankaran 33725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_atomic_check_flags, 33825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int flags, int private_flags), 33925fdd593SJeykumar Sankaran TP_ARGS(drm_id, flags, private_flags), 34025fdd593SJeykumar Sankaran TP_STRUCT__entry( 34125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 34225fdd593SJeykumar Sankaran __field( unsigned int, flags ) 34325fdd593SJeykumar Sankaran __field( int, private_flags ) 34425fdd593SJeykumar Sankaran ), 34525fdd593SJeykumar Sankaran TP_fast_assign( 34625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 34725fdd593SJeykumar Sankaran __entry->flags = flags; 34825fdd593SJeykumar Sankaran __entry->private_flags = private_flags; 34925fdd593SJeykumar Sankaran ), 35025fdd593SJeykumar Sankaran TP_printk("id=%u, flags=%u, private_flags=%d", 35125fdd593SJeykumar Sankaran __entry->drm_id, __entry->flags, __entry->private_flags) 35225fdd593SJeykumar Sankaran ); 35325fdd593SJeykumar Sankaran 35425fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_id_enable_template, 35525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 35625fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable), 35725fdd593SJeykumar Sankaran TP_STRUCT__entry( 35825fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 35925fdd593SJeykumar Sankaran __field( bool, enable ) 36025fdd593SJeykumar Sankaran ), 36125fdd593SJeykumar Sankaran TP_fast_assign( 36225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 36325fdd593SJeykumar Sankaran __entry->enable = enable; 36425fdd593SJeykumar Sankaran ), 36525fdd593SJeykumar Sankaran TP_printk("id=%u, enable=%s", 36625fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false") 36725fdd593SJeykumar Sankaran ); 36825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_rc_helper, 36925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 37025fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 37125fdd593SJeykumar Sankaran ); 37225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_vblank_cb, 37325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 37425fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 37525fdd593SJeykumar Sankaran ); 37625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_frame_event_cb, 37725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 37825fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 37925fdd593SJeykumar Sankaran ); 38025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_phys_cmd_connect_te, 38125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 38225fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 38325fdd593SJeykumar Sankaran ); 38425fdd593SJeykumar Sankaran 38525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_rc, 38625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 sw_event, bool idle_pc_supported, 38725fdd593SJeykumar Sankaran int rc_state, const char *stage), 38825fdd593SJeykumar Sankaran TP_ARGS(drm_id, sw_event, idle_pc_supported, rc_state, stage), 38925fdd593SJeykumar Sankaran TP_STRUCT__entry( 39025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 39125fdd593SJeykumar Sankaran __field( u32, sw_event ) 39225fdd593SJeykumar Sankaran __field( bool, idle_pc_supported ) 39325fdd593SJeykumar Sankaran __field( int, rc_state ) 39425fdd593SJeykumar Sankaran __string( stage_str, stage ) 39525fdd593SJeykumar Sankaran ), 39625fdd593SJeykumar Sankaran TP_fast_assign( 39725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 39825fdd593SJeykumar Sankaran __entry->sw_event = sw_event; 39925fdd593SJeykumar Sankaran __entry->idle_pc_supported = idle_pc_supported; 40025fdd593SJeykumar Sankaran __entry->rc_state = rc_state; 40125fdd593SJeykumar Sankaran __assign_str(stage_str, stage); 40225fdd593SJeykumar Sankaran ), 40325fdd593SJeykumar Sankaran TP_printk("%s: id:%u, sw_event:%d, idle_pc_supported:%s, rc_state:%d\n", 40425fdd593SJeykumar Sankaran __get_str(stage_str), __entry->drm_id, __entry->sw_event, 40525fdd593SJeykumar Sankaran __entry->idle_pc_supported ? "true" : "false", 40625fdd593SJeykumar Sankaran __entry->rc_state) 40725fdd593SJeykumar Sankaran ); 40825fdd593SJeykumar Sankaran 40925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb_not_busy, 41025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event, enum dpu_intf intf_idx), 41125fdd593SJeykumar Sankaran TP_ARGS(drm_id, event, intf_idx), 41225fdd593SJeykumar Sankaran TP_STRUCT__entry( 41325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 41425fdd593SJeykumar Sankaran __field( u32, event ) 41525fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 41625fdd593SJeykumar Sankaran ), 41725fdd593SJeykumar Sankaran TP_fast_assign( 41825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 41925fdd593SJeykumar Sankaran __entry->event = event; 42025fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 42125fdd593SJeykumar Sankaran ), 42225fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u, intf=%d", __entry->drm_id, __entry->event, 42325fdd593SJeykumar Sankaran __entry->intf_idx) 42425fdd593SJeykumar Sankaran ); 42525fdd593SJeykumar Sankaran 42625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb, 42725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int idx, 42825fdd593SJeykumar Sankaran unsigned long frame_busy_mask), 42925fdd593SJeykumar Sankaran TP_ARGS(drm_id, idx, frame_busy_mask), 43025fdd593SJeykumar Sankaran TP_STRUCT__entry( 43125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 43225fdd593SJeykumar Sankaran __field( unsigned int, idx ) 43325fdd593SJeykumar Sankaran __field( unsigned long, frame_busy_mask ) 43425fdd593SJeykumar Sankaran ), 43525fdd593SJeykumar Sankaran TP_fast_assign( 43625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 43725fdd593SJeykumar Sankaran __entry->idx = idx; 43825fdd593SJeykumar Sankaran __entry->frame_busy_mask = frame_busy_mask; 43925fdd593SJeykumar Sankaran ), 44025fdd593SJeykumar Sankaran TP_printk("id=%u, idx=%u, frame_busy_mask=%lx", __entry->drm_id, 44125fdd593SJeykumar Sankaran __entry->idx, __entry->frame_busy_mask) 44225fdd593SJeykumar Sankaran ); 44325fdd593SJeykumar Sankaran 44425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_trigger_flush, 44525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, 4461bb4e701SSean Paul int pending_kickoff_cnt, int ctl_idx, u32 extra_flush_bits, 4471bb4e701SSean Paul u32 pending_flush_ret), 44825fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, pending_kickoff_cnt, ctl_idx, 4491bb4e701SSean Paul extra_flush_bits, pending_flush_ret), 45025fdd593SJeykumar Sankaran TP_STRUCT__entry( 45125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 45225fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 45325fdd593SJeykumar Sankaran __field( int, pending_kickoff_cnt ) 45425fdd593SJeykumar Sankaran __field( int, ctl_idx ) 4551bb4e701SSean Paul __field( u32, extra_flush_bits ) 45625fdd593SJeykumar Sankaran __field( u32, pending_flush_ret ) 45725fdd593SJeykumar Sankaran ), 45825fdd593SJeykumar Sankaran TP_fast_assign( 45925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 46025fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 46125fdd593SJeykumar Sankaran __entry->pending_kickoff_cnt = pending_kickoff_cnt; 46225fdd593SJeykumar Sankaran __entry->ctl_idx = ctl_idx; 4631bb4e701SSean Paul __entry->extra_flush_bits = extra_flush_bits; 46425fdd593SJeykumar Sankaran __entry->pending_flush_ret = pending_flush_ret; 46525fdd593SJeykumar Sankaran ), 46625fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d " 4671bb4e701SSean Paul "extra_flush_bits=0x%x pending_flush_ret=0x%x", 4681bb4e701SSean Paul __entry->drm_id, __entry->intf_idx, 4691bb4e701SSean Paul __entry->pending_kickoff_cnt, __entry->ctl_idx, 4701bb4e701SSean Paul __entry->extra_flush_bits, __entry->pending_flush_ret) 47125fdd593SJeykumar Sankaran ); 47225fdd593SJeykumar Sankaran 47325fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_ktime_template, 47425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 47525fdd593SJeykumar Sankaran TP_ARGS(drm_id, time), 47625fdd593SJeykumar Sankaran TP_STRUCT__entry( 47725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 47825fdd593SJeykumar Sankaran __field( ktime_t, time ) 47925fdd593SJeykumar Sankaran ), 48025fdd593SJeykumar Sankaran TP_fast_assign( 48125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 48225fdd593SJeykumar Sankaran __entry->time = time; 48325fdd593SJeykumar Sankaran ), 48425fdd593SJeykumar Sankaran TP_printk("id=%u, time=%lld", __entry->drm_id, 48525fdd593SJeykumar Sankaran ktime_to_ms(__entry->time)) 48625fdd593SJeykumar Sankaran ); 48725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_vsync_event_work, 48825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 48925fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 49025fdd593SJeykumar Sankaran ); 49125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_early_kickoff, 49225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 49325fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 49425fdd593SJeykumar Sankaran ); 49525fdd593SJeykumar Sankaran 49625fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_id_event_template, 49725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 49825fdd593SJeykumar Sankaran TP_ARGS(drm_id, event), 49925fdd593SJeykumar Sankaran TP_STRUCT__entry( 50025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 50125fdd593SJeykumar Sankaran __field( u32, event ) 50225fdd593SJeykumar Sankaran ), 50325fdd593SJeykumar Sankaran TP_fast_assign( 50425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 50525fdd593SJeykumar Sankaran __entry->event = event; 50625fdd593SJeykumar Sankaran ), 50725fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u", __entry->drm_id, __entry->event) 50825fdd593SJeykumar Sankaran ); 50925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_enc_frame_done_timeout, 51025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 51125fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 51225fdd593SJeykumar Sankaran ); 51325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_cb, 51425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 51525fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 51625fdd593SJeykumar Sankaran ); 51725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_done, 51825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 51925fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 52025fdd593SJeykumar Sankaran ); 52125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_more_pending, 52225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 52325fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 52425fdd593SJeykumar Sankaran ); 52525fdd593SJeykumar Sankaran 52625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_wait_event_timeout, 52725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int32_t hw_id, int rc, s64 time, 52825fdd593SJeykumar Sankaran s64 expected_time, int atomic_cnt), 52925fdd593SJeykumar Sankaran TP_ARGS(drm_id, hw_id, rc, time, expected_time, atomic_cnt), 53025fdd593SJeykumar Sankaran TP_STRUCT__entry( 53125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 53225fdd593SJeykumar Sankaran __field( int32_t, hw_id ) 53325fdd593SJeykumar Sankaran __field( int, rc ) 53425fdd593SJeykumar Sankaran __field( s64, time ) 53525fdd593SJeykumar Sankaran __field( s64, expected_time ) 53625fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 53725fdd593SJeykumar Sankaran ), 53825fdd593SJeykumar Sankaran TP_fast_assign( 53925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 54025fdd593SJeykumar Sankaran __entry->hw_id = hw_id; 54125fdd593SJeykumar Sankaran __entry->rc = rc; 54225fdd593SJeykumar Sankaran __entry->time = time; 54325fdd593SJeykumar Sankaran __entry->expected_time = expected_time; 54425fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 54525fdd593SJeykumar Sankaran ), 54625fdd593SJeykumar Sankaran TP_printk("id=%u, hw_id=%d, rc=%d, time=%lld, expected=%lld cnt=%d", 54725fdd593SJeykumar Sankaran __entry->drm_id, __entry->hw_id, __entry->rc, __entry->time, 54825fdd593SJeykumar Sankaran __entry->expected_time, __entry->atomic_cnt) 54925fdd593SJeykumar Sankaran ); 55025fdd593SJeykumar Sankaran 55125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_irq_ctrl, 55225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, bool enable, 55325fdd593SJeykumar Sankaran int refcnt), 55425fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, enable, refcnt), 55525fdd593SJeykumar Sankaran TP_STRUCT__entry( 55625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 55725fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 55825fdd593SJeykumar Sankaran __field( bool, enable ) 55925fdd593SJeykumar Sankaran __field( int, refcnt ) 56025fdd593SJeykumar Sankaran ), 56125fdd593SJeykumar Sankaran TP_fast_assign( 56225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 56325fdd593SJeykumar Sankaran __entry->pp = pp; 56425fdd593SJeykumar Sankaran __entry->enable = enable; 56525fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 56625fdd593SJeykumar Sankaran ), 56725fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, enable=%s, refcnt=%d", __entry->drm_id, 56825fdd593SJeykumar Sankaran __entry->pp, __entry->enable ? "true" : "false", 56925fdd593SJeykumar Sankaran __entry->refcnt) 57025fdd593SJeykumar Sankaran ); 57125fdd593SJeykumar Sankaran 57225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pp_tx_done, 57325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int new_count, 57425fdd593SJeykumar Sankaran u32 event), 57525fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, new_count, event), 57625fdd593SJeykumar Sankaran TP_STRUCT__entry( 57725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 57825fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 57925fdd593SJeykumar Sankaran __field( int, new_count ) 58025fdd593SJeykumar Sankaran __field( u32, event ) 58125fdd593SJeykumar Sankaran ), 58225fdd593SJeykumar Sankaran TP_fast_assign( 58325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 58425fdd593SJeykumar Sankaran __entry->pp = pp; 58525fdd593SJeykumar Sankaran __entry->new_count = new_count; 58625fdd593SJeykumar Sankaran __entry->event = event; 58725fdd593SJeykumar Sankaran ), 58825fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, new_count=%d, event=%u", __entry->drm_id, 58925fdd593SJeykumar Sankaran __entry->pp, __entry->new_count, __entry->event) 59025fdd593SJeykumar Sankaran ); 59125fdd593SJeykumar Sankaran 59225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pdone_timeout, 59325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int timeout_count, 59425fdd593SJeykumar Sankaran int kickoff_count, u32 event), 59525fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, timeout_count, kickoff_count, event), 59625fdd593SJeykumar Sankaran TP_STRUCT__entry( 59725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 59825fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 59925fdd593SJeykumar Sankaran __field( int, timeout_count ) 60025fdd593SJeykumar Sankaran __field( int, kickoff_count ) 60125fdd593SJeykumar Sankaran __field( u32, event ) 60225fdd593SJeykumar Sankaran ), 60325fdd593SJeykumar Sankaran TP_fast_assign( 60425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 60525fdd593SJeykumar Sankaran __entry->pp = pp; 60625fdd593SJeykumar Sankaran __entry->timeout_count = timeout_count; 60725fdd593SJeykumar Sankaran __entry->kickoff_count = kickoff_count; 60825fdd593SJeykumar Sankaran __entry->event = event; 60925fdd593SJeykumar Sankaran ), 61025fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, timeout_count=%d, kickoff_count=%d, event=%u", 61125fdd593SJeykumar Sankaran __entry->drm_id, __entry->pp, __entry->timeout_count, 61225fdd593SJeykumar Sankaran __entry->kickoff_count, __entry->event) 61325fdd593SJeykumar Sankaran ); 61425fdd593SJeykumar Sankaran 61525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_post_kickoff, 61625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx), 61725fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx), 61825fdd593SJeykumar Sankaran TP_STRUCT__entry( 61925fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 62025fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 62125fdd593SJeykumar Sankaran ), 62225fdd593SJeykumar Sankaran TP_fast_assign( 62325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 62425fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 62525fdd593SJeykumar Sankaran ), 62625fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d", __entry->drm_id, __entry->intf_idx) 62725fdd593SJeykumar Sankaran ); 62825fdd593SJeykumar Sankaran 62925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_irq_ctrl, 63025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, bool enable, 63125fdd593SJeykumar Sankaran int refcnt), 63225fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, enable, refcnt), 63325fdd593SJeykumar Sankaran TP_STRUCT__entry( 63425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 63525fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 63625fdd593SJeykumar Sankaran __field( bool, enable ) 63725fdd593SJeykumar Sankaran __field( int, refcnt ) 63825fdd593SJeykumar Sankaran ), 63925fdd593SJeykumar Sankaran TP_fast_assign( 64025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 64125fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 64225fdd593SJeykumar Sankaran __entry->enable = enable; 64325fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 64425fdd593SJeykumar Sankaran ), 64525fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d enable=%s refcnt=%d", __entry->drm_id, 64625fdd593SJeykumar Sankaran __entry->intf_idx, __entry->enable ? "true" : "false", 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, 65325fdd593SJeykumar Sankaran uint32_t stage_idx, enum dpu_sspp sspp, uint32_t pixel_format, 65425fdd593SJeykumar Sankaran uint64_t modifier), 65525fdd593SJeykumar Sankaran TP_ARGS(crtc_id, plane_id, state, pstate, stage_idx, sspp, 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; 67925fdd593SJeykumar Sankaran __entry->sspp = sspp; 680f65f035fSSean Paul __entry->multirect_idx = pstate->multirect_index; 681f65f035fSSean Paul __entry->multirect_mode = pstate->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, 78225fdd593SJeykumar Sankaran TP_PROTO(enum dpu_sspp index, struct dpu_hw_fmt_layout *layout, 78325fdd593SJeykumar Sankaran enum dpu_sspp_multirect_index multirect_index), 78425fdd593SJeykumar Sankaran TP_ARGS(index, layout, multirect_index), 78525fdd593SJeykumar Sankaran TP_STRUCT__entry( 78625fdd593SJeykumar Sankaran __field( enum dpu_sspp, index ) 787f65f035fSSean Paul __field_struct( struct dpu_hw_fmt_layout, layout ) 78825fdd593SJeykumar Sankaran __field( enum dpu_sspp_multirect_index, multirect_index) 78925fdd593SJeykumar Sankaran ), 79025fdd593SJeykumar Sankaran TP_fast_assign( 79125fdd593SJeykumar Sankaran __entry->index = index; 792f65f035fSSean Paul __entry->layout = *layout; 79325fdd593SJeykumar Sankaran __entry->multirect_index = multirect_index; 79425fdd593SJeykumar Sankaran ), 79525fdd593SJeykumar Sankaran TP_printk("index:%d layout:{%ux%u @ [%u/%u, %u/%u, %u/%u, %u/%u]} " 796f65f035fSSean Paul "multirect_index:%d", __entry->index, __entry->layout.width, 797f65f035fSSean Paul __entry->layout.height, __entry->layout.plane_addr[0], 798f65f035fSSean Paul __entry->layout.plane_size[0], 799f65f035fSSean Paul __entry->layout.plane_addr[1], 800f65f035fSSean Paul __entry->layout.plane_size[1], 801f65f035fSSean Paul __entry->layout.plane_addr[2], 802f65f035fSSean Paul __entry->layout.plane_size[2], 803f65f035fSSean Paul __entry->layout.plane_addr[3], 804f65f035fSSean Paul __entry->layout.plane_size[3], __entry->multirect_index) 80525fdd593SJeykumar Sankaran ); 80625fdd593SJeykumar Sankaran 80725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_disable, 80825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool is_virtual, uint32_t multirect_mode), 80925fdd593SJeykumar Sankaran TP_ARGS(drm_id, is_virtual, multirect_mode), 81025fdd593SJeykumar Sankaran TP_STRUCT__entry( 81125fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 81225fdd593SJeykumar Sankaran __field( bool, is_virtual ) 81325fdd593SJeykumar Sankaran __field( uint32_t, multirect_mode ) 81425fdd593SJeykumar Sankaran ), 81525fdd593SJeykumar Sankaran TP_fast_assign( 81625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 81725fdd593SJeykumar Sankaran __entry->is_virtual = is_virtual; 81825fdd593SJeykumar Sankaran __entry->multirect_mode = multirect_mode; 81925fdd593SJeykumar Sankaran ), 82025fdd593SJeykumar Sankaran TP_printk("id:%u is_virtual:%s multirect_mode:%u", __entry->drm_id, 82125fdd593SJeykumar Sankaran __entry->is_virtual ? "true" : "false", 82225fdd593SJeykumar Sankaran __entry->multirect_mode) 82325fdd593SJeykumar Sankaran ); 82425fdd593SJeykumar Sankaran 82525fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_rm_iter_template, 8261a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8271a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id), 82825fdd593SJeykumar Sankaran TP_STRUCT__entry( 82925fdd593SJeykumar Sankaran __field( uint32_t, id ) 83025fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 83125fdd593SJeykumar Sankaran ), 83225fdd593SJeykumar Sankaran TP_fast_assign( 83325fdd593SJeykumar Sankaran __entry->id = id; 83425fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 83525fdd593SJeykumar Sankaran ), 8361a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u", __entry->id, __entry->enc_id) 83725fdd593SJeykumar Sankaran ); 83825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, 8391a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8401a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 84125fdd593SJeykumar Sankaran ); 84225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, 8431a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id), 8441a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id) 84525fdd593SJeykumar Sankaran ); 84625fdd593SJeykumar Sankaran 84725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_rm_reserve_lms, 8481a5e1778SJeykumar Sankaran TP_PROTO(uint32_t id, uint32_t enc_id, uint32_t pp_id), 8491a5e1778SJeykumar Sankaran TP_ARGS(id, enc_id, pp_id), 85025fdd593SJeykumar Sankaran TP_STRUCT__entry( 85125fdd593SJeykumar Sankaran __field( uint32_t, id ) 85225fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 85325fdd593SJeykumar Sankaran __field( uint32_t, pp_id ) 85425fdd593SJeykumar Sankaran ), 85525fdd593SJeykumar Sankaran TP_fast_assign( 85625fdd593SJeykumar Sankaran __entry->id = id; 85725fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 85825fdd593SJeykumar Sankaran __entry->pp_id = pp_id; 85925fdd593SJeykumar Sankaran ), 8601a5e1778SJeykumar Sankaran TP_printk("id:%d enc_id:%u pp_id:%u", __entry->id, 8611a5e1778SJeykumar Sankaran __entry->enc_id, __entry->pp_id) 86225fdd593SJeykumar Sankaran ); 86325fdd593SJeykumar Sankaran 86425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_vbif_wait_xin_halt_fail, 86525fdd593SJeykumar Sankaran TP_PROTO(enum dpu_vbif index, u32 xin_id), 86625fdd593SJeykumar Sankaran TP_ARGS(index, xin_id), 86725fdd593SJeykumar Sankaran TP_STRUCT__entry( 86825fdd593SJeykumar Sankaran __field( enum dpu_vbif, index ) 86925fdd593SJeykumar Sankaran __field( u32, xin_id ) 87025fdd593SJeykumar Sankaran ), 87125fdd593SJeykumar Sankaran TP_fast_assign( 87225fdd593SJeykumar Sankaran __entry->index = index; 87325fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 87425fdd593SJeykumar Sankaran ), 87525fdd593SJeykumar Sankaran TP_printk("index:%d xin_id:%u", __entry->index, __entry->xin_id) 87625fdd593SJeykumar Sankaran ); 87725fdd593SJeykumar Sankaran 87825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_pp_connect_ext_te, 87925fdd593SJeykumar Sankaran TP_PROTO(enum dpu_pingpong pp, u32 cfg), 88025fdd593SJeykumar Sankaran TP_ARGS(pp, cfg), 88125fdd593SJeykumar Sankaran TP_STRUCT__entry( 88225fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 88325fdd593SJeykumar Sankaran __field( u32, cfg ) 88425fdd593SJeykumar Sankaran ), 88525fdd593SJeykumar Sankaran TP_fast_assign( 88625fdd593SJeykumar Sankaran __entry->pp = pp; 88725fdd593SJeykumar Sankaran __entry->cfg = cfg; 88825fdd593SJeykumar Sankaran ), 88925fdd593SJeykumar Sankaran TP_printk("pp:%d cfg:%u", __entry->pp, __entry->cfg) 89025fdd593SJeykumar Sankaran ); 89125fdd593SJeykumar Sankaran 89225fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_core_irq_idx_cnt_template, 89325fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, int enable_count), 89425fdd593SJeykumar Sankaran TP_ARGS(irq_idx, enable_count), 89525fdd593SJeykumar Sankaran TP_STRUCT__entry( 89625fdd593SJeykumar Sankaran __field( int, irq_idx ) 89725fdd593SJeykumar Sankaran __field( int, enable_count ) 89825fdd593SJeykumar Sankaran ), 89925fdd593SJeykumar Sankaran TP_fast_assign( 90025fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 90125fdd593SJeykumar Sankaran __entry->enable_count = enable_count; 90225fdd593SJeykumar Sankaran ), 90325fdd593SJeykumar Sankaran TP_printk("irq_idx:%d enable_count:%u", __entry->irq_idx, 90425fdd593SJeykumar Sankaran __entry->enable_count) 90525fdd593SJeykumar Sankaran ); 90625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_idx_cnt_template, dpu_core_irq_enable_idx, 90725fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, int enable_count), 90825fdd593SJeykumar Sankaran TP_ARGS(irq_idx, enable_count) 90925fdd593SJeykumar Sankaran ); 91025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_idx_cnt_template, dpu_core_irq_disable_idx, 91125fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, int enable_count), 91225fdd593SJeykumar Sankaran TP_ARGS(irq_idx, enable_count) 91325fdd593SJeykumar Sankaran ); 91425fdd593SJeykumar Sankaran 91525fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_core_irq_callback_template, 91625fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, struct dpu_irq_callback *callback), 91725fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback), 91825fdd593SJeykumar Sankaran TP_STRUCT__entry( 91925fdd593SJeykumar Sankaran __field( int, irq_idx ) 92025fdd593SJeykumar Sankaran __field( struct dpu_irq_callback *, callback) 92125fdd593SJeykumar Sankaran ), 92225fdd593SJeykumar Sankaran TP_fast_assign( 92325fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 92425fdd593SJeykumar Sankaran __entry->callback = callback; 92525fdd593SJeykumar Sankaran ), 92625fdd593SJeykumar Sankaran TP_printk("irq_idx:%d callback:%pK", __entry->irq_idx, 92725fdd593SJeykumar Sankaran __entry->callback) 92825fdd593SJeykumar Sankaran ); 92925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_callback_template, dpu_core_irq_register_callback, 93025fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, struct dpu_irq_callback *callback), 93125fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback) 93225fdd593SJeykumar Sankaran ); 93325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_callback_template, dpu_core_irq_unregister_callback, 93425fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, struct dpu_irq_callback *callback), 93525fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback) 93625fdd593SJeykumar Sankaran ); 93725fdd593SJeykumar Sankaran 93825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_core_perf_update_clk, 93925fdd593SJeykumar Sankaran TP_PROTO(struct drm_device *dev, bool stop_req, u64 clk_rate), 94025fdd593SJeykumar Sankaran TP_ARGS(dev, stop_req, clk_rate), 94125fdd593SJeykumar Sankaran TP_STRUCT__entry( 942f65f035fSSean Paul __string( dev_name, dev->unique ) 94325fdd593SJeykumar Sankaran __field( bool, stop_req ) 94425fdd593SJeykumar Sankaran __field( u64, clk_rate ) 94525fdd593SJeykumar Sankaran ), 94625fdd593SJeykumar Sankaran TP_fast_assign( 947f65f035fSSean Paul __assign_str(dev_name, dev->unique); 94825fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 94925fdd593SJeykumar Sankaran __entry->clk_rate = clk_rate; 95025fdd593SJeykumar Sankaran ), 951f65f035fSSean Paul TP_printk("dev:%s stop_req:%s clk_rate:%llu", __get_str(dev_name), 95225fdd593SJeykumar Sankaran __entry->stop_req ? "true" : "false", __entry->clk_rate) 95325fdd593SJeykumar Sankaran ); 95425fdd593SJeykumar Sankaran 955812eeeb6SSean Paul TRACE_EVENT(dpu_hw_ctl_update_pending_flush, 956812eeeb6SSean Paul TP_PROTO(u32 new_bits, u32 pending_mask), 957812eeeb6SSean Paul TP_ARGS(new_bits, pending_mask), 958812eeeb6SSean Paul TP_STRUCT__entry( 959812eeeb6SSean Paul __field( u32, new_bits ) 960812eeeb6SSean Paul __field( u32, pending_mask ) 961812eeeb6SSean Paul ), 962812eeeb6SSean Paul TP_fast_assign( 963812eeeb6SSean Paul __entry->new_bits = new_bits; 964812eeeb6SSean Paul __entry->pending_mask = pending_mask; 965812eeeb6SSean Paul ), 966812eeeb6SSean Paul TP_printk("new=%x existing=%x", __entry->new_bits, 967812eeeb6SSean Paul __entry->pending_mask) 968812eeeb6SSean Paul ); 969812eeeb6SSean Paul 970812eeeb6SSean Paul DECLARE_EVENT_CLASS(dpu_hw_ctl_pending_flush_template, 971812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 972812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush), 973812eeeb6SSean Paul TP_STRUCT__entry( 974812eeeb6SSean Paul __field( u32, pending_mask ) 975812eeeb6SSean Paul __field( u32, ctl_flush ) 976812eeeb6SSean Paul ), 977812eeeb6SSean Paul TP_fast_assign( 978812eeeb6SSean Paul __entry->pending_mask = pending_mask; 979812eeeb6SSean Paul __entry->ctl_flush = ctl_flush; 980812eeeb6SSean Paul ), 981812eeeb6SSean Paul TP_printk("pending_mask=%x CTL_FLUSH=%x", __entry->pending_mask, 982812eeeb6SSean Paul __entry->ctl_flush) 983812eeeb6SSean Paul ); 984812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_clear_pending_flush, 985812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 986812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 987812eeeb6SSean Paul ); 988812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, 989812eeeb6SSean Paul dpu_hw_ctl_trigger_pending_flush, 990812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 991812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 992812eeeb6SSean Paul ); 993812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_prepare, 994812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 995812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 996812eeeb6SSean Paul ); 997812eeeb6SSean Paul DEFINE_EVENT(dpu_hw_ctl_pending_flush_template, dpu_hw_ctl_trigger_start, 998812eeeb6SSean Paul TP_PROTO(u32 pending_mask, u32 ctl_flush), 999812eeeb6SSean Paul TP_ARGS(pending_mask, ctl_flush) 1000812eeeb6SSean Paul ); 1001812eeeb6SSean Paul 100225fdd593SJeykumar Sankaran #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) 100325fdd593SJeykumar Sankaran #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) 100425fdd593SJeykumar Sankaran #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__) 100525fdd593SJeykumar Sankaran 100625fdd593SJeykumar Sankaran #define DPU_ATRACE_INT(name, value) \ 100725fdd593SJeykumar Sankaran trace_dpu_trace_counter(current->tgid, name, value) 100825fdd593SJeykumar Sankaran 100925fdd593SJeykumar Sankaran #endif /* _DPU_TRACE_H_ */ 101025fdd593SJeykumar Sankaran 101125fdd593SJeykumar Sankaran /* This part must be outside protection */ 101225fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_PATH 101325fdd593SJeykumar Sankaran #define TRACE_INCLUDE_PATH . 101425fdd593SJeykumar Sankaran #include <trace/define_trace.h> 1015