xref: /openbmc/linux/drivers/usb/musb/musb_trace.h (revision 3709ff5dc35203c5e93424941fa660e770a1e728)
15fd54aceSGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
2f89252adSBin Liu /*
3f89252adSBin Liu  * musb_trace.h - MUSB Controller Trace Support
4f89252adSBin Liu  *
5f89252adSBin Liu  * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com
6f89252adSBin Liu  *
7f89252adSBin Liu  * Author: Bin Liu <b-liu@ti.com>
8f89252adSBin Liu  */
9f89252adSBin Liu 
10f89252adSBin Liu #undef TRACE_SYSTEM
11f89252adSBin Liu #define TRACE_SYSTEM musb
12f89252adSBin Liu 
13f89252adSBin Liu #if !defined(__MUSB_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
14f89252adSBin Liu #define __MUSB_TRACE_H
15f89252adSBin Liu 
16f89252adSBin Liu #include <linux/types.h>
17f89252adSBin Liu #include <linux/tracepoint.h>
1819ca682eSBin Liu #include <linux/usb.h>
19f89252adSBin Liu #include "musb_core.h"
208ccb49ddSBin Liu #ifdef CONFIG_USB_TI_CPPI41_DMA
218ccb49ddSBin Liu #include "cppi_dma.h"
228ccb49ddSBin Liu #endif
23f89252adSBin Liu 
24f89252adSBin Liu #define MUSB_MSG_MAX   500
25f89252adSBin Liu 
26f89252adSBin Liu TRACE_EVENT(musb_log,
27f89252adSBin Liu 	TP_PROTO(struct musb *musb, struct va_format *vaf),
28f89252adSBin Liu 	TP_ARGS(musb, vaf),
29f89252adSBin Liu 	TP_STRUCT__entry(
30f89252adSBin Liu 		__string(name, dev_name(musb->controller))
31f89252adSBin Liu 		__dynamic_array(char, msg, MUSB_MSG_MAX)
32f89252adSBin Liu 	),
33f89252adSBin Liu 	TP_fast_assign(
34f89252adSBin Liu 		__assign_str(name, dev_name(musb->controller));
35f89252adSBin Liu 		vsnprintf(__get_str(msg), MUSB_MSG_MAX, vaf->fmt, *vaf->va);
36f89252adSBin Liu 	),
37f89252adSBin Liu 	TP_printk("%s: %s", __get_str(name), __get_str(msg))
38f89252adSBin Liu );
39f89252adSBin Liu 
40c74173fdSBin Liu DECLARE_EVENT_CLASS(musb_regb,
41*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void  __iomem *addr,
42*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u8 data),
43c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data),
44c74173fdSBin Liu 	TP_STRUCT__entry(
45c74173fdSBin Liu 		__field(void *, caller)
46*3709ff5dSBen Dooks (Codethink) 		__field(const void __iomem *, addr)
47c74173fdSBin Liu 		__field(unsigned int, offset)
48c74173fdSBin Liu 		__field(u8, data)
49c74173fdSBin Liu 	),
50c74173fdSBin Liu 	TP_fast_assign(
51c74173fdSBin Liu 		__entry->caller = caller;
52c74173fdSBin Liu 		__entry->addr = addr;
53c74173fdSBin Liu 		__entry->offset = offset;
54c74173fdSBin Liu 		__entry->data = data;
55c74173fdSBin Liu 	),
56c74173fdSBin Liu 	TP_printk("%pS: %p + %04x: %02x",
57c74173fdSBin Liu 		__entry->caller, __entry->addr, __entry->offset, __entry->data)
58c74173fdSBin Liu );
59c74173fdSBin Liu 
60c74173fdSBin Liu DEFINE_EVENT(musb_regb, musb_readb,
61*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
62*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u8 data),
63c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data)
64c74173fdSBin Liu );
65c74173fdSBin Liu 
66c74173fdSBin Liu DEFINE_EVENT(musb_regb, musb_writeb,
67*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
68*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u8 data),
69c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data)
70c74173fdSBin Liu );
71c74173fdSBin Liu 
72c74173fdSBin Liu DECLARE_EVENT_CLASS(musb_regw,
73*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
74*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u16 data),
75c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data),
76c74173fdSBin Liu 	TP_STRUCT__entry(
77c74173fdSBin Liu 		__field(void *, caller)
78*3709ff5dSBen Dooks (Codethink) 		__field(const void __iomem *, addr)
79c74173fdSBin Liu 		__field(unsigned int, offset)
80c74173fdSBin Liu 		__field(u16, data)
81c74173fdSBin Liu 	),
82c74173fdSBin Liu 	TP_fast_assign(
83c74173fdSBin Liu 		__entry->caller = caller;
84c74173fdSBin Liu 		__entry->addr = addr;
85c74173fdSBin Liu 		__entry->offset = offset;
86c74173fdSBin Liu 		__entry->data = data;
87c74173fdSBin Liu 	),
88c74173fdSBin Liu 	TP_printk("%pS: %p + %04x: %04x",
89c74173fdSBin Liu 		__entry->caller, __entry->addr, __entry->offset, __entry->data)
90c74173fdSBin Liu );
91c74173fdSBin Liu 
92c74173fdSBin Liu DEFINE_EVENT(musb_regw, musb_readw,
93*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
94*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u16 data),
95c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data)
96c74173fdSBin Liu );
97c74173fdSBin Liu 
98c74173fdSBin Liu DEFINE_EVENT(musb_regw, musb_writew,
99*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
100*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u16 data),
101c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data)
102c74173fdSBin Liu );
103c74173fdSBin Liu 
104c74173fdSBin Liu DECLARE_EVENT_CLASS(musb_regl,
105*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
106*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u32 data),
107c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data),
108c74173fdSBin Liu 	TP_STRUCT__entry(
109c74173fdSBin Liu 		__field(void *, caller)
110*3709ff5dSBen Dooks (Codethink) 		__field(const void __iomem *, addr)
111c74173fdSBin Liu 		__field(unsigned int, offset)
112c74173fdSBin Liu 		__field(u32, data)
113c74173fdSBin Liu 	),
114c74173fdSBin Liu 	TP_fast_assign(
115c74173fdSBin Liu 		__entry->caller = caller;
116c74173fdSBin Liu 		__entry->addr = addr;
117c74173fdSBin Liu 		__entry->offset = offset;
118c74173fdSBin Liu 		__entry->data = data;
119c74173fdSBin Liu 	),
120c74173fdSBin Liu 	TP_printk("%pS: %p + %04x: %08x",
121c74173fdSBin Liu 		__entry->caller, __entry->addr, __entry->offset, __entry->data)
122c74173fdSBin Liu );
123c74173fdSBin Liu 
124c74173fdSBin Liu DEFINE_EVENT(musb_regl, musb_readl,
125*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
126*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u32 data),
127c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data)
128c74173fdSBin Liu );
129c74173fdSBin Liu 
130c74173fdSBin Liu DEFINE_EVENT(musb_regl, musb_writel,
131*3709ff5dSBen Dooks (Codethink) 	TP_PROTO(void *caller, const void __iomem *addr,
132*3709ff5dSBen Dooks (Codethink) 		 unsigned int offset, u32 data),
133c74173fdSBin Liu 	TP_ARGS(caller, addr, offset, data)
134c74173fdSBin Liu );
135c74173fdSBin Liu 
136cfb9a1bcSBin Liu TRACE_EVENT(musb_isr,
137cfb9a1bcSBin Liu 	TP_PROTO(struct musb *musb),
138cfb9a1bcSBin Liu 	TP_ARGS(musb),
139cfb9a1bcSBin Liu 	TP_STRUCT__entry(
140cfb9a1bcSBin Liu 		__string(name, dev_name(musb->controller))
141cfb9a1bcSBin Liu 		__field(u8, int_usb)
142cfb9a1bcSBin Liu 		__field(u16, int_tx)
143cfb9a1bcSBin Liu 		__field(u16, int_rx)
144cfb9a1bcSBin Liu 	),
145cfb9a1bcSBin Liu 	TP_fast_assign(
146cfb9a1bcSBin Liu 		__assign_str(name, dev_name(musb->controller));
147cfb9a1bcSBin Liu 		__entry->int_usb = musb->int_usb;
148cfb9a1bcSBin Liu 		__entry->int_tx = musb->int_tx;
149cfb9a1bcSBin Liu 		__entry->int_rx = musb->int_rx;
150cfb9a1bcSBin Liu 	),
151cfb9a1bcSBin Liu 	TP_printk("%s: usb %02x, tx %04x, rx %04x",
152cfb9a1bcSBin Liu 		__get_str(name), __entry->int_usb,
153cfb9a1bcSBin Liu 		__entry->int_tx, __entry->int_rx
154cfb9a1bcSBin Liu 	)
155cfb9a1bcSBin Liu );
156cfb9a1bcSBin Liu 
15719ca682eSBin Liu DECLARE_EVENT_CLASS(musb_urb,
15819ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
15919ca682eSBin Liu 	TP_ARGS(musb, urb),
16019ca682eSBin Liu 	TP_STRUCT__entry(
16119ca682eSBin Liu 		__string(name, dev_name(musb->controller))
16219ca682eSBin Liu 		__field(struct urb *, urb)
16319ca682eSBin Liu 		__field(unsigned int, pipe)
16419ca682eSBin Liu 		__field(int, status)
16519ca682eSBin Liu 		__field(unsigned int, flag)
16619ca682eSBin Liu 		__field(u32, buf_len)
16719ca682eSBin Liu 		__field(u32, actual_len)
16819ca682eSBin Liu 	),
16919ca682eSBin Liu 	TP_fast_assign(
17019ca682eSBin Liu 		__assign_str(name, dev_name(musb->controller));
17119ca682eSBin Liu 		__entry->urb = urb;
17219ca682eSBin Liu 		__entry->pipe = urb->pipe;
17319ca682eSBin Liu 		__entry->status = urb->status;
17419ca682eSBin Liu 		__entry->flag = urb->transfer_flags;
17519ca682eSBin Liu 		__entry->buf_len = urb->transfer_buffer_length;
17619ca682eSBin Liu 		__entry->actual_len = urb->actual_length;
17719ca682eSBin Liu 	),
17819ca682eSBin Liu 	TP_printk("%s: %p, dev%d ep%d%s, flag 0x%x, len %d/%d, status %d",
17919ca682eSBin Liu 			__get_str(name), __entry->urb,
18019ca682eSBin Liu 			usb_pipedevice(__entry->pipe),
18119ca682eSBin Liu 			usb_pipeendpoint(__entry->pipe),
18219ca682eSBin Liu 			usb_pipein(__entry->pipe) ? "in" : "out",
18319ca682eSBin Liu 			__entry->flag,
18419ca682eSBin Liu 			__entry->actual_len, __entry->buf_len,
18519ca682eSBin Liu 			__entry->status
18619ca682eSBin Liu 	)
18719ca682eSBin Liu );
18819ca682eSBin Liu 
18919ca682eSBin Liu DEFINE_EVENT(musb_urb, musb_urb_start,
19019ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
19119ca682eSBin Liu 	TP_ARGS(musb, urb)
19219ca682eSBin Liu );
19319ca682eSBin Liu 
19419ca682eSBin Liu DEFINE_EVENT(musb_urb, musb_urb_gb,
19519ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
19619ca682eSBin Liu 	TP_ARGS(musb, urb)
19719ca682eSBin Liu );
19819ca682eSBin Liu 
19919ca682eSBin Liu DEFINE_EVENT(musb_urb, musb_urb_rx,
20019ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
20119ca682eSBin Liu 	TP_ARGS(musb, urb)
20219ca682eSBin Liu );
20319ca682eSBin Liu 
20419ca682eSBin Liu DEFINE_EVENT(musb_urb, musb_urb_tx,
20519ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
20619ca682eSBin Liu 	TP_ARGS(musb, urb)
20719ca682eSBin Liu );
20819ca682eSBin Liu 
20919ca682eSBin Liu DEFINE_EVENT(musb_urb, musb_urb_enq,
21019ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
21119ca682eSBin Liu 	TP_ARGS(musb, urb)
21219ca682eSBin Liu );
21319ca682eSBin Liu 
21419ca682eSBin Liu DEFINE_EVENT(musb_urb, musb_urb_deq,
21519ca682eSBin Liu 	TP_PROTO(struct musb *musb, struct urb *urb),
21619ca682eSBin Liu 	TP_ARGS(musb, urb)
21719ca682eSBin Liu );
21819ca682eSBin Liu 
219fc78003eSBin Liu DECLARE_EVENT_CLASS(musb_req,
220fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
221fc78003eSBin Liu 	TP_ARGS(req),
222fc78003eSBin Liu 	TP_STRUCT__entry(
223fc78003eSBin Liu 		__field(struct usb_request *, req)
224fc78003eSBin Liu 		__field(u8, is_tx)
225fc78003eSBin Liu 		__field(u8, epnum)
226fc78003eSBin Liu 		__field(int, status)
227fc78003eSBin Liu 		__field(unsigned int, buf_len)
228fc78003eSBin Liu 		__field(unsigned int, actual_len)
229fc78003eSBin Liu 		__field(unsigned int, zero)
230fc78003eSBin Liu 		__field(unsigned int, short_not_ok)
231fc78003eSBin Liu 		__field(unsigned int, no_interrupt)
232fc78003eSBin Liu 	),
233fc78003eSBin Liu 	TP_fast_assign(
234fc78003eSBin Liu 		__entry->req = &req->request;
235fc78003eSBin Liu 		__entry->is_tx = req->tx;
236fc78003eSBin Liu 		__entry->epnum = req->epnum;
237fc78003eSBin Liu 		__entry->status = req->request.status;
238fc78003eSBin Liu 		__entry->buf_len = req->request.length;
239fc78003eSBin Liu 		__entry->actual_len = req->request.actual;
240fc78003eSBin Liu 		__entry->zero = req->request.zero;
241fc78003eSBin Liu 		__entry->short_not_ok = req->request.short_not_ok;
242fc78003eSBin Liu 		__entry->no_interrupt = req->request.no_interrupt;
243fc78003eSBin Liu 	),
244fc78003eSBin Liu 	TP_printk("%p, ep%d %s, %s%s%s, len %d/%d, status %d",
245fc78003eSBin Liu 			__entry->req, __entry->epnum,
246fc78003eSBin Liu 			__entry->is_tx ? "tx/IN" : "rx/OUT",
247fc78003eSBin Liu 			__entry->zero ? "Z" : "z",
248fc78003eSBin Liu 			__entry->short_not_ok ? "S" : "s",
249fc78003eSBin Liu 			__entry->no_interrupt ? "I" : "i",
250fc78003eSBin Liu 			__entry->actual_len, __entry->buf_len,
251fc78003eSBin Liu 			__entry->status
252fc78003eSBin Liu 	)
253fc78003eSBin Liu );
254fc78003eSBin Liu 
255fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_gb,
256fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
257fc78003eSBin Liu 	TP_ARGS(req)
258fc78003eSBin Liu );
259fc78003eSBin Liu 
260fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_tx,
261fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
262fc78003eSBin Liu 	TP_ARGS(req)
263fc78003eSBin Liu );
264fc78003eSBin Liu 
265fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_rx,
266fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
267fc78003eSBin Liu 	TP_ARGS(req)
268fc78003eSBin Liu );
269fc78003eSBin Liu 
270fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_alloc,
271fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
272fc78003eSBin Liu 	TP_ARGS(req)
273fc78003eSBin Liu );
274fc78003eSBin Liu 
275fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_free,
276fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
277fc78003eSBin Liu 	TP_ARGS(req)
278fc78003eSBin Liu );
279fc78003eSBin Liu 
280fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_start,
281fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
282fc78003eSBin Liu 	TP_ARGS(req)
283fc78003eSBin Liu );
284fc78003eSBin Liu 
285fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_enq,
286fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
287fc78003eSBin Liu 	TP_ARGS(req)
288fc78003eSBin Liu );
289fc78003eSBin Liu 
290fc78003eSBin Liu DEFINE_EVENT(musb_req, musb_req_deq,
291fc78003eSBin Liu 	TP_PROTO(struct musb_request *req),
292fc78003eSBin Liu 	TP_ARGS(req)
293fc78003eSBin Liu );
294fc78003eSBin Liu 
2958ccb49ddSBin Liu #ifdef CONFIG_USB_TI_CPPI41_DMA
2968ccb49ddSBin Liu DECLARE_EVENT_CLASS(musb_cppi41,
2978ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
2988ccb49ddSBin Liu 	TP_ARGS(ch),
2998ccb49ddSBin Liu 	TP_STRUCT__entry(
3008ccb49ddSBin Liu 		__field(struct cppi41_dma_channel *, ch)
3018ccb49ddSBin Liu 		__string(name, dev_name(ch->hw_ep->musb->controller))
3028ccb49ddSBin Liu 		__field(u8, hwep)
3038ccb49ddSBin Liu 		__field(u8, port)
3048ccb49ddSBin Liu 		__field(u8, is_tx)
3058ccb49ddSBin Liu 		__field(u32, len)
3068ccb49ddSBin Liu 		__field(u32, prog_len)
3078ccb49ddSBin Liu 		__field(u32, xferred)
3088ccb49ddSBin Liu 	),
3098ccb49ddSBin Liu 	TP_fast_assign(
3108ccb49ddSBin Liu 		__entry->ch = ch;
3118ccb49ddSBin Liu 		__assign_str(name, dev_name(ch->hw_ep->musb->controller));
3128ccb49ddSBin Liu 		__entry->hwep = ch->hw_ep->epnum;
3138ccb49ddSBin Liu 		__entry->port = ch->port_num;
3148ccb49ddSBin Liu 		__entry->is_tx = ch->is_tx;
3158ccb49ddSBin Liu 		__entry->len = ch->total_len;
3168ccb49ddSBin Liu 		__entry->prog_len = ch->prog_len;
3178ccb49ddSBin Liu 		__entry->xferred = ch->transferred;
3188ccb49ddSBin Liu 	),
3198ccb49ddSBin Liu 	TP_printk("%s: %p, hwep%d ch%d%s, prog_len %d, len %d/%d",
3208ccb49ddSBin Liu 			__get_str(name), __entry->ch, __entry->hwep,
3218ccb49ddSBin Liu 			__entry->port, __entry->is_tx ? "tx" : "rx",
3228ccb49ddSBin Liu 			__entry->prog_len, __entry->xferred, __entry->len
3238ccb49ddSBin Liu 	)
3248ccb49ddSBin Liu );
3258ccb49ddSBin Liu 
3268ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_done,
3278ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3288ccb49ddSBin Liu 	TP_ARGS(ch)
3298ccb49ddSBin Liu );
3308ccb49ddSBin Liu 
3318ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_gb,
3328ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3338ccb49ddSBin Liu 	TP_ARGS(ch)
3348ccb49ddSBin Liu );
3358ccb49ddSBin Liu 
3368ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_config,
3378ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3388ccb49ddSBin Liu 	TP_ARGS(ch)
3398ccb49ddSBin Liu );
3408ccb49ddSBin Liu 
3418ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_cont,
3428ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3438ccb49ddSBin Liu 	TP_ARGS(ch)
3448ccb49ddSBin Liu );
3458ccb49ddSBin Liu 
3468ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_alloc,
3478ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3488ccb49ddSBin Liu 	TP_ARGS(ch)
3498ccb49ddSBin Liu );
3508ccb49ddSBin Liu 
3518ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_abort,
3528ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3538ccb49ddSBin Liu 	TP_ARGS(ch)
3548ccb49ddSBin Liu );
3558ccb49ddSBin Liu 
3568ccb49ddSBin Liu DEFINE_EVENT(musb_cppi41, musb_cppi41_free,
3578ccb49ddSBin Liu 	TP_PROTO(struct cppi41_dma_channel *ch),
3588ccb49ddSBin Liu 	TP_ARGS(ch)
3598ccb49ddSBin Liu );
3608ccb49ddSBin Liu #endif /* CONFIG_USB_TI_CPPI41_DMA */
3618ccb49ddSBin Liu 
362f89252adSBin Liu #endif /* __MUSB_TRACE_H */
363f89252adSBin Liu 
364f89252adSBin Liu /* this part has to be here */
365f89252adSBin Liu 
366f89252adSBin Liu #undef TRACE_INCLUDE_PATH
367f89252adSBin Liu #define TRACE_INCLUDE_PATH .
368f89252adSBin Liu 
369f89252adSBin Liu #undef TRACE_INCLUDE_FILE
370f89252adSBin Liu #define TRACE_INCLUDE_FILE musb_trace
371f89252adSBin Liu 
372f89252adSBin Liu #include <trace/define_trace.h>
373