xref: /openbmc/linux/include/trace/events/rtc.h (revision 3a35093a)
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM rtc
3 
4 #if !defined(_TRACE_RTC_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_RTC_H
6 
7 #include <linux/rtc.h>
8 #include <linux/tracepoint.h>
9 
10 DECLARE_EVENT_CLASS(rtc_time_alarm_class,
11 
12 	TP_PROTO(time64_t secs, int err),
13 
14 	TP_ARGS(secs, err),
15 
16 	TP_STRUCT__entry(
17 		__field(time64_t, secs)
18 		__field(int, err)
19 	),
20 
21 	TP_fast_assign(
22 		__entry->secs = secs;
23 		__entry->err = err;
24 	),
25 
26 	TP_printk("UTC (%lld) (%d)",
27 		  __entry->secs, __entry->err
28 	)
29 );
30 
31 DEFINE_EVENT(rtc_time_alarm_class, rtc_set_time,
32 
33 	TP_PROTO(time64_t secs, int err),
34 
35 	TP_ARGS(secs, err)
36 );
37 
38 DEFINE_EVENT(rtc_time_alarm_class, rtc_read_time,
39 
40 	TP_PROTO(time64_t secs, int err),
41 
42 	TP_ARGS(secs, err)
43 );
44 
45 DEFINE_EVENT(rtc_time_alarm_class, rtc_set_alarm,
46 
47 	TP_PROTO(time64_t secs, int err),
48 
49 	TP_ARGS(secs, err)
50 );
51 
52 DEFINE_EVENT(rtc_time_alarm_class, rtc_read_alarm,
53 
54 	TP_PROTO(time64_t secs, int err),
55 
56 	TP_ARGS(secs, err)
57 );
58 
59 TRACE_EVENT(rtc_irq_set_freq,
60 
61 	TP_PROTO(int freq, int err),
62 
63 	TP_ARGS(freq, err),
64 
65 	TP_STRUCT__entry(
66 		__field(int, freq)
67 		__field(int, err)
68 	),
69 
70 	TP_fast_assign(
71 		__entry->freq = freq;
72 		__entry->err = err;
73 	),
74 
75 	TP_printk("set RTC periodic IRQ frequency:%u (%d)",
76 		  __entry->freq, __entry->err
77 	)
78 );
79 
80 TRACE_EVENT(rtc_irq_set_state,
81 
82 	TP_PROTO(int enabled, int err),
83 
84 	TP_ARGS(enabled, err),
85 
86 	TP_STRUCT__entry(
87 		__field(int, enabled)
88 		__field(int, err)
89 	),
90 
91 	TP_fast_assign(
92 		__entry->enabled = enabled;
93 		__entry->err = err;
94 	),
95 
96 	TP_printk("%s RTC 2^N Hz periodic IRQs (%d)",
97 		  __entry->enabled ? "enable" : "disable",
98 		  __entry->err
99 	)
100 );
101 
102 TRACE_EVENT(rtc_alarm_irq_enable,
103 
104 	TP_PROTO(unsigned int enabled, int err),
105 
106 	TP_ARGS(enabled, err),
107 
108 	TP_STRUCT__entry(
109 		__field(unsigned int, enabled)
110 		__field(int, err)
111 	),
112 
113 	TP_fast_assign(
114 		__entry->enabled = enabled;
115 		__entry->err = err;
116 	),
117 
118 	TP_printk("%s RTC alarm IRQ (%d)",
119 		  __entry->enabled ? "enable" : "disable",
120 		  __entry->err
121 	)
122 );
123 
124 DECLARE_EVENT_CLASS(rtc_offset_class,
125 
126 	TP_PROTO(long offset, int err),
127 
128 	TP_ARGS(offset, err),
129 
130 	TP_STRUCT__entry(
131 		__field(long, offset)
132 		__field(int, err)
133 	),
134 
135 	TP_fast_assign(
136 		__entry->offset = offset;
137 		__entry->err = err;
138 	),
139 
140 	TP_printk("RTC offset: %ld (%d)",
141 		  __entry->offset, __entry->err
142 	)
143 );
144 
145 DEFINE_EVENT(rtc_offset_class, rtc_set_offset,
146 
147 	TP_PROTO(long offset, int err),
148 
149 	TP_ARGS(offset, err)
150 );
151 
152 DEFINE_EVENT(rtc_offset_class, rtc_read_offset,
153 
154 	TP_PROTO(long offset, int err),
155 
156 	TP_ARGS(offset, err)
157 );
158 
159 DECLARE_EVENT_CLASS(rtc_timer_class,
160 
161 	TP_PROTO(struct rtc_timer *timer),
162 
163 	TP_ARGS(timer),
164 
165 	TP_STRUCT__entry(
166 		__field(struct rtc_timer *, timer)
167 		__field(ktime_t, expires)
168 		__field(ktime_t, period)
169 	),
170 
171 	TP_fast_assign(
172 		__entry->timer = timer;
173 		__entry->expires = timer->node.expires;
174 		__entry->period = timer->period;
175 	),
176 
177 	TP_printk("RTC timer:(%p) expires:%lld period:%lld",
178 		  __entry->timer, __entry->expires, __entry->period
179 	)
180 );
181 
182 DEFINE_EVENT(rtc_timer_class, rtc_timer_enqueue,
183 
184 	TP_PROTO(struct rtc_timer *timer),
185 
186 	TP_ARGS(timer)
187 );
188 
189 DEFINE_EVENT(rtc_timer_class, rtc_timer_dequeue,
190 
191 	TP_PROTO(struct rtc_timer *timer),
192 
193 	TP_ARGS(timer)
194 );
195 
196 DEFINE_EVENT(rtc_timer_class, rtc_timer_fired,
197 
198 	TP_PROTO(struct rtc_timer *timer),
199 
200 	TP_ARGS(timer)
201 );
202 
203 #endif /* _TRACE_RTC_H */
204 
205 /* This part must be outside protection */
206 #include <trace/define_trace.h>
207