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_perf_update_bus, 10325fdd593SJeykumar Sankaran TP_PROTO(int client, unsigned long long ab_quota, 10425fdd593SJeykumar Sankaran unsigned long long ib_quota), 10525fdd593SJeykumar Sankaran TP_ARGS(client, ab_quota, ib_quota), 10625fdd593SJeykumar Sankaran TP_STRUCT__entry( 10725fdd593SJeykumar Sankaran __field(int, client) 10825fdd593SJeykumar Sankaran __field(u64, ab_quota) 10925fdd593SJeykumar Sankaran __field(u64, ib_quota) 11025fdd593SJeykumar Sankaran ), 11125fdd593SJeykumar Sankaran TP_fast_assign( 11225fdd593SJeykumar Sankaran __entry->client = client; 11325fdd593SJeykumar Sankaran __entry->ab_quota = ab_quota; 11425fdd593SJeykumar Sankaran __entry->ib_quota = ib_quota; 11525fdd593SJeykumar Sankaran ), 11625fdd593SJeykumar Sankaran TP_printk("Request client:%d ab=%llu ib=%llu", 11725fdd593SJeykumar Sankaran __entry->client, 11825fdd593SJeykumar Sankaran __entry->ab_quota, 11925fdd593SJeykumar Sankaran __entry->ib_quota) 12025fdd593SJeykumar Sankaran ) 12125fdd593SJeykumar Sankaran 12225fdd593SJeykumar Sankaran 12325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_cmd_release_bw, 12425fdd593SJeykumar Sankaran TP_PROTO(u32 crtc_id), 12525fdd593SJeykumar Sankaran TP_ARGS(crtc_id), 12625fdd593SJeykumar Sankaran TP_STRUCT__entry( 12725fdd593SJeykumar Sankaran __field(u32, crtc_id) 12825fdd593SJeykumar Sankaran ), 12925fdd593SJeykumar Sankaran TP_fast_assign( 13025fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 13125fdd593SJeykumar Sankaran ), 13225fdd593SJeykumar Sankaran TP_printk("crtc:%d", __entry->crtc_id) 13325fdd593SJeykumar Sankaran ); 13425fdd593SJeykumar Sankaran 13525fdd593SJeykumar Sankaran TRACE_EVENT(tracing_mark_write, 13625fdd593SJeykumar Sankaran TP_PROTO(int pid, const char *name, bool trace_begin), 13725fdd593SJeykumar Sankaran TP_ARGS(pid, name, trace_begin), 13825fdd593SJeykumar Sankaran TP_STRUCT__entry( 13925fdd593SJeykumar Sankaran __field(int, pid) 14025fdd593SJeykumar Sankaran __string(trace_name, name) 14125fdd593SJeykumar Sankaran __field(bool, trace_begin) 14225fdd593SJeykumar Sankaran ), 14325fdd593SJeykumar Sankaran TP_fast_assign( 14425fdd593SJeykumar Sankaran __entry->pid = pid; 14525fdd593SJeykumar Sankaran __assign_str(trace_name, name); 14625fdd593SJeykumar Sankaran __entry->trace_begin = trace_begin; 14725fdd593SJeykumar Sankaran ), 14825fdd593SJeykumar Sankaran TP_printk("%s|%d|%s", __entry->trace_begin ? "B" : "E", 14925fdd593SJeykumar Sankaran __entry->pid, __get_str(trace_name)) 15025fdd593SJeykumar Sankaran ) 15125fdd593SJeykumar Sankaran 15225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_trace_counter, 15325fdd593SJeykumar Sankaran TP_PROTO(int pid, char *name, int value), 15425fdd593SJeykumar Sankaran TP_ARGS(pid, name, value), 15525fdd593SJeykumar Sankaran TP_STRUCT__entry( 15625fdd593SJeykumar Sankaran __field(int, pid) 15725fdd593SJeykumar Sankaran __string(counter_name, name) 15825fdd593SJeykumar Sankaran __field(int, value) 15925fdd593SJeykumar Sankaran ), 16025fdd593SJeykumar Sankaran TP_fast_assign( 16125fdd593SJeykumar Sankaran __entry->pid = current->tgid; 16225fdd593SJeykumar Sankaran __assign_str(counter_name, name); 16325fdd593SJeykumar Sankaran __entry->value = value; 16425fdd593SJeykumar Sankaran ), 16525fdd593SJeykumar Sankaran TP_printk("%d|%s|%d", __entry->pid, 16625fdd593SJeykumar Sankaran __get_str(counter_name), __entry->value) 16725fdd593SJeykumar Sankaran ) 16825fdd593SJeykumar Sankaran 16925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_perf_crtc_update, 17025fdd593SJeykumar Sankaran TP_PROTO(u32 crtc, u64 bw_ctl_mnoc, u64 bw_ctl_llcc, 17125fdd593SJeykumar Sankaran u64 bw_ctl_ebi, u32 core_clk_rate, 17225fdd593SJeykumar Sankaran bool stop_req, u32 update_bus, u32 update_clk), 17325fdd593SJeykumar Sankaran TP_ARGS(crtc, bw_ctl_mnoc, bw_ctl_llcc, bw_ctl_ebi, core_clk_rate, 17425fdd593SJeykumar Sankaran stop_req, update_bus, update_clk), 17525fdd593SJeykumar Sankaran TP_STRUCT__entry( 17625fdd593SJeykumar Sankaran __field(u32, crtc) 17725fdd593SJeykumar Sankaran __field(u64, bw_ctl_mnoc) 17825fdd593SJeykumar Sankaran __field(u64, bw_ctl_llcc) 17925fdd593SJeykumar Sankaran __field(u64, bw_ctl_ebi) 18025fdd593SJeykumar Sankaran __field(u32, core_clk_rate) 18125fdd593SJeykumar Sankaran __field(bool, stop_req) 18225fdd593SJeykumar Sankaran __field(u32, update_bus) 18325fdd593SJeykumar Sankaran __field(u32, update_clk) 18425fdd593SJeykumar Sankaran ), 18525fdd593SJeykumar Sankaran TP_fast_assign( 18625fdd593SJeykumar Sankaran __entry->crtc = crtc; 18725fdd593SJeykumar Sankaran __entry->bw_ctl_mnoc = bw_ctl_mnoc; 18825fdd593SJeykumar Sankaran __entry->bw_ctl_llcc = bw_ctl_llcc; 18925fdd593SJeykumar Sankaran __entry->bw_ctl_ebi = bw_ctl_ebi; 19025fdd593SJeykumar Sankaran __entry->core_clk_rate = core_clk_rate; 19125fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 19225fdd593SJeykumar Sankaran __entry->update_bus = update_bus; 19325fdd593SJeykumar Sankaran __entry->update_clk = update_clk; 19425fdd593SJeykumar Sankaran ), 19525fdd593SJeykumar Sankaran TP_printk( 19625fdd593SJeykumar Sankaran "crtc=%d bw_mnoc=%llu bw_llcc=%llu bw_ebi=%llu clk_rate=%u stop_req=%d u_bus=%d u_clk=%d", 19725fdd593SJeykumar Sankaran __entry->crtc, 19825fdd593SJeykumar Sankaran __entry->bw_ctl_mnoc, 19925fdd593SJeykumar Sankaran __entry->bw_ctl_llcc, 20025fdd593SJeykumar Sankaran __entry->bw_ctl_ebi, 20125fdd593SJeykumar Sankaran __entry->core_clk_rate, 20225fdd593SJeykumar Sankaran __entry->stop_req, 20325fdd593SJeykumar Sankaran __entry->update_bus, 20425fdd593SJeykumar Sankaran __entry->update_clk) 20525fdd593SJeykumar Sankaran ); 20625fdd593SJeykumar Sankaran 20725fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_irq_template, 20825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 20925fdd593SJeykumar Sankaran int irq_idx), 21025fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx), 21125fdd593SJeykumar Sankaran TP_STRUCT__entry( 21225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 21325fdd593SJeykumar Sankaran __field( enum dpu_intr_idx, intr_idx ) 21425fdd593SJeykumar Sankaran __field( int, hw_idx ) 21525fdd593SJeykumar Sankaran __field( int, irq_idx ) 21625fdd593SJeykumar Sankaran ), 21725fdd593SJeykumar Sankaran TP_fast_assign( 21825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 21925fdd593SJeykumar Sankaran __entry->intr_idx = intr_idx; 22025fdd593SJeykumar Sankaran __entry->hw_idx = hw_idx; 22125fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 22225fdd593SJeykumar Sankaran ), 22325fdd593SJeykumar Sankaran TP_printk("id=%u, intr=%d, hw=%d, irq=%d", 22425fdd593SJeykumar Sankaran __entry->drm_id, __entry->intr_idx, __entry->hw_idx, 22525fdd593SJeykumar Sankaran __entry->irq_idx) 22625fdd593SJeykumar Sankaran ); 22725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_irq_template, dpu_enc_irq_register_success, 22825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 22925fdd593SJeykumar Sankaran int irq_idx), 23025fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx) 23125fdd593SJeykumar Sankaran ); 23225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_irq_template, dpu_enc_irq_unregister_success, 23325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 23425fdd593SJeykumar Sankaran int irq_idx), 23525fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx) 23625fdd593SJeykumar Sankaran ); 23725fdd593SJeykumar Sankaran 23825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_irq_wait_success, 23925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intr_idx intr_idx, int hw_idx, 24025fdd593SJeykumar Sankaran int irq_idx, enum dpu_pingpong pp_idx, int atomic_cnt), 24125fdd593SJeykumar Sankaran TP_ARGS(drm_id, intr_idx, hw_idx, irq_idx, pp_idx, atomic_cnt), 24225fdd593SJeykumar Sankaran TP_STRUCT__entry( 24325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 24425fdd593SJeykumar Sankaran __field( enum dpu_intr_idx, intr_idx ) 24525fdd593SJeykumar Sankaran __field( int, hw_idx ) 24625fdd593SJeykumar Sankaran __field( int, irq_idx ) 24725fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp_idx ) 24825fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 24925fdd593SJeykumar Sankaran ), 25025fdd593SJeykumar Sankaran TP_fast_assign( 25125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 25225fdd593SJeykumar Sankaran __entry->intr_idx = intr_idx; 25325fdd593SJeykumar Sankaran __entry->hw_idx = hw_idx; 25425fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 25525fdd593SJeykumar Sankaran __entry->pp_idx = pp_idx; 25625fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 25725fdd593SJeykumar Sankaran ), 25825fdd593SJeykumar Sankaran TP_printk("id=%u, intr=%d, hw=%d, irq=%d, pp=%d, atomic_cnt=%d", 25925fdd593SJeykumar Sankaran __entry->drm_id, __entry->intr_idx, __entry->hw_idx, 26025fdd593SJeykumar Sankaran __entry->irq_idx, __entry->pp_idx, __entry->atomic_cnt) 26125fdd593SJeykumar Sankaran ); 26225fdd593SJeykumar Sankaran 26325fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_drm_obj_template, 26425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 26525fdd593SJeykumar Sankaran TP_ARGS(drm_id), 26625fdd593SJeykumar Sankaran TP_STRUCT__entry( 26725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 26825fdd593SJeykumar Sankaran ), 26925fdd593SJeykumar Sankaran TP_fast_assign( 27025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 27125fdd593SJeykumar Sankaran ), 27225fdd593SJeykumar Sankaran TP_printk("id=%u", __entry->drm_id) 27325fdd593SJeykumar Sankaran ); 27425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_atomic_check, 27525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 27625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 27725fdd593SJeykumar Sankaran ); 27825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_mode_set, 27925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 28025fdd593SJeykumar Sankaran TP_ARGS(drm_id) 28125fdd593SJeykumar Sankaran ); 28225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_disable, 28325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 28425fdd593SJeykumar Sankaran TP_ARGS(drm_id) 28525fdd593SJeykumar Sankaran ); 28625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_kickoff, 28725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 28825fdd593SJeykumar Sankaran TP_ARGS(drm_id) 28925fdd593SJeykumar Sankaran ); 29025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_prepare_kickoff, 29125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 29225fdd593SJeykumar Sankaran TP_ARGS(drm_id) 29325fdd593SJeykumar Sankaran ); 29425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_enc_prepare_kickoff_reset, 29525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 29625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 29725fdd593SJeykumar Sankaran ); 29825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_flip, 29925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 30025fdd593SJeykumar Sankaran TP_ARGS(drm_id) 30125fdd593SJeykumar Sankaran ); 30225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_vblank_cb, 30325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 30425fdd593SJeykumar Sankaran TP_ARGS(drm_id) 30525fdd593SJeykumar Sankaran ); 30625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_commit, 30725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 30825fdd593SJeykumar Sankaran TP_ARGS(drm_id) 30925fdd593SJeykumar Sankaran ); 31025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_enc_enable, 31125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 31225fdd593SJeykumar Sankaran TP_ARGS(drm_id) 31325fdd593SJeykumar Sankaran ); 31425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_commit, 31525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 31625fdd593SJeykumar Sankaran TP_ARGS(drm_id) 31725fdd593SJeykumar Sankaran ); 31825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_wait_for_commit_done, 31925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id), 32025fdd593SJeykumar Sankaran TP_ARGS(drm_id) 32125fdd593SJeykumar Sankaran ); 32225fdd593SJeykumar Sankaran 32325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_enable, 32425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int hdisplay, int vdisplay), 32525fdd593SJeykumar Sankaran TP_ARGS(drm_id, hdisplay, vdisplay), 32625fdd593SJeykumar Sankaran TP_STRUCT__entry( 32725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 32825fdd593SJeykumar Sankaran __field( int, hdisplay ) 32925fdd593SJeykumar Sankaran __field( int, vdisplay ) 33025fdd593SJeykumar Sankaran ), 33125fdd593SJeykumar Sankaran TP_fast_assign( 33225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 33325fdd593SJeykumar Sankaran __entry->hdisplay = hdisplay; 33425fdd593SJeykumar Sankaran __entry->vdisplay = vdisplay; 33525fdd593SJeykumar Sankaran ), 33625fdd593SJeykumar Sankaran TP_printk("id=%u, mode=%dx%d", 33725fdd593SJeykumar Sankaran __entry->drm_id, __entry->hdisplay, __entry->vdisplay) 33825fdd593SJeykumar Sankaran ); 33925fdd593SJeykumar Sankaran 34025fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_keyval_template, 34125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int val), 34225fdd593SJeykumar Sankaran TP_ARGS(drm_id, val), 34325fdd593SJeykumar Sankaran TP_STRUCT__entry( 34425fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 34525fdd593SJeykumar Sankaran __field( int, val ) 34625fdd593SJeykumar Sankaran ), 34725fdd593SJeykumar Sankaran TP_fast_assign( 34825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 34925fdd593SJeykumar Sankaran __entry->val = val; 35025fdd593SJeykumar Sankaran ), 35125fdd593SJeykumar Sankaran TP_printk("id=%u, val=%d", __entry->drm_id, __entry->val) 35225fdd593SJeykumar Sankaran ); 35325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_underrun_cb, 35425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int count), 35525fdd593SJeykumar Sankaran TP_ARGS(drm_id, count) 35625fdd593SJeykumar Sankaran ); 35725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_keyval_template, dpu_enc_trigger_start, 35825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int ctl_idx), 35925fdd593SJeykumar Sankaran TP_ARGS(drm_id, ctl_idx) 36025fdd593SJeykumar Sankaran ); 36125fdd593SJeykumar Sankaran 36225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_atomic_check_flags, 36325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int flags, int private_flags), 36425fdd593SJeykumar Sankaran TP_ARGS(drm_id, flags, private_flags), 36525fdd593SJeykumar Sankaran TP_STRUCT__entry( 36625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 36725fdd593SJeykumar Sankaran __field( unsigned int, flags ) 36825fdd593SJeykumar Sankaran __field( int, private_flags ) 36925fdd593SJeykumar Sankaran ), 37025fdd593SJeykumar Sankaran TP_fast_assign( 37125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 37225fdd593SJeykumar Sankaran __entry->flags = flags; 37325fdd593SJeykumar Sankaran __entry->private_flags = private_flags; 37425fdd593SJeykumar Sankaran ), 37525fdd593SJeykumar Sankaran TP_printk("id=%u, flags=%u, private_flags=%d", 37625fdd593SJeykumar Sankaran __entry->drm_id, __entry->flags, __entry->private_flags) 37725fdd593SJeykumar Sankaran ); 37825fdd593SJeykumar Sankaran 37925fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_id_enable_template, 38025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 38125fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable), 38225fdd593SJeykumar Sankaran TP_STRUCT__entry( 38325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 38425fdd593SJeykumar Sankaran __field( bool, enable ) 38525fdd593SJeykumar Sankaran ), 38625fdd593SJeykumar Sankaran TP_fast_assign( 38725fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 38825fdd593SJeykumar Sankaran __entry->enable = enable; 38925fdd593SJeykumar Sankaran ), 39025fdd593SJeykumar Sankaran TP_printk("id=%u, enable=%s", 39125fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false") 39225fdd593SJeykumar Sankaran ); 39325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_rc_helper, 39425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 39525fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 39625fdd593SJeykumar Sankaran ); 39725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_vblank_cb, 39825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 39925fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 40025fdd593SJeykumar Sankaran ); 40125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_frame_event_cb, 40225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 40325fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 40425fdd593SJeykumar Sankaran ); 40525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_id_enable_template, dpu_enc_phys_cmd_connect_te, 40625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable), 40725fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable) 40825fdd593SJeykumar Sankaran ); 40925fdd593SJeykumar Sankaran 41025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_rc, 41125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 sw_event, bool idle_pc_supported, 41225fdd593SJeykumar Sankaran int rc_state, const char *stage), 41325fdd593SJeykumar Sankaran TP_ARGS(drm_id, sw_event, idle_pc_supported, rc_state, stage), 41425fdd593SJeykumar Sankaran TP_STRUCT__entry( 41525fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 41625fdd593SJeykumar Sankaran __field( u32, sw_event ) 41725fdd593SJeykumar Sankaran __field( bool, idle_pc_supported ) 41825fdd593SJeykumar Sankaran __field( int, rc_state ) 41925fdd593SJeykumar Sankaran __string( stage_str, stage ) 42025fdd593SJeykumar Sankaran ), 42125fdd593SJeykumar Sankaran TP_fast_assign( 42225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 42325fdd593SJeykumar Sankaran __entry->sw_event = sw_event; 42425fdd593SJeykumar Sankaran __entry->idle_pc_supported = idle_pc_supported; 42525fdd593SJeykumar Sankaran __entry->rc_state = rc_state; 42625fdd593SJeykumar Sankaran __assign_str(stage_str, stage); 42725fdd593SJeykumar Sankaran ), 42825fdd593SJeykumar Sankaran TP_printk("%s: id:%u, sw_event:%d, idle_pc_supported:%s, rc_state:%d\n", 42925fdd593SJeykumar Sankaran __get_str(stage_str), __entry->drm_id, __entry->sw_event, 43025fdd593SJeykumar Sankaran __entry->idle_pc_supported ? "true" : "false", 43125fdd593SJeykumar Sankaran __entry->rc_state) 43225fdd593SJeykumar Sankaran ); 43325fdd593SJeykumar Sankaran 43425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb_not_busy, 43525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event, enum dpu_intf intf_idx), 43625fdd593SJeykumar Sankaran TP_ARGS(drm_id, event, intf_idx), 43725fdd593SJeykumar Sankaran TP_STRUCT__entry( 43825fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 43925fdd593SJeykumar Sankaran __field( u32, event ) 44025fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 44125fdd593SJeykumar Sankaran ), 44225fdd593SJeykumar Sankaran TP_fast_assign( 44325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 44425fdd593SJeykumar Sankaran __entry->event = event; 44525fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 44625fdd593SJeykumar Sankaran ), 44725fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u, intf=%d", __entry->drm_id, __entry->event, 44825fdd593SJeykumar Sankaran __entry->intf_idx) 44925fdd593SJeykumar Sankaran ); 45025fdd593SJeykumar Sankaran 45125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_frame_done_cb, 45225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, unsigned int idx, 45325fdd593SJeykumar Sankaran unsigned long frame_busy_mask), 45425fdd593SJeykumar Sankaran TP_ARGS(drm_id, idx, frame_busy_mask), 45525fdd593SJeykumar Sankaran TP_STRUCT__entry( 45625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 45725fdd593SJeykumar Sankaran __field( unsigned int, idx ) 45825fdd593SJeykumar Sankaran __field( unsigned long, frame_busy_mask ) 45925fdd593SJeykumar Sankaran ), 46025fdd593SJeykumar Sankaran TP_fast_assign( 46125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 46225fdd593SJeykumar Sankaran __entry->idx = idx; 46325fdd593SJeykumar Sankaran __entry->frame_busy_mask = frame_busy_mask; 46425fdd593SJeykumar Sankaran ), 46525fdd593SJeykumar Sankaran TP_printk("id=%u, idx=%u, frame_busy_mask=%lx", __entry->drm_id, 46625fdd593SJeykumar Sankaran __entry->idx, __entry->frame_busy_mask) 46725fdd593SJeykumar Sankaran ); 46825fdd593SJeykumar Sankaran 46925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_trigger_flush, 47025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, 4711bb4e701SSean Paul int pending_kickoff_cnt, int ctl_idx, u32 extra_flush_bits, 4721bb4e701SSean Paul u32 pending_flush_ret), 47325fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, pending_kickoff_cnt, ctl_idx, 4741bb4e701SSean Paul extra_flush_bits, pending_flush_ret), 47525fdd593SJeykumar Sankaran TP_STRUCT__entry( 47625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 47725fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 47825fdd593SJeykumar Sankaran __field( int, pending_kickoff_cnt ) 47925fdd593SJeykumar Sankaran __field( int, ctl_idx ) 4801bb4e701SSean Paul __field( u32, extra_flush_bits ) 48125fdd593SJeykumar Sankaran __field( u32, pending_flush_ret ) 48225fdd593SJeykumar Sankaran ), 48325fdd593SJeykumar Sankaran TP_fast_assign( 48425fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 48525fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 48625fdd593SJeykumar Sankaran __entry->pending_kickoff_cnt = pending_kickoff_cnt; 48725fdd593SJeykumar Sankaran __entry->ctl_idx = ctl_idx; 4881bb4e701SSean Paul __entry->extra_flush_bits = extra_flush_bits; 48925fdd593SJeykumar Sankaran __entry->pending_flush_ret = pending_flush_ret; 49025fdd593SJeykumar Sankaran ), 49125fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d, pending_kickoff_cnt=%d ctl_idx=%d " 4921bb4e701SSean Paul "extra_flush_bits=0x%x pending_flush_ret=0x%x", 4931bb4e701SSean Paul __entry->drm_id, __entry->intf_idx, 4941bb4e701SSean Paul __entry->pending_kickoff_cnt, __entry->ctl_idx, 4951bb4e701SSean Paul __entry->extra_flush_bits, __entry->pending_flush_ret) 49625fdd593SJeykumar Sankaran ); 49725fdd593SJeykumar Sankaran 49825fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_enc_ktime_template, 49925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 50025fdd593SJeykumar Sankaran TP_ARGS(drm_id, time), 50125fdd593SJeykumar Sankaran TP_STRUCT__entry( 50225fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 50325fdd593SJeykumar Sankaran __field( ktime_t, time ) 50425fdd593SJeykumar Sankaran ), 50525fdd593SJeykumar Sankaran TP_fast_assign( 50625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 50725fdd593SJeykumar Sankaran __entry->time = time; 50825fdd593SJeykumar Sankaran ), 50925fdd593SJeykumar Sankaran TP_printk("id=%u, time=%lld", __entry->drm_id, 51025fdd593SJeykumar Sankaran ktime_to_ms(__entry->time)) 51125fdd593SJeykumar Sankaran ); 51225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_vsync_event_work, 51325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 51425fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 51525fdd593SJeykumar Sankaran ); 51625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_enc_ktime_template, dpu_enc_early_kickoff, 51725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, ktime_t time), 51825fdd593SJeykumar Sankaran TP_ARGS(drm_id, time) 51925fdd593SJeykumar Sankaran ); 52025fdd593SJeykumar Sankaran 52125fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_id_event_template, 52225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 52325fdd593SJeykumar Sankaran TP_ARGS(drm_id, event), 52425fdd593SJeykumar Sankaran TP_STRUCT__entry( 52525fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 52625fdd593SJeykumar Sankaran __field( u32, event ) 52725fdd593SJeykumar Sankaran ), 52825fdd593SJeykumar Sankaran TP_fast_assign( 52925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 53025fdd593SJeykumar Sankaran __entry->event = event; 53125fdd593SJeykumar Sankaran ), 53225fdd593SJeykumar Sankaran TP_printk("id=%u, event=%u", __entry->drm_id, __entry->event) 53325fdd593SJeykumar Sankaran ); 53425fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_enc_frame_done_timeout, 53525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 53625fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 53725fdd593SJeykumar Sankaran ); 53825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_cb, 53925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 54025fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 54125fdd593SJeykumar Sankaran ); 54225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_handle_power_event, 54325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 54425fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 54525fdd593SJeykumar Sankaran ); 54625fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_done, 54725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 54825fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 54925fdd593SJeykumar Sankaran ); 55025fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_id_event_template, dpu_crtc_frame_event_more_pending, 55125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, u32 event), 55225fdd593SJeykumar Sankaran TP_ARGS(drm_id, event) 55325fdd593SJeykumar Sankaran ); 55425fdd593SJeykumar Sankaran 55525fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_wait_event_timeout, 55625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int32_t hw_id, int rc, s64 time, 55725fdd593SJeykumar Sankaran s64 expected_time, int atomic_cnt), 55825fdd593SJeykumar Sankaran TP_ARGS(drm_id, hw_id, rc, time, expected_time, atomic_cnt), 55925fdd593SJeykumar Sankaran TP_STRUCT__entry( 56025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 56125fdd593SJeykumar Sankaran __field( int32_t, hw_id ) 56225fdd593SJeykumar Sankaran __field( int, rc ) 56325fdd593SJeykumar Sankaran __field( s64, time ) 56425fdd593SJeykumar Sankaran __field( s64, expected_time ) 56525fdd593SJeykumar Sankaran __field( int, atomic_cnt ) 56625fdd593SJeykumar Sankaran ), 56725fdd593SJeykumar Sankaran TP_fast_assign( 56825fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 56925fdd593SJeykumar Sankaran __entry->hw_id = hw_id; 57025fdd593SJeykumar Sankaran __entry->rc = rc; 57125fdd593SJeykumar Sankaran __entry->time = time; 57225fdd593SJeykumar Sankaran __entry->expected_time = expected_time; 57325fdd593SJeykumar Sankaran __entry->atomic_cnt = atomic_cnt; 57425fdd593SJeykumar Sankaran ), 57525fdd593SJeykumar Sankaran TP_printk("id=%u, hw_id=%d, rc=%d, time=%lld, expected=%lld cnt=%d", 57625fdd593SJeykumar Sankaran __entry->drm_id, __entry->hw_id, __entry->rc, __entry->time, 57725fdd593SJeykumar Sankaran __entry->expected_time, __entry->atomic_cnt) 57825fdd593SJeykumar Sankaran ); 57925fdd593SJeykumar Sankaran 58025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_irq_ctrl, 58125fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, bool enable, 58225fdd593SJeykumar Sankaran int refcnt), 58325fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, enable, refcnt), 58425fdd593SJeykumar Sankaran TP_STRUCT__entry( 58525fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 58625fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 58725fdd593SJeykumar Sankaran __field( bool, enable ) 58825fdd593SJeykumar Sankaran __field( int, refcnt ) 58925fdd593SJeykumar Sankaran ), 59025fdd593SJeykumar Sankaran TP_fast_assign( 59125fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 59225fdd593SJeykumar Sankaran __entry->pp = pp; 59325fdd593SJeykumar Sankaran __entry->enable = enable; 59425fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 59525fdd593SJeykumar Sankaran ), 59625fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, enable=%s, refcnt=%d", __entry->drm_id, 59725fdd593SJeykumar Sankaran __entry->pp, __entry->enable ? "true" : "false", 59825fdd593SJeykumar Sankaran __entry->refcnt) 59925fdd593SJeykumar Sankaran ); 60025fdd593SJeykumar Sankaran 60125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pp_tx_done, 60225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int new_count, 60325fdd593SJeykumar Sankaran u32 event), 60425fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, new_count, event), 60525fdd593SJeykumar Sankaran TP_STRUCT__entry( 60625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 60725fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 60825fdd593SJeykumar Sankaran __field( int, new_count ) 60925fdd593SJeykumar Sankaran __field( u32, event ) 61025fdd593SJeykumar Sankaran ), 61125fdd593SJeykumar Sankaran TP_fast_assign( 61225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 61325fdd593SJeykumar Sankaran __entry->pp = pp; 61425fdd593SJeykumar Sankaran __entry->new_count = new_count; 61525fdd593SJeykumar Sankaran __entry->event = event; 61625fdd593SJeykumar Sankaran ), 61725fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, new_count=%d, event=%u", __entry->drm_id, 61825fdd593SJeykumar Sankaran __entry->pp, __entry->new_count, __entry->event) 61925fdd593SJeykumar Sankaran ); 62025fdd593SJeykumar Sankaran 62125fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_cmd_pdone_timeout, 62225fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_pingpong pp, int timeout_count, 62325fdd593SJeykumar Sankaran int kickoff_count, u32 event), 62425fdd593SJeykumar Sankaran TP_ARGS(drm_id, pp, timeout_count, kickoff_count, event), 62525fdd593SJeykumar Sankaran TP_STRUCT__entry( 62625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 62725fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 62825fdd593SJeykumar Sankaran __field( int, timeout_count ) 62925fdd593SJeykumar Sankaran __field( int, kickoff_count ) 63025fdd593SJeykumar Sankaran __field( u32, event ) 63125fdd593SJeykumar Sankaran ), 63225fdd593SJeykumar Sankaran TP_fast_assign( 63325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 63425fdd593SJeykumar Sankaran __entry->pp = pp; 63525fdd593SJeykumar Sankaran __entry->timeout_count = timeout_count; 63625fdd593SJeykumar Sankaran __entry->kickoff_count = kickoff_count; 63725fdd593SJeykumar Sankaran __entry->event = event; 63825fdd593SJeykumar Sankaran ), 63925fdd593SJeykumar Sankaran TP_printk("id=%u, pp=%d, timeout_count=%d, kickoff_count=%d, event=%u", 64025fdd593SJeykumar Sankaran __entry->drm_id, __entry->pp, __entry->timeout_count, 64125fdd593SJeykumar Sankaran __entry->kickoff_count, __entry->event) 64225fdd593SJeykumar Sankaran ); 64325fdd593SJeykumar Sankaran 64425fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_post_kickoff, 64525fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx), 64625fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx), 64725fdd593SJeykumar Sankaran TP_STRUCT__entry( 64825fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 64925fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 65025fdd593SJeykumar Sankaran ), 65125fdd593SJeykumar Sankaran TP_fast_assign( 65225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 65325fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 65425fdd593SJeykumar Sankaran ), 65525fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d", __entry->drm_id, __entry->intf_idx) 65625fdd593SJeykumar Sankaran ); 65725fdd593SJeykumar Sankaran 65825fdd593SJeykumar Sankaran TRACE_EVENT(dpu_enc_phys_vid_irq_ctrl, 65925fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, enum dpu_intf intf_idx, bool enable, 66025fdd593SJeykumar Sankaran int refcnt), 66125fdd593SJeykumar Sankaran TP_ARGS(drm_id, intf_idx, enable, refcnt), 66225fdd593SJeykumar Sankaran TP_STRUCT__entry( 66325fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 66425fdd593SJeykumar Sankaran __field( enum dpu_intf, intf_idx ) 66525fdd593SJeykumar Sankaran __field( bool, enable ) 66625fdd593SJeykumar Sankaran __field( int, refcnt ) 66725fdd593SJeykumar Sankaran ), 66825fdd593SJeykumar Sankaran TP_fast_assign( 66925fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 67025fdd593SJeykumar Sankaran __entry->intf_idx = intf_idx; 67125fdd593SJeykumar Sankaran __entry->enable = enable; 67225fdd593SJeykumar Sankaran __entry->refcnt = refcnt; 67325fdd593SJeykumar Sankaran ), 67425fdd593SJeykumar Sankaran TP_printk("id=%u, intf_idx=%d enable=%s refcnt=%d", __entry->drm_id, 67525fdd593SJeykumar Sankaran __entry->intf_idx, __entry->enable ? "true" : "false", 67625fdd593SJeykumar Sankaran __entry->drm_id) 67725fdd593SJeykumar Sankaran ); 67825fdd593SJeykumar Sankaran 67925fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_mixer, 68025fdd593SJeykumar Sankaran TP_PROTO(uint32_t crtc_id, uint32_t plane_id, 68125fdd593SJeykumar Sankaran struct drm_plane_state *state, struct dpu_plane_state *pstate, 68225fdd593SJeykumar Sankaran uint32_t stage_idx, enum dpu_sspp sspp, uint32_t pixel_format, 68325fdd593SJeykumar Sankaran uint64_t modifier), 68425fdd593SJeykumar Sankaran TP_ARGS(crtc_id, plane_id, state, pstate, stage_idx, sspp, 68525fdd593SJeykumar Sankaran pixel_format, modifier), 68625fdd593SJeykumar Sankaran TP_STRUCT__entry( 68725fdd593SJeykumar Sankaran __field( uint32_t, crtc_id ) 68825fdd593SJeykumar Sankaran __field( uint32_t, plane_id ) 689*f65f035fSSean Paul __field( uint32_t, fb_id ) 690*f65f035fSSean Paul __field_struct( struct drm_rect, src_rect ) 691*f65f035fSSean Paul __field_struct( struct drm_rect, dst_rect ) 69225fdd593SJeykumar Sankaran __field( uint32_t, stage_idx ) 693*f65f035fSSean Paul __field( enum dpu_stage, stage ) 69425fdd593SJeykumar Sankaran __field( enum dpu_sspp, sspp ) 695*f65f035fSSean Paul __field( uint32_t, multirect_idx ) 696*f65f035fSSean Paul __field( uint32_t, multirect_mode ) 69725fdd593SJeykumar Sankaran __field( uint32_t, pixel_format ) 69825fdd593SJeykumar Sankaran __field( uint64_t, modifier ) 69925fdd593SJeykumar Sankaran ), 70025fdd593SJeykumar Sankaran TP_fast_assign( 70125fdd593SJeykumar Sankaran __entry->crtc_id = crtc_id; 70225fdd593SJeykumar Sankaran __entry->plane_id = plane_id; 703*f65f035fSSean Paul __entry->fb_id = state ? state->fb->base.id : 0; 704*f65f035fSSean Paul __entry->src_rect = drm_plane_state_src(state); 705*f65f035fSSean Paul __entry->dst_rect = drm_plane_state_dest(state); 70625fdd593SJeykumar Sankaran __entry->stage_idx = stage_idx; 707*f65f035fSSean Paul __entry->stage = pstate->stage; 70825fdd593SJeykumar Sankaran __entry->sspp = sspp; 709*f65f035fSSean Paul __entry->multirect_idx = pstate->multirect_index; 710*f65f035fSSean Paul __entry->multirect_mode = pstate->multirect_mode; 71125fdd593SJeykumar Sankaran __entry->pixel_format = pixel_format; 71225fdd593SJeykumar Sankaran __entry->modifier = modifier; 71325fdd593SJeykumar Sankaran ), 714*f65f035fSSean Paul TP_printk("crtc_id:%u plane_id:%u fb_id:%u src:" DRM_RECT_FP_FMT 715*f65f035fSSean Paul " dst:" DRM_RECT_FMT " stage_idx:%u stage:%d, sspp:%d " 71625fdd593SJeykumar Sankaran "multirect_index:%d multirect_mode:%u pix_format:%u " 71725fdd593SJeykumar Sankaran "modifier:%llu", 718*f65f035fSSean Paul __entry->crtc_id, __entry->plane_id, __entry->fb_id, 719*f65f035fSSean Paul DRM_RECT_FP_ARG(&__entry->src_rect), 720*f65f035fSSean Paul DRM_RECT_ARG(&__entry->dst_rect), 721*f65f035fSSean Paul __entry->stage_idx, __entry->stage, __entry->sspp, 722*f65f035fSSean Paul __entry->multirect_idx, __entry->multirect_mode, 723*f65f035fSSean Paul __entry->pixel_format, __entry->modifier) 72425fdd593SJeykumar Sankaran ); 72525fdd593SJeykumar Sankaran 72625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_setup_lm_bounds, 72725fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int mixer, struct drm_rect *bounds), 72825fdd593SJeykumar Sankaran TP_ARGS(drm_id, mixer, bounds), 72925fdd593SJeykumar Sankaran TP_STRUCT__entry( 73025fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 73125fdd593SJeykumar Sankaran __field( int, mixer ) 732*f65f035fSSean Paul __field_struct( struct drm_rect, bounds ) 73325fdd593SJeykumar Sankaran ), 73425fdd593SJeykumar Sankaran TP_fast_assign( 73525fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 73625fdd593SJeykumar Sankaran __entry->mixer = mixer; 737*f65f035fSSean Paul __entry->bounds = *bounds; 73825fdd593SJeykumar Sankaran ), 73925fdd593SJeykumar Sankaran TP_printk("id:%u mixer:%d bounds:" DRM_RECT_FMT, __entry->drm_id, 740*f65f035fSSean Paul __entry->mixer, DRM_RECT_ARG(&__entry->bounds)) 74125fdd593SJeykumar Sankaran ); 74225fdd593SJeykumar Sankaran 74325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_vblank_enable, 74425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, uint32_t enc_id, bool enable, 74525fdd593SJeykumar Sankaran struct dpu_crtc *crtc), 74625fdd593SJeykumar Sankaran TP_ARGS(drm_id, enc_id, enable, crtc), 74725fdd593SJeykumar Sankaran TP_STRUCT__entry( 74825fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 74925fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 75025fdd593SJeykumar Sankaran __field( bool, enable ) 751*f65f035fSSean Paul __field( bool, enabled ) 752*f65f035fSSean Paul __field( bool, suspend ) 753*f65f035fSSean Paul __field( bool, vblank_requested ) 75425fdd593SJeykumar Sankaran ), 75525fdd593SJeykumar Sankaran TP_fast_assign( 75625fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 75725fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 75825fdd593SJeykumar Sankaran __entry->enable = enable; 759*f65f035fSSean Paul __entry->enabled = crtc->enabled; 760*f65f035fSSean Paul __entry->suspend = crtc->suspend; 761*f65f035fSSean Paul __entry->vblank_requested = crtc->vblank_requested; 76225fdd593SJeykumar Sankaran ), 76325fdd593SJeykumar Sankaran TP_printk("id:%u encoder:%u enable:%s state{enabled:%s suspend:%s " 76425fdd593SJeykumar Sankaran "vblank_req:%s}", 76525fdd593SJeykumar Sankaran __entry->drm_id, __entry->enc_id, 76625fdd593SJeykumar Sankaran __entry->enable ? "true" : "false", 767*f65f035fSSean Paul __entry->enabled ? "true" : "false", 768*f65f035fSSean Paul __entry->suspend ? "true" : "false", 769*f65f035fSSean Paul __entry->vblank_requested ? "true" : "false") 77025fdd593SJeykumar Sankaran ); 77125fdd593SJeykumar Sankaran 77225fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_crtc_enable_template, 77325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 77425fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc), 77525fdd593SJeykumar Sankaran TP_STRUCT__entry( 77625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 77725fdd593SJeykumar Sankaran __field( bool, enable ) 778*f65f035fSSean Paul __field( bool, enabled ) 779*f65f035fSSean Paul __field( bool, suspend ) 780*f65f035fSSean Paul __field( bool, vblank_requested ) 78125fdd593SJeykumar Sankaran ), 78225fdd593SJeykumar Sankaran TP_fast_assign( 78325fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 78425fdd593SJeykumar Sankaran __entry->enable = enable; 785*f65f035fSSean Paul __entry->enabled = crtc->enabled; 786*f65f035fSSean Paul __entry->suspend = crtc->suspend; 787*f65f035fSSean Paul __entry->vblank_requested = crtc->vblank_requested; 78825fdd593SJeykumar Sankaran ), 78925fdd593SJeykumar Sankaran TP_printk("id:%u enable:%s state{enabled:%s suspend:%s vblank_req:%s}", 79025fdd593SJeykumar Sankaran __entry->drm_id, __entry->enable ? "true" : "false", 791*f65f035fSSean Paul __entry->enabled ? "true" : "false", 792*f65f035fSSean Paul __entry->suspend ? "true" : "false", 793*f65f035fSSean Paul __entry->vblank_requested ? "true" : "false") 79425fdd593SJeykumar Sankaran ); 79525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_set_suspend, 79625fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 79725fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 79825fdd593SJeykumar Sankaran ); 79925fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_enable, 80025fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 80125fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 80225fdd593SJeykumar Sankaran ); 80325fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_disable, 80425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 80525fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 80625fdd593SJeykumar Sankaran ); 80725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_crtc_enable_template, dpu_crtc_vblank, 80825fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool enable, struct dpu_crtc *crtc), 80925fdd593SJeykumar Sankaran TP_ARGS(drm_id, enable, crtc) 81025fdd593SJeykumar Sankaran ); 81125fdd593SJeykumar Sankaran 81225fdd593SJeykumar Sankaran TRACE_EVENT(dpu_crtc_disable_frame_pending, 81325fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, int frame_pending), 81425fdd593SJeykumar Sankaran TP_ARGS(drm_id, frame_pending), 81525fdd593SJeykumar Sankaran TP_STRUCT__entry( 81625fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 81725fdd593SJeykumar Sankaran __field( int, frame_pending ) 81825fdd593SJeykumar Sankaran ), 81925fdd593SJeykumar Sankaran TP_fast_assign( 82025fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 82125fdd593SJeykumar Sankaran __entry->frame_pending = frame_pending; 82225fdd593SJeykumar Sankaran ), 82325fdd593SJeykumar Sankaran TP_printk("id:%u frame_pending:%d", __entry->drm_id, 82425fdd593SJeykumar Sankaran __entry->frame_pending) 82525fdd593SJeykumar Sankaran ); 82625fdd593SJeykumar Sankaran 82725fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_set_scanout, 82825fdd593SJeykumar Sankaran TP_PROTO(enum dpu_sspp index, struct dpu_hw_fmt_layout *layout, 82925fdd593SJeykumar Sankaran enum dpu_sspp_multirect_index multirect_index), 83025fdd593SJeykumar Sankaran TP_ARGS(index, layout, multirect_index), 83125fdd593SJeykumar Sankaran TP_STRUCT__entry( 83225fdd593SJeykumar Sankaran __field( enum dpu_sspp, index ) 833*f65f035fSSean Paul __field_struct( struct dpu_hw_fmt_layout, layout ) 83425fdd593SJeykumar Sankaran __field( enum dpu_sspp_multirect_index, multirect_index) 83525fdd593SJeykumar Sankaran ), 83625fdd593SJeykumar Sankaran TP_fast_assign( 83725fdd593SJeykumar Sankaran __entry->index = index; 838*f65f035fSSean Paul __entry->layout = *layout; 83925fdd593SJeykumar Sankaran __entry->multirect_index = multirect_index; 84025fdd593SJeykumar Sankaran ), 84125fdd593SJeykumar Sankaran TP_printk("index:%d layout:{%ux%u @ [%u/%u, %u/%u, %u/%u, %u/%u]} " 842*f65f035fSSean Paul "multirect_index:%d", __entry->index, __entry->layout.width, 843*f65f035fSSean Paul __entry->layout.height, __entry->layout.plane_addr[0], 844*f65f035fSSean Paul __entry->layout.plane_size[0], 845*f65f035fSSean Paul __entry->layout.plane_addr[1], 846*f65f035fSSean Paul __entry->layout.plane_size[1], 847*f65f035fSSean Paul __entry->layout.plane_addr[2], 848*f65f035fSSean Paul __entry->layout.plane_size[2], 849*f65f035fSSean Paul __entry->layout.plane_addr[3], 850*f65f035fSSean Paul __entry->layout.plane_size[3], __entry->multirect_index) 85125fdd593SJeykumar Sankaran ); 85225fdd593SJeykumar Sankaran 85325fdd593SJeykumar Sankaran TRACE_EVENT(dpu_plane_disable, 85425fdd593SJeykumar Sankaran TP_PROTO(uint32_t drm_id, bool is_virtual, uint32_t multirect_mode), 85525fdd593SJeykumar Sankaran TP_ARGS(drm_id, is_virtual, multirect_mode), 85625fdd593SJeykumar Sankaran TP_STRUCT__entry( 85725fdd593SJeykumar Sankaran __field( uint32_t, drm_id ) 85825fdd593SJeykumar Sankaran __field( bool, is_virtual ) 85925fdd593SJeykumar Sankaran __field( uint32_t, multirect_mode ) 86025fdd593SJeykumar Sankaran ), 86125fdd593SJeykumar Sankaran TP_fast_assign( 86225fdd593SJeykumar Sankaran __entry->drm_id = drm_id; 86325fdd593SJeykumar Sankaran __entry->is_virtual = is_virtual; 86425fdd593SJeykumar Sankaran __entry->multirect_mode = multirect_mode; 86525fdd593SJeykumar Sankaran ), 86625fdd593SJeykumar Sankaran TP_printk("id:%u is_virtual:%s multirect_mode:%u", __entry->drm_id, 86725fdd593SJeykumar Sankaran __entry->is_virtual ? "true" : "false", 86825fdd593SJeykumar Sankaran __entry->multirect_mode) 86925fdd593SJeykumar Sankaran ); 87025fdd593SJeykumar Sankaran 87125fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_rm_iter_template, 87225fdd593SJeykumar Sankaran TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), 87325fdd593SJeykumar Sankaran TP_ARGS(id, type, enc_id), 87425fdd593SJeykumar Sankaran TP_STRUCT__entry( 87525fdd593SJeykumar Sankaran __field( uint32_t, id ) 87625fdd593SJeykumar Sankaran __field( enum dpu_hw_blk_type, type ) 87725fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 87825fdd593SJeykumar Sankaran ), 87925fdd593SJeykumar Sankaran TP_fast_assign( 88025fdd593SJeykumar Sankaran __entry->id = id; 88125fdd593SJeykumar Sankaran __entry->type = type; 88225fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 88325fdd593SJeykumar Sankaran ), 88425fdd593SJeykumar Sankaran TP_printk("id:%d type:%d enc_id:%u", __entry->id, __entry->type, 88525fdd593SJeykumar Sankaran __entry->enc_id) 88625fdd593SJeykumar Sankaran ); 88725fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_intf, 88825fdd593SJeykumar Sankaran TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), 88925fdd593SJeykumar Sankaran TP_ARGS(id, type, enc_id) 89025fdd593SJeykumar Sankaran ); 89125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_rm_iter_template, dpu_rm_reserve_ctls, 89225fdd593SJeykumar Sankaran TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id), 89325fdd593SJeykumar Sankaran TP_ARGS(id, type, enc_id) 89425fdd593SJeykumar Sankaran ); 89525fdd593SJeykumar Sankaran 89625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_rm_reserve_lms, 89725fdd593SJeykumar Sankaran TP_PROTO(uint32_t id, enum dpu_hw_blk_type type, uint32_t enc_id, 89825fdd593SJeykumar Sankaran uint32_t pp_id), 89925fdd593SJeykumar Sankaran TP_ARGS(id, type, enc_id, pp_id), 90025fdd593SJeykumar Sankaran TP_STRUCT__entry( 90125fdd593SJeykumar Sankaran __field( uint32_t, id ) 90225fdd593SJeykumar Sankaran __field( enum dpu_hw_blk_type, type ) 90325fdd593SJeykumar Sankaran __field( uint32_t, enc_id ) 90425fdd593SJeykumar Sankaran __field( uint32_t, pp_id ) 90525fdd593SJeykumar Sankaran ), 90625fdd593SJeykumar Sankaran TP_fast_assign( 90725fdd593SJeykumar Sankaran __entry->id = id; 90825fdd593SJeykumar Sankaran __entry->type = type; 90925fdd593SJeykumar Sankaran __entry->enc_id = enc_id; 91025fdd593SJeykumar Sankaran __entry->pp_id = pp_id; 91125fdd593SJeykumar Sankaran ), 91225fdd593SJeykumar Sankaran TP_printk("id:%d type:%d enc_id:%u pp_id:%u", __entry->id, 91325fdd593SJeykumar Sankaran __entry->type, __entry->enc_id, __entry->pp_id) 91425fdd593SJeykumar Sankaran ); 91525fdd593SJeykumar Sankaran 91625fdd593SJeykumar Sankaran TRACE_EVENT(dpu_vbif_wait_xin_halt_fail, 91725fdd593SJeykumar Sankaran TP_PROTO(enum dpu_vbif index, u32 xin_id), 91825fdd593SJeykumar Sankaran TP_ARGS(index, xin_id), 91925fdd593SJeykumar Sankaran TP_STRUCT__entry( 92025fdd593SJeykumar Sankaran __field( enum dpu_vbif, index ) 92125fdd593SJeykumar Sankaran __field( u32, xin_id ) 92225fdd593SJeykumar Sankaran ), 92325fdd593SJeykumar Sankaran TP_fast_assign( 92425fdd593SJeykumar Sankaran __entry->index = index; 92525fdd593SJeykumar Sankaran __entry->xin_id = xin_id; 92625fdd593SJeykumar Sankaran ), 92725fdd593SJeykumar Sankaran TP_printk("index:%d xin_id:%u", __entry->index, __entry->xin_id) 92825fdd593SJeykumar Sankaran ); 92925fdd593SJeykumar Sankaran 93025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_pp_connect_ext_te, 93125fdd593SJeykumar Sankaran TP_PROTO(enum dpu_pingpong pp, u32 cfg), 93225fdd593SJeykumar Sankaran TP_ARGS(pp, cfg), 93325fdd593SJeykumar Sankaran TP_STRUCT__entry( 93425fdd593SJeykumar Sankaran __field( enum dpu_pingpong, pp ) 93525fdd593SJeykumar Sankaran __field( u32, cfg ) 93625fdd593SJeykumar Sankaran ), 93725fdd593SJeykumar Sankaran TP_fast_assign( 93825fdd593SJeykumar Sankaran __entry->pp = pp; 93925fdd593SJeykumar Sankaran __entry->cfg = cfg; 94025fdd593SJeykumar Sankaran ), 94125fdd593SJeykumar Sankaran TP_printk("pp:%d cfg:%u", __entry->pp, __entry->cfg) 94225fdd593SJeykumar Sankaran ); 94325fdd593SJeykumar Sankaran 94425fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_core_irq_idx_cnt_template, 94525fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, int enable_count), 94625fdd593SJeykumar Sankaran TP_ARGS(irq_idx, enable_count), 94725fdd593SJeykumar Sankaran TP_STRUCT__entry( 94825fdd593SJeykumar Sankaran __field( int, irq_idx ) 94925fdd593SJeykumar Sankaran __field( int, enable_count ) 95025fdd593SJeykumar Sankaran ), 95125fdd593SJeykumar Sankaran TP_fast_assign( 95225fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 95325fdd593SJeykumar Sankaran __entry->enable_count = enable_count; 95425fdd593SJeykumar Sankaran ), 95525fdd593SJeykumar Sankaran TP_printk("irq_idx:%d enable_count:%u", __entry->irq_idx, 95625fdd593SJeykumar Sankaran __entry->enable_count) 95725fdd593SJeykumar Sankaran ); 95825fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_idx_cnt_template, dpu_core_irq_enable_idx, 95925fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, int enable_count), 96025fdd593SJeykumar Sankaran TP_ARGS(irq_idx, enable_count) 96125fdd593SJeykumar Sankaran ); 96225fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_idx_cnt_template, dpu_core_irq_disable_idx, 96325fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, int enable_count), 96425fdd593SJeykumar Sankaran TP_ARGS(irq_idx, enable_count) 96525fdd593SJeykumar Sankaran ); 96625fdd593SJeykumar Sankaran 96725fdd593SJeykumar Sankaran DECLARE_EVENT_CLASS(dpu_core_irq_callback_template, 96825fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, struct dpu_irq_callback *callback), 96925fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback), 97025fdd593SJeykumar Sankaran TP_STRUCT__entry( 97125fdd593SJeykumar Sankaran __field( int, irq_idx ) 97225fdd593SJeykumar Sankaran __field( struct dpu_irq_callback *, callback) 97325fdd593SJeykumar Sankaran ), 97425fdd593SJeykumar Sankaran TP_fast_assign( 97525fdd593SJeykumar Sankaran __entry->irq_idx = irq_idx; 97625fdd593SJeykumar Sankaran __entry->callback = callback; 97725fdd593SJeykumar Sankaran ), 97825fdd593SJeykumar Sankaran TP_printk("irq_idx:%d callback:%pK", __entry->irq_idx, 97925fdd593SJeykumar Sankaran __entry->callback) 98025fdd593SJeykumar Sankaran ); 98125fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_callback_template, dpu_core_irq_register_callback, 98225fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, struct dpu_irq_callback *callback), 98325fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback) 98425fdd593SJeykumar Sankaran ); 98525fdd593SJeykumar Sankaran DEFINE_EVENT(dpu_core_irq_callback_template, dpu_core_irq_unregister_callback, 98625fdd593SJeykumar Sankaran TP_PROTO(int irq_idx, struct dpu_irq_callback *callback), 98725fdd593SJeykumar Sankaran TP_ARGS(irq_idx, callback) 98825fdd593SJeykumar Sankaran ); 98925fdd593SJeykumar Sankaran 99025fdd593SJeykumar Sankaran TRACE_EVENT(dpu_core_perf_update_clk, 99125fdd593SJeykumar Sankaran TP_PROTO(struct drm_device *dev, bool stop_req, u64 clk_rate), 99225fdd593SJeykumar Sankaran TP_ARGS(dev, stop_req, clk_rate), 99325fdd593SJeykumar Sankaran TP_STRUCT__entry( 994*f65f035fSSean Paul __string( dev_name, dev->unique ) 99525fdd593SJeykumar Sankaran __field( bool, stop_req ) 99625fdd593SJeykumar Sankaran __field( u64, clk_rate ) 99725fdd593SJeykumar Sankaran ), 99825fdd593SJeykumar Sankaran TP_fast_assign( 999*f65f035fSSean Paul __assign_str(dev_name, dev->unique); 100025fdd593SJeykumar Sankaran __entry->stop_req = stop_req; 100125fdd593SJeykumar Sankaran __entry->clk_rate = clk_rate; 100225fdd593SJeykumar Sankaran ), 1003*f65f035fSSean Paul TP_printk("dev:%s stop_req:%s clk_rate:%llu", __get_str(dev_name), 100425fdd593SJeykumar Sankaran __entry->stop_req ? "true" : "false", __entry->clk_rate) 100525fdd593SJeykumar Sankaran ); 100625fdd593SJeykumar Sankaran 100725fdd593SJeykumar Sankaran #define DPU_ATRACE_END(name) trace_tracing_mark_write(current->tgid, name, 0) 100825fdd593SJeykumar Sankaran #define DPU_ATRACE_BEGIN(name) trace_tracing_mark_write(current->tgid, name, 1) 100925fdd593SJeykumar Sankaran #define DPU_ATRACE_FUNC() DPU_ATRACE_BEGIN(__func__) 101025fdd593SJeykumar Sankaran 101125fdd593SJeykumar Sankaran #define DPU_ATRACE_INT(name, value) \ 101225fdd593SJeykumar Sankaran trace_dpu_trace_counter(current->tgid, name, value) 101325fdd593SJeykumar Sankaran 101425fdd593SJeykumar Sankaran #endif /* _DPU_TRACE_H_ */ 101525fdd593SJeykumar Sankaran 101625fdd593SJeykumar Sankaran /* This part must be outside protection */ 101725fdd593SJeykumar Sankaran #undef TRACE_INCLUDE_PATH 101825fdd593SJeykumar Sankaran #define TRACE_INCLUDE_PATH . 101925fdd593SJeykumar Sankaran #include <trace/define_trace.h> 1020