xref: /linux/drivers/media/platform/nvidia/tegra-vde/trace.h (revision 36ec807b627b4c0a0a382f0ae48eac7187d14b2b)
19b18ef7cSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */
29b18ef7cSMauro Carvalho Chehab 
39b18ef7cSMauro Carvalho Chehab #undef TRACE_SYSTEM
49b18ef7cSMauro Carvalho Chehab #define TRACE_SYSTEM tegra_vde
59b18ef7cSMauro Carvalho Chehab 
69b18ef7cSMauro Carvalho Chehab #if !defined(TEGRA_VDE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
79b18ef7cSMauro Carvalho Chehab #define TEGRA_VDE_TRACE_H
89b18ef7cSMauro Carvalho Chehab 
99b18ef7cSMauro Carvalho Chehab #include <linux/tracepoint.h>
109b18ef7cSMauro Carvalho Chehab 
119b18ef7cSMauro Carvalho Chehab #include "vde.h"
129b18ef7cSMauro Carvalho Chehab 
139b18ef7cSMauro Carvalho Chehab DECLARE_EVENT_CLASS(register_access,
149b18ef7cSMauro Carvalho Chehab 	TP_PROTO(struct tegra_vde *vde, void __iomem *base,
159b18ef7cSMauro Carvalho Chehab 		 u32 offset, u32 value),
169b18ef7cSMauro Carvalho Chehab 	TP_ARGS(vde, base, offset, value),
179b18ef7cSMauro Carvalho Chehab 	TP_STRUCT__entry(
189b18ef7cSMauro Carvalho Chehab 		__string(hw_name, tegra_vde_reg_base_name(vde, base))
199b18ef7cSMauro Carvalho Chehab 		__field(u32, offset)
209b18ef7cSMauro Carvalho Chehab 		__field(u32, value)
219b18ef7cSMauro Carvalho Chehab 	),
229b18ef7cSMauro Carvalho Chehab 	TP_fast_assign(
23*2c92ca84SSteven Rostedt (Google) 		__assign_str(hw_name);
249b18ef7cSMauro Carvalho Chehab 		__entry->offset = offset;
259b18ef7cSMauro Carvalho Chehab 		__entry->value = value;
269b18ef7cSMauro Carvalho Chehab 	),
279b18ef7cSMauro Carvalho Chehab 	TP_printk("%s:0x%03x 0x%08x", __get_str(hw_name), __entry->offset,
289b18ef7cSMauro Carvalho Chehab 		  __entry->value)
299b18ef7cSMauro Carvalho Chehab );
309b18ef7cSMauro Carvalho Chehab 
319b18ef7cSMauro Carvalho Chehab DEFINE_EVENT(register_access, vde_writel,
329b18ef7cSMauro Carvalho Chehab 	TP_PROTO(struct tegra_vde *vde, void __iomem *base,
339b18ef7cSMauro Carvalho Chehab 		 u32 offset, u32 value),
349b18ef7cSMauro Carvalho Chehab 	TP_ARGS(vde, base, offset, value));
359b18ef7cSMauro Carvalho Chehab DEFINE_EVENT(register_access, vde_readl,
369b18ef7cSMauro Carvalho Chehab 	TP_PROTO(struct tegra_vde *vde, void __iomem *base,
379b18ef7cSMauro Carvalho Chehab 		 u32 offset, u32 value),
389b18ef7cSMauro Carvalho Chehab 	TP_ARGS(vde, base, offset, value));
399b18ef7cSMauro Carvalho Chehab 
409b18ef7cSMauro Carvalho Chehab TRACE_EVENT(vde_setup_iram_entry,
419b18ef7cSMauro Carvalho Chehab 	TP_PROTO(unsigned int table, unsigned int row, u32 value, u32 aux_addr),
429b18ef7cSMauro Carvalho Chehab 	TP_ARGS(table, row, value, aux_addr),
439b18ef7cSMauro Carvalho Chehab 	TP_STRUCT__entry(
449b18ef7cSMauro Carvalho Chehab 		__field(unsigned int, table)
459b18ef7cSMauro Carvalho Chehab 		__field(unsigned int, row)
469b18ef7cSMauro Carvalho Chehab 		__field(u32, value)
479b18ef7cSMauro Carvalho Chehab 		__field(u32, aux_addr)
489b18ef7cSMauro Carvalho Chehab 	),
499b18ef7cSMauro Carvalho Chehab 	TP_fast_assign(
509b18ef7cSMauro Carvalho Chehab 		__entry->table = table;
519b18ef7cSMauro Carvalho Chehab 		__entry->row = row;
529b18ef7cSMauro Carvalho Chehab 		__entry->value = value;
539b18ef7cSMauro Carvalho Chehab 		__entry->aux_addr = aux_addr;
549b18ef7cSMauro Carvalho Chehab 	),
559b18ef7cSMauro Carvalho Chehab 	TP_printk("[%u][%u] = { 0x%08x (flags = \"%s\", frame_num = %u); 0x%08x }",
569b18ef7cSMauro Carvalho Chehab 		  __entry->table, __entry->row, __entry->value,
579b18ef7cSMauro Carvalho Chehab 		  __print_flags(__entry->value, " ", { (1 << 25), "B" }),
589b18ef7cSMauro Carvalho Chehab 		  __entry->value & 0x7FFFFF, __entry->aux_addr)
599b18ef7cSMauro Carvalho Chehab );
609b18ef7cSMauro Carvalho Chehab 
619b18ef7cSMauro Carvalho Chehab TRACE_EVENT(vde_ref_l0,
629b18ef7cSMauro Carvalho Chehab 	TP_PROTO(unsigned int frame_num),
639b18ef7cSMauro Carvalho Chehab 	TP_ARGS(frame_num),
649b18ef7cSMauro Carvalho Chehab 	TP_STRUCT__entry(
659b18ef7cSMauro Carvalho Chehab 		__field(unsigned int, frame_num)
669b18ef7cSMauro Carvalho Chehab 	),
679b18ef7cSMauro Carvalho Chehab 	TP_fast_assign(
689b18ef7cSMauro Carvalho Chehab 		__entry->frame_num = frame_num;
699b18ef7cSMauro Carvalho Chehab 	),
709b18ef7cSMauro Carvalho Chehab 	TP_printk("REF L0: DPB: Frame 0: frame_num = %u", __entry->frame_num)
719b18ef7cSMauro Carvalho Chehab );
729b18ef7cSMauro Carvalho Chehab 
739b18ef7cSMauro Carvalho Chehab TRACE_EVENT(vde_ref_l1,
749b18ef7cSMauro Carvalho Chehab 	TP_PROTO(unsigned int with_later_poc_nb,
759b18ef7cSMauro Carvalho Chehab 		 unsigned int with_earlier_poc_nb),
769b18ef7cSMauro Carvalho Chehab 	TP_ARGS(with_later_poc_nb, with_earlier_poc_nb),
779b18ef7cSMauro Carvalho Chehab 	TP_STRUCT__entry(
789b18ef7cSMauro Carvalho Chehab 		__field(unsigned int, with_later_poc_nb)
799b18ef7cSMauro Carvalho Chehab 		__field(unsigned int, with_earlier_poc_nb)
809b18ef7cSMauro Carvalho Chehab 	),
819b18ef7cSMauro Carvalho Chehab 	TP_fast_assign(
829b18ef7cSMauro Carvalho Chehab 		__entry->with_later_poc_nb = with_later_poc_nb;
839b18ef7cSMauro Carvalho Chehab 		__entry->with_earlier_poc_nb = with_earlier_poc_nb;
849b18ef7cSMauro Carvalho Chehab 	),
859b18ef7cSMauro Carvalho Chehab 	TP_printk("REF L1: with_later_poc_nb %u, with_earlier_poc_nb %u",
869b18ef7cSMauro Carvalho Chehab 		  __entry->with_later_poc_nb, __entry->with_earlier_poc_nb)
879b18ef7cSMauro Carvalho Chehab );
889b18ef7cSMauro Carvalho Chehab 
899b18ef7cSMauro Carvalho Chehab #endif /* TEGRA_VDE_TRACE_H */
909b18ef7cSMauro Carvalho Chehab 
919b18ef7cSMauro Carvalho Chehab /* This part must be outside protection */
929b18ef7cSMauro Carvalho Chehab #undef TRACE_INCLUDE_PATH
939b18ef7cSMauro Carvalho Chehab #define TRACE_INCLUDE_PATH ../../drivers/media/platform/nvidia/tegra-vde
949b18ef7cSMauro Carvalho Chehab #define TRACE_INCLUDE_FILE trace
959b18ef7cSMauro Carvalho Chehab #include <trace/define_trace.h>
96