pll_trace.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
  4. */
  5. #if !defined(_MDSS_PLL_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
  6. #define _MDSS_PLL_TRACE_H_
  7. #include <linux/stringify.h>
  8. #include <linux/types.h>
  9. #include <linux/tracepoint.h>
  10. #undef TRACE_SYSTEM
  11. #define TRACE_SYSTEM mdss_pll
  12. #undef TRACE_INCLUDE_FILE
  13. #define TRACE_INCLUDE_FILE pll_trace
  14. TRACE_EVENT(mdss_pll_lock_start,
  15. TP_PROTO(
  16. u64 vco_cached_rate,
  17. s64 vco_current_rate,
  18. u32 cached_cfg0,
  19. u32 cached_cfg1,
  20. u32 cached_outdiv,
  21. u32 resource_ref_cnt),
  22. TP_ARGS(
  23. vco_cached_rate,
  24. vco_current_rate,
  25. cached_cfg0,
  26. cached_cfg1,
  27. cached_outdiv,
  28. resource_ref_cnt),
  29. TP_STRUCT__entry(
  30. __field(u64, vco_cached_rate)
  31. __field(s64, vco_current_rate)
  32. __field(u32, cached_cfg0)
  33. __field(u32, cached_cfg1)
  34. __field(u32, cached_outdiv)
  35. __field(u32, resource_ref_cnt)
  36. ),
  37. TP_fast_assign(
  38. __entry->vco_cached_rate = vco_cached_rate;
  39. __entry->vco_current_rate = vco_current_rate;
  40. __entry->cached_cfg0 = cached_cfg0;
  41. __entry->cached_cfg1 = cached_cfg1;
  42. __entry->cached_outdiv = cached_outdiv;
  43. __entry->resource_ref_cnt = resource_ref_cnt;
  44. ),
  45. TP_printk(
  46. "vco_cached_rate=%llu vco_current_rate=%lld cached_cfg0=%d cached_cfg1=%d cached_outdiv=%d resource_ref_cnt=%d",
  47. __entry->vco_cached_rate,
  48. __entry->vco_current_rate,
  49. __entry->cached_cfg0,
  50. __entry->cached_cfg1,
  51. __entry->cached_outdiv,
  52. __entry->resource_ref_cnt)
  53. );
  54. TRACE_EVENT(pll_tracing_mark_write,
  55. TP_PROTO(int pid, const char *name, bool trace_begin),
  56. TP_ARGS(pid, name, trace_begin),
  57. TP_STRUCT__entry(
  58. __field(int, pid)
  59. __string(trace_name, name)
  60. __field(bool, trace_begin)
  61. ),
  62. TP_fast_assign(
  63. __entry->pid = pid;
  64. __assign_str(trace_name, name);
  65. __entry->trace_begin = trace_begin;
  66. ),
  67. TP_printk("%s|%d|%s", __entry->trace_begin ? "B" : "E",
  68. __entry->pid, __get_str(trace_name))
  69. )
  70. TRACE_EVENT(mdss_pll_trace_counter,
  71. TP_PROTO(int pid, char *name, int value),
  72. TP_ARGS(pid, name, value),
  73. TP_STRUCT__entry(
  74. __field(int, pid)
  75. __string(counter_name, name)
  76. __field(int, value)
  77. ),
  78. TP_fast_assign(
  79. __entry->pid = current->tgid;
  80. __assign_str(counter_name, name);
  81. __entry->value = value;
  82. ),
  83. TP_printk("%d|%s|%d", __entry->pid,
  84. __get_str(counter_name), __entry->value)
  85. )
  86. #define MDSS_PLL_ATRACE_END(name) trace_pll_tracing_mark_write(current->tgid,\
  87. name, 0)
  88. #define MDSS_PLL_ATRACE_BEGIN(name) trace_pll_tracing_mark_write(current->tgid,\
  89. name, 1)
  90. #define MDSS_PLL_ATRACE_FUNC() MDSS_PLL_ATRACE_BEGIN(__func__)
  91. #define MDSS_PLL_ATRACE_INT(name, value) \
  92. trace_mdss_pll_trace_counter(current->tgid, name, value)
  93. #endif /* _MDSS_PLL_TRACE_H_ */
  94. /* This part must be outside protection */
  95. #undef TRACE_INCLUDE_PATH
  96. #define TRACE_INCLUDE_PATH .
  97. #include <trace/define_trace.h>