blob: c6e85dceb485bea03df20db9d2159e0859b3c08f [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#undef TRACE_SYSTEM
2#define TRACE_SYSTEM pxa
3
4#if !defined(_TRACE_PXA_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_PXA_H
6
7#include <linux/tracepoint.h>
8
9#define LPM_ENTRY(index) ((index << 16) | 0)
10#define LPM_EXIT(index) ((index << 16) | 1)
11
12#define CLK_CHG_ENTRY 1
13#define CLK_CHG_EXIT 2
14
15#define CLK_ENABLE 1
16#define CLK_DISABLE 2
17
18#define HOTPLUG_ENTRY 1
19#define HOTPLUG_EXIT 2
20
21#define PXA_SDHC_DMA_START 0
22#define PXA_SDHC_DMA_END 1
23
24#define DVC_CHG_ENTRY 1
25#define DVC_CHG_EXIT 2
26
27TRACE_EVENT(pxa_ddr_upthreshold,
28 TP_PROTO(u32 upthreshold),
29
30 TP_ARGS(upthreshold),
31
32 TP_STRUCT__entry(
33 __field(u32, upthreshold)
34 ),
35
36 TP_fast_assign(
37 __entry->upthreshold = upthreshold;
38 ),
39
40 TP_printk("ddr devfreq upthreshold: %u", __entry->upthreshold)
41);
42
43TRACE_EVENT(pxa_sdhc_dma,
44 TP_PROTO(u32 state, u32 host),
45
46 TP_ARGS(state, host),
47
48 TP_STRUCT__entry(
49 __field(u32, state)
50 __field(u32, host)
51 ),
52
53 TP_fast_assign(
54 __entry->state = state;
55 __entry->host = host;
56 ),
57
58 TP_printk("state: %x host: %x", __entry->state, __entry->host)
59);
60
61TRACE_EVENT(pxa_cpu_idle,
62 TP_PROTO(u32 state, u32 cpu_id, u32 cluster),
63
64 TP_ARGS(state, cpu_id, cluster),
65
66 TP_STRUCT__entry(
67 __field(u32, state)
68 __field(u32, cpu_id)
69 __field(u32, cluster)
70 ),
71
72 TP_fast_assign(
73 __entry->state = state;
74 __entry->cpu_id = cpu_id;
75 __entry->cluster = cluster;
76 ),
77
78 TP_printk("state: 0x%x cpu_id: %u cluster %u",
79 __entry->state, __entry->cpu_id, __entry->cluster)
80);
81
82TRACE_EVENT(pxa_set_voltage,
83 TP_PROTO(const char *val0, u32 val1, u32 val2),
84
85 TP_ARGS(val0, val1, val2),
86
87 TP_STRUCT__entry(
88 __field(const char *, val0)
89 __field(u32, val1)
90 __field(u32, val2)
91 ),
92
93 TP_fast_assign(
94 __entry->val0 = val0;
95 __entry->val1 = val1;
96 __entry->val2 = val2;
97 ),
98
99 TP_printk("rail %s set voltage: %umV -> %umV",
100 __entry->val0, __entry->val1, __entry->val2)
101);
102
103TRACE_EVENT(pxa_core_hotplug,
104 TP_PROTO(u32 state, u32 id),
105
106 TP_ARGS(state, id),
107
108 TP_STRUCT__entry(
109 __field(u32, state)
110 __field(u32, id)
111 ),
112
113 TP_fast_assign(
114 __entry->state = state;
115 __entry->id = id;
116 ),
117
118 TP_printk("state: %u cpu_id: %u", __entry->state, __entry->id)
119);
120
121/* Show id, task number and mips for each online cpus */
122TRACE_EVENT(pxa_hp_single,
123 TP_PROTO(u32 id, u32 task, u32 load, u32 mips),
124
125 TP_ARGS(id, task, load, mips),
126
127 TP_STRUCT__entry(
128 __field(u32, id)
129 __field(u32, task)
130 __field(u32, load)
131 __field(u32, mips)
132 ),
133
134 TP_fast_assign(
135 __entry->id = id;
136 __entry->task = task;
137 __entry->load = load;
138 __entry->mips = mips;
139 ),
140
141 TP_printk("id:%1u task:%3u load:%3u mips:%6u",
142 __entry->id, __entry->task, __entry->load, __entry->mips)
143);
144
145/* This trace is for print mips in every hotplug window size */
146TRACE_EVENT(pxa_hp_total,
147 TP_PROTO(u32 cur_freq, u32 mips, u32 cpu_num),
148
149 TP_ARGS(cur_freq, mips, cpu_num),
150
151 TP_STRUCT__entry(
152 __field(u32, cur_freq)
153 __field(u32, mips)
154 __field(u32, cpu_num)
155 ),
156
157 TP_fast_assign(
158 __entry->cur_freq = cur_freq;
159 __entry->mips = mips;
160 __entry->cpu_num = cpu_num;
161 ),
162
163 TP_printk("cur_freq:%4uMHz mips:%6u cpu_num:%1u",
164 __entry->cur_freq, __entry->mips, __entry->cpu_num)
165);
166
167TRACE_EVENT(pxa_ddr_workload,
168 TP_PROTO(u32 workload, u32 freq, s32 throughput),
169
170 TP_ARGS(workload, freq, throughput),
171
172 TP_STRUCT__entry(
173 __field(u32, workload)
174 __field(u32, freq)
175 __field(s32, throughput)
176 ),
177
178 TP_fast_assign(
179 __entry->workload = workload;
180 __entry->freq = freq;
181 __entry->throughput = throughput;
182 ),
183
184 TP_printk("workload: %u freq: %uKHZ throughput: %u", __entry->workload,
185 __entry->freq, __entry->throughput)
186);
187
188TRACE_EVENT(pxa_core_clk_chg,
189 TP_PROTO(u32 state, u32 val1, u32 val2),
190
191 TP_ARGS(state, val1, val2),
192
193 TP_STRUCT__entry(
194 __field(u32, state)
195 __field(u32, val1)
196 __field(u32, val2)
197 ),
198
199 TP_fast_assign(
200 __entry->state = state;
201 __entry->val1 = val1;
202 __entry->val2 = val2;
203 ),
204
205 TP_printk("state: %u freq: %u -> %u",
206 __entry->state, __entry->val1, __entry->val2)
207);
208
209TRACE_EVENT(pxa_ddraxi_clk_chg,
210 TP_PROTO(u32 state, u32 val1, u32 val2),
211
212 TP_ARGS(state, val1, val2),
213
214 TP_STRUCT__entry(
215 __field(u32, state)
216 __field(u32, val1)
217 __field(u32, val2)
218 ),
219
220 TP_fast_assign(
221 __entry->state = state;
222 __entry->val1 = val1;
223 __entry->val2 = val2;
224 ),
225
226 TP_printk("state: %u freq: %u -> %u",
227 __entry->state, __entry->val1, __entry->val2)
228);
229
230TRACE_EVENT(pxa_ddr_clk_chg,
231 TP_PROTO(u32 state, u32 val1, u32 val2),
232
233 TP_ARGS(state, val1, val2),
234
235 TP_STRUCT__entry(
236 __field(u32, state)
237 __field(u32, val1)
238 __field(u32, val2)
239 ),
240
241 TP_fast_assign(
242 __entry->state = state;
243 __entry->val1 = val1;
244 __entry->val2 = val2;
245 ),
246
247 TP_printk("state: %u freq: %u -> %u",
248 __entry->state, __entry->val1, __entry->val2)
249);
250
251TRACE_EVENT(pxa_axi_clk_chg,
252 TP_PROTO(u32 state, u32 val1, u32 val2),
253
254 TP_ARGS(state, val1, val2),
255
256 TP_STRUCT__entry(
257 __field(u32, state)
258 __field(u32, val1)
259 __field(u32, val2)
260 ),
261
262 TP_fast_assign(
263 __entry->state = state;
264 __entry->val1 = val1;
265 __entry->val2 = val2;
266 ),
267
268 TP_printk("state: %u freq: %u -> %u",
269 __entry->state, __entry->val1, __entry->val2)
270);
271
272TRACE_EVENT(pxa_axi11_clk_chg,
273 TP_PROTO(u32 state, u32 val1, u32 val2),
274
275 TP_ARGS(state, val1, val2),
276
277 TP_STRUCT__entry(
278 __field(u32, state)
279 __field(u32, val1)
280 __field(u32, val2)
281 ),
282
283 TP_fast_assign(
284 __entry->state = state;
285 __entry->val1 = val1;
286 __entry->val2 = val2;
287 ),
288
289 TP_printk("state: %u freq: %u -> %u",
290 __entry->state, __entry->val1, __entry->val2)
291);
292
293TRACE_EVENT(pxa_dvc_d0_chg,
294 TP_PROTO(u32 state, u32 val1, u32 val2),
295
296 TP_ARGS(state, val1, val2),
297
298 TP_STRUCT__entry(
299 __field(u32, state)
300 __field(u32, val1)
301 __field(u32, val2)
302 ),
303
304 TP_fast_assign(
305 __entry->state = state;
306 __entry->val1 = val1;
307 __entry->val2 = val2;
308 ),
309
310 TP_printk("state: %u dvc level: %u -> %u",
311 __entry->state, __entry->val1, __entry->val2)
312);
313
314TRACE_EVENT(pxa_dvc_d0cg_chg,
315 TP_PROTO(u32 state, u32 val1, u32 val2),
316
317 TP_ARGS(state, val1, val2),
318
319 TP_STRUCT__entry(
320 __field(u32, state)
321 __field(u32, val1)
322 __field(u32, val2)
323 ),
324
325 TP_fast_assign(
326 __entry->state = state;
327 __entry->val1 = val1;
328 __entry->val2 = val2;
329 ),
330
331 TP_printk("state: %u dvc level: %u -> %u",
332 __entry->state, __entry->val1, __entry->val2)
333);
334
335TRACE_EVENT(pxa_gc_clk,
336 TP_PROTO(u32 state, u32 val),
337
338 TP_ARGS(state, val),
339
340 TP_STRUCT__entry(
341 __field(u32, state)
342 __field(u32, val)
343 ),
344
345 TP_fast_assign(
346 __entry->state = state;
347 __entry->val = val;
348 ),
349
350 TP_printk("state: %u clk: 0x%x", __entry->state, __entry->val)
351);
352
353TRACE_EVENT(pxa_ddr_lpm_tbl_update,
354 TP_PROTO(u32 value),
355
356 TP_ARGS(value),
357
358 TP_STRUCT__entry(
359 __field(u32, value)
360 ),
361
362 TP_fast_assign(
363 __entry->value = value;
364 ),
365
366 TP_printk("lpm_tbl: 0x%x", __entry->value)
367);
368
369/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
370
371#endif /* _TRACE_PXA_TRACE_H */
372
373/* This part must be outside protection */
374#include <trace/define_trace.h>