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