trace.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #undef TRACE_SYSTEM
  3. #define TRACE_SYSTEM tegra_vde
  4. #if !defined(TEGRA_VDE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
  5. #define TEGRA_VDE_TRACE_H
  6. #include <linux/tracepoint.h>
  7. #include "vde.h"
  8. DECLARE_EVENT_CLASS(register_access,
  9. TP_PROTO(struct tegra_vde *vde, void __iomem *base,
  10. u32 offset, u32 value),
  11. TP_ARGS(vde, base, offset, value),
  12. TP_STRUCT__entry(
  13. __string(hw_name, tegra_vde_reg_base_name(vde, base))
  14. __field(u32, offset)
  15. __field(u32, value)
  16. ),
  17. TP_fast_assign(
  18. __assign_str(hw_name);
  19. __entry->offset = offset;
  20. __entry->value = value;
  21. ),
  22. TP_printk("%s:0x%03x 0x%08x", __get_str(hw_name), __entry->offset,
  23. __entry->value)
  24. );
  25. DEFINE_EVENT(register_access, vde_writel,
  26. TP_PROTO(struct tegra_vde *vde, void __iomem *base,
  27. u32 offset, u32 value),
  28. TP_ARGS(vde, base, offset, value));
  29. DEFINE_EVENT(register_access, vde_readl,
  30. TP_PROTO(struct tegra_vde *vde, void __iomem *base,
  31. u32 offset, u32 value),
  32. TP_ARGS(vde, base, offset, value));
  33. TRACE_EVENT(vde_setup_iram_entry,
  34. TP_PROTO(unsigned int table, unsigned int row, u32 value, u32 aux_addr),
  35. TP_ARGS(table, row, value, aux_addr),
  36. TP_STRUCT__entry(
  37. __field(unsigned int, table)
  38. __field(unsigned int, row)
  39. __field(u32, value)
  40. __field(u32, aux_addr)
  41. ),
  42. TP_fast_assign(
  43. __entry->table = table;
  44. __entry->row = row;
  45. __entry->value = value;
  46. __entry->aux_addr = aux_addr;
  47. ),
  48. TP_printk("[%u][%u] = { 0x%08x (flags = \"%s\", frame_num = %u); 0x%08x }",
  49. __entry->table, __entry->row, __entry->value,
  50. __print_flags(__entry->value, " ", { (1 << 25), "B" }),
  51. __entry->value & 0x7FFFFF, __entry->aux_addr)
  52. );
  53. TRACE_EVENT(vde_ref_l0,
  54. TP_PROTO(unsigned int frame_num),
  55. TP_ARGS(frame_num),
  56. TP_STRUCT__entry(
  57. __field(unsigned int, frame_num)
  58. ),
  59. TP_fast_assign(
  60. __entry->frame_num = frame_num;
  61. ),
  62. TP_printk("REF L0: DPB: Frame 0: frame_num = %u", __entry->frame_num)
  63. );
  64. TRACE_EVENT(vde_ref_l1,
  65. TP_PROTO(unsigned int with_later_poc_nb,
  66. unsigned int with_earlier_poc_nb),
  67. TP_ARGS(with_later_poc_nb, with_earlier_poc_nb),
  68. TP_STRUCT__entry(
  69. __field(unsigned int, with_later_poc_nb)
  70. __field(unsigned int, with_earlier_poc_nb)
  71. ),
  72. TP_fast_assign(
  73. __entry->with_later_poc_nb = with_later_poc_nb;
  74. __entry->with_earlier_poc_nb = with_earlier_poc_nb;
  75. ),
  76. TP_printk("REF L1: with_later_poc_nb %u, with_earlier_poc_nb %u",
  77. __entry->with_later_poc_nb, __entry->with_earlier_poc_nb)
  78. );
  79. #endif /* TEGRA_VDE_TRACE_H */
  80. /* This part must be outside protection */
  81. #undef TRACE_INCLUDE_PATH
  82. #define TRACE_INCLUDE_PATH ../../drivers/media/platform/nvidia/tegra-vde
  83. #define TRACE_INCLUDE_FILE trace
  84. #include <trace/define_trace.h>