trace-smp2p.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
  4. */
  5. #undef TRACE_SYSTEM
  6. #define TRACE_SYSTEM qcom_smp2p
  7. #if !defined(__QCOM_SMP2P_TRACE_H__) || defined(TRACE_HEADER_MULTI_READ)
  8. #define __QCOM_SMP2P_TRACE_H__
  9. #include <linux/device.h>
  10. #include <linux/tracepoint.h>
  11. TRACE_EVENT(smp2p_ssr_ack,
  12. TP_PROTO(const struct device *dev),
  13. TP_ARGS(dev),
  14. TP_STRUCT__entry(
  15. __string(dev_name, dev_name(dev))
  16. ),
  17. TP_fast_assign(
  18. __assign_str(dev_name);
  19. ),
  20. TP_printk("%s: SSR detected", __get_str(dev_name))
  21. );
  22. TRACE_EVENT(smp2p_negotiate,
  23. TP_PROTO(const struct device *dev, unsigned int features),
  24. TP_ARGS(dev, features),
  25. TP_STRUCT__entry(
  26. __string(dev_name, dev_name(dev))
  27. __field(u32, out_features)
  28. ),
  29. TP_fast_assign(
  30. __assign_str(dev_name);
  31. __entry->out_features = features;
  32. ),
  33. TP_printk("%s: state=open out_features=%s", __get_str(dev_name),
  34. __print_flags(__entry->out_features, "|",
  35. {SMP2P_FEATURE_SSR_ACK, "SMP2P_FEATURE_SSR_ACK"})
  36. )
  37. );
  38. TRACE_EVENT(smp2p_notify_in,
  39. TP_PROTO(struct smp2p_entry *smp2p_entry, unsigned long status, u32 val),
  40. TP_ARGS(smp2p_entry, status, val),
  41. TP_STRUCT__entry(
  42. __string(dev_name, dev_name(smp2p_entry->smp2p->dev))
  43. __string(client_name, smp2p_entry->name)
  44. __field(unsigned long, status)
  45. __field(u32, val)
  46. ),
  47. TP_fast_assign(
  48. __assign_str(dev_name);
  49. __assign_str(client_name);
  50. __entry->status = status;
  51. __entry->val = val;
  52. ),
  53. TP_printk("%s: %s: status:0x%0lx val:0x%0x",
  54. __get_str(dev_name),
  55. __get_str(client_name),
  56. __entry->status,
  57. __entry->val
  58. )
  59. );
  60. TRACE_EVENT(smp2p_update_bits,
  61. TP_PROTO(struct smp2p_entry *smp2p_entry, u32 orig, u32 val),
  62. TP_ARGS(smp2p_entry, orig, val),
  63. TP_STRUCT__entry(
  64. __string(dev_name, dev_name(smp2p_entry->smp2p->dev))
  65. __string(client_name, smp2p_entry->name)
  66. __field(u32, orig)
  67. __field(u32, val)
  68. ),
  69. TP_fast_assign(
  70. __assign_str(dev_name);
  71. __assign_str(client_name);
  72. __entry->orig = orig;
  73. __entry->val = val;
  74. ),
  75. TP_printk("%s: %s: orig:0x%0x new:0x%0x",
  76. __get_str(dev_name),
  77. __get_str(client_name),
  78. __entry->orig,
  79. __entry->val
  80. )
  81. );
  82. #endif /* __QCOM_SMP2P_TRACE_H__ */
  83. #undef TRACE_INCLUDE_PATH
  84. #define TRACE_INCLUDE_PATH .
  85. #undef TRACE_INCLUDE_FILE
  86. #define TRACE_INCLUDE_FILE trace-smp2p
  87. #include <trace/define_trace.h>