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