xref: /openbmc/linux/drivers/gpu/drm/v3d/v3d_trace.h (revision d223f98f)
157692c94SEric Anholt // SPDX-License-Identifier: GPL-2.0+
257692c94SEric Anholt /* Copyright (C) 2015-2018 Broadcom */
357692c94SEric Anholt 
457692c94SEric Anholt #if !defined(_V3D_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
557692c94SEric Anholt #define _V3D_TRACE_H_
657692c94SEric Anholt 
757692c94SEric Anholt #include <linux/stringify.h>
857692c94SEric Anholt #include <linux/types.h>
957692c94SEric Anholt #include <linux/tracepoint.h>
1057692c94SEric Anholt 
1157692c94SEric Anholt #undef TRACE_SYSTEM
1257692c94SEric Anholt #define TRACE_SYSTEM v3d
1357692c94SEric Anholt #define TRACE_INCLUDE_FILE v3d_trace
1457692c94SEric Anholt 
1555a9b748SEric Anholt TRACE_EVENT(v3d_submit_cl_ioctl,
1655a9b748SEric Anholt 	    TP_PROTO(struct drm_device *dev, u32 ct1qba, u32 ct1qea),
1755a9b748SEric Anholt 	    TP_ARGS(dev, ct1qba, ct1qea),
1855a9b748SEric Anholt 
1955a9b748SEric Anholt 	    TP_STRUCT__entry(
2055a9b748SEric Anholt 			     __field(u32, dev)
2155a9b748SEric Anholt 			     __field(u32, ct1qba)
2255a9b748SEric Anholt 			     __field(u32, ct1qea)
2355a9b748SEric Anholt 			     ),
2455a9b748SEric Anholt 
2555a9b748SEric Anholt 	    TP_fast_assign(
2655a9b748SEric Anholt 			   __entry->dev = dev->primary->index;
2755a9b748SEric Anholt 			   __entry->ct1qba = ct1qba;
2855a9b748SEric Anholt 			   __entry->ct1qea = ct1qea;
2955a9b748SEric Anholt 			   ),
3055a9b748SEric Anholt 
3155a9b748SEric Anholt 	    TP_printk("dev=%u, RCL 0x%08x..0x%08x",
3255a9b748SEric Anholt 		      __entry->dev,
3355a9b748SEric Anholt 		      __entry->ct1qba,
3455a9b748SEric Anholt 		      __entry->ct1qea)
3555a9b748SEric Anholt );
3655a9b748SEric Anholt 
3757692c94SEric Anholt TRACE_EVENT(v3d_submit_cl,
3857692c94SEric Anholt 	    TP_PROTO(struct drm_device *dev, bool is_render,
3957692c94SEric Anholt 		     uint64_t seqno,
4057692c94SEric Anholt 		     u32 ctnqba, u32 ctnqea),
4157692c94SEric Anholt 	    TP_ARGS(dev, is_render, seqno, ctnqba, ctnqea),
4257692c94SEric Anholt 
4357692c94SEric Anholt 	    TP_STRUCT__entry(
4457692c94SEric Anholt 			     __field(u32, dev)
4557692c94SEric Anholt 			     __field(bool, is_render)
4657692c94SEric Anholt 			     __field(u64, seqno)
4757692c94SEric Anholt 			     __field(u32, ctnqba)
4857692c94SEric Anholt 			     __field(u32, ctnqea)
4957692c94SEric Anholt 			     ),
5057692c94SEric Anholt 
5157692c94SEric Anholt 	    TP_fast_assign(
5257692c94SEric Anholt 			   __entry->dev = dev->primary->index;
5357692c94SEric Anholt 			   __entry->is_render = is_render;
5457692c94SEric Anholt 			   __entry->seqno = seqno;
5557692c94SEric Anholt 			   __entry->ctnqba = ctnqba;
5657692c94SEric Anholt 			   __entry->ctnqea = ctnqea;
5757692c94SEric Anholt 			   ),
5857692c94SEric Anholt 
5957692c94SEric Anholt 	    TP_printk("dev=%u, %s, seqno=%llu, 0x%08x..0x%08x",
6057692c94SEric Anholt 		      __entry->dev,
6157692c94SEric Anholt 		      __entry->is_render ? "RCL" : "BCL",
6257692c94SEric Anholt 		      __entry->seqno,
6357692c94SEric Anholt 		      __entry->ctnqba,
6457692c94SEric Anholt 		      __entry->ctnqea)
6557692c94SEric Anholt );
6657692c94SEric Anholt 
6755a9b748SEric Anholt TRACE_EVENT(v3d_bcl_irq,
6855a9b748SEric Anholt 	    TP_PROTO(struct drm_device *dev,
6955a9b748SEric Anholt 		     uint64_t seqno),
7055a9b748SEric Anholt 	    TP_ARGS(dev, seqno),
7155a9b748SEric Anholt 
7255a9b748SEric Anholt 	    TP_STRUCT__entry(
7355a9b748SEric Anholt 			     __field(u32, dev)
7455a9b748SEric Anholt 			     __field(u64, seqno)
7555a9b748SEric Anholt 			     ),
7655a9b748SEric Anholt 
7755a9b748SEric Anholt 	    TP_fast_assign(
7855a9b748SEric Anholt 			   __entry->dev = dev->primary->index;
7955a9b748SEric Anholt 			   __entry->seqno = seqno;
8055a9b748SEric Anholt 			   ),
8155a9b748SEric Anholt 
8255a9b748SEric Anholt 	    TP_printk("dev=%u, seqno=%llu",
8355a9b748SEric Anholt 		      __entry->dev,
8455a9b748SEric Anholt 		      __entry->seqno)
8555a9b748SEric Anholt );
8655a9b748SEric Anholt 
8755a9b748SEric Anholt TRACE_EVENT(v3d_rcl_irq,
8855a9b748SEric Anholt 	    TP_PROTO(struct drm_device *dev,
8955a9b748SEric Anholt 		     uint64_t seqno),
9055a9b748SEric Anholt 	    TP_ARGS(dev, seqno),
9155a9b748SEric Anholt 
9255a9b748SEric Anholt 	    TP_STRUCT__entry(
9355a9b748SEric Anholt 			     __field(u32, dev)
9455a9b748SEric Anholt 			     __field(u64, seqno)
9555a9b748SEric Anholt 			     ),
9655a9b748SEric Anholt 
9755a9b748SEric Anholt 	    TP_fast_assign(
9855a9b748SEric Anholt 			   __entry->dev = dev->primary->index;
9955a9b748SEric Anholt 			   __entry->seqno = seqno;
10055a9b748SEric Anholt 			   ),
10155a9b748SEric Anholt 
10255a9b748SEric Anholt 	    TP_printk("dev=%u, seqno=%llu",
10355a9b748SEric Anholt 		      __entry->dev,
10455a9b748SEric Anholt 		      __entry->seqno)
10555a9b748SEric Anholt );
10655a9b748SEric Anholt 
10755a9b748SEric Anholt TRACE_EVENT(v3d_tfu_irq,
10855a9b748SEric Anholt 	    TP_PROTO(struct drm_device *dev,
10955a9b748SEric Anholt 		     uint64_t seqno),
11055a9b748SEric Anholt 	    TP_ARGS(dev, seqno),
11155a9b748SEric Anholt 
11255a9b748SEric Anholt 	    TP_STRUCT__entry(
11355a9b748SEric Anholt 			     __field(u32, dev)
11455a9b748SEric Anholt 			     __field(u64, seqno)
11555a9b748SEric Anholt 			     ),
11655a9b748SEric Anholt 
11755a9b748SEric Anholt 	    TP_fast_assign(
11855a9b748SEric Anholt 			   __entry->dev = dev->primary->index;
11955a9b748SEric Anholt 			   __entry->seqno = seqno;
12055a9b748SEric Anholt 			   ),
12155a9b748SEric Anholt 
12255a9b748SEric Anholt 	    TP_printk("dev=%u, seqno=%llu",
12355a9b748SEric Anholt 		      __entry->dev,
12455a9b748SEric Anholt 		      __entry->seqno)
12555a9b748SEric Anholt );
12655a9b748SEric Anholt 
127d223f98fSEric Anholt TRACE_EVENT(v3d_csd_irq,
128d223f98fSEric Anholt 	    TP_PROTO(struct drm_device *dev,
129d223f98fSEric Anholt 		     uint64_t seqno),
130d223f98fSEric Anholt 	    TP_ARGS(dev, seqno),
131d223f98fSEric Anholt 
132d223f98fSEric Anholt 	    TP_STRUCT__entry(
133d223f98fSEric Anholt 			     __field(u32, dev)
134d223f98fSEric Anholt 			     __field(u64, seqno)
135d223f98fSEric Anholt 			     ),
136d223f98fSEric Anholt 
137d223f98fSEric Anholt 	    TP_fast_assign(
138d223f98fSEric Anholt 			   __entry->dev = dev->primary->index;
139d223f98fSEric Anholt 			   __entry->seqno = seqno;
140d223f98fSEric Anholt 			   ),
141d223f98fSEric Anholt 
142d223f98fSEric Anholt 	    TP_printk("dev=%u, seqno=%llu",
143d223f98fSEric Anholt 		      __entry->dev,
144d223f98fSEric Anholt 		      __entry->seqno)
145d223f98fSEric Anholt );
146d223f98fSEric Anholt 
14755a9b748SEric Anholt TRACE_EVENT(v3d_submit_tfu_ioctl,
14855a9b748SEric Anholt 	    TP_PROTO(struct drm_device *dev, u32 iia),
14955a9b748SEric Anholt 	    TP_ARGS(dev, iia),
15055a9b748SEric Anholt 
15155a9b748SEric Anholt 	    TP_STRUCT__entry(
15255a9b748SEric Anholt 			     __field(u32, dev)
15355a9b748SEric Anholt 			     __field(u32, iia)
15455a9b748SEric Anholt 			     ),
15555a9b748SEric Anholt 
15655a9b748SEric Anholt 	    TP_fast_assign(
15755a9b748SEric Anholt 			   __entry->dev = dev->primary->index;
15855a9b748SEric Anholt 			   __entry->iia = iia;
15955a9b748SEric Anholt 			   ),
16055a9b748SEric Anholt 
16155a9b748SEric Anholt 	    TP_printk("dev=%u, IIA 0x%08x",
16255a9b748SEric Anholt 		      __entry->dev,
16355a9b748SEric Anholt 		      __entry->iia)
16455a9b748SEric Anholt );
16555a9b748SEric Anholt 
1661584f16cSEric Anholt TRACE_EVENT(v3d_submit_tfu,
1671584f16cSEric Anholt 	    TP_PROTO(struct drm_device *dev,
1681584f16cSEric Anholt 		     uint64_t seqno),
1691584f16cSEric Anholt 	    TP_ARGS(dev, seqno),
1701584f16cSEric Anholt 
1711584f16cSEric Anholt 	    TP_STRUCT__entry(
1721584f16cSEric Anholt 			     __field(u32, dev)
1731584f16cSEric Anholt 			     __field(u64, seqno)
1741584f16cSEric Anholt 			     ),
1751584f16cSEric Anholt 
1761584f16cSEric Anholt 	    TP_fast_assign(
1771584f16cSEric Anholt 			   __entry->dev = dev->primary->index;
1781584f16cSEric Anholt 			   __entry->seqno = seqno;
1791584f16cSEric Anholt 			   ),
1801584f16cSEric Anholt 
1811584f16cSEric Anholt 	    TP_printk("dev=%u, seqno=%llu",
1821584f16cSEric Anholt 		      __entry->dev,
1831584f16cSEric Anholt 		      __entry->seqno)
1841584f16cSEric Anholt );
1851584f16cSEric Anholt 
186d223f98fSEric Anholt TRACE_EVENT(v3d_submit_csd_ioctl,
187d223f98fSEric Anholt 	    TP_PROTO(struct drm_device *dev, u32 cfg5, u32 cfg6),
188d223f98fSEric Anholt 	    TP_ARGS(dev, cfg5, cfg6),
189d223f98fSEric Anholt 
190d223f98fSEric Anholt 	    TP_STRUCT__entry(
191d223f98fSEric Anholt 			     __field(u32, dev)
192d223f98fSEric Anholt 			     __field(u32, cfg5)
193d223f98fSEric Anholt 			     __field(u32, cfg6)
194d223f98fSEric Anholt 			     ),
195d223f98fSEric Anholt 
196d223f98fSEric Anholt 	    TP_fast_assign(
197d223f98fSEric Anholt 			   __entry->dev = dev->primary->index;
198d223f98fSEric Anholt 			   __entry->cfg5 = cfg5;
199d223f98fSEric Anholt 			   __entry->cfg6 = cfg6;
200d223f98fSEric Anholt 			   ),
201d223f98fSEric Anholt 
202d223f98fSEric Anholt 	    TP_printk("dev=%u, CFG5 0x%08x, CFG6 0x%08x",
203d223f98fSEric Anholt 		      __entry->dev,
204d223f98fSEric Anholt 		      __entry->cfg5,
205d223f98fSEric Anholt 		      __entry->cfg6)
206d223f98fSEric Anholt );
207d223f98fSEric Anholt 
208d223f98fSEric Anholt TRACE_EVENT(v3d_submit_csd,
209d223f98fSEric Anholt 	    TP_PROTO(struct drm_device *dev,
210d223f98fSEric Anholt 		     uint64_t seqno),
211d223f98fSEric Anholt 	    TP_ARGS(dev, seqno),
212d223f98fSEric Anholt 
213d223f98fSEric Anholt 	    TP_STRUCT__entry(
214d223f98fSEric Anholt 			     __field(u32, dev)
215d223f98fSEric Anholt 			     __field(u64, seqno)
216d223f98fSEric Anholt 			     ),
217d223f98fSEric Anholt 
218d223f98fSEric Anholt 	    TP_fast_assign(
219d223f98fSEric Anholt 			   __entry->dev = dev->primary->index;
220d223f98fSEric Anholt 			   __entry->seqno = seqno;
221d223f98fSEric Anholt 			   ),
222d223f98fSEric Anholt 
223d223f98fSEric Anholt 	    TP_printk("dev=%u, seqno=%llu",
224d223f98fSEric Anholt 		      __entry->dev,
225d223f98fSEric Anholt 		      __entry->seqno)
226d223f98fSEric Anholt );
227d223f98fSEric Anholt 
228d223f98fSEric Anholt TRACE_EVENT(v3d_cache_clean_begin,
229d223f98fSEric Anholt 	    TP_PROTO(struct drm_device *dev),
230d223f98fSEric Anholt 	    TP_ARGS(dev),
231d223f98fSEric Anholt 
232d223f98fSEric Anholt 	    TP_STRUCT__entry(
233d223f98fSEric Anholt 			     __field(u32, dev)
234d223f98fSEric Anholt 			     ),
235d223f98fSEric Anholt 
236d223f98fSEric Anholt 	    TP_fast_assign(
237d223f98fSEric Anholt 			   __entry->dev = dev->primary->index;
238d223f98fSEric Anholt 			   ),
239d223f98fSEric Anholt 
240d223f98fSEric Anholt 	    TP_printk("dev=%u",
241d223f98fSEric Anholt 		      __entry->dev)
242d223f98fSEric Anholt );
243d223f98fSEric Anholt 
244d223f98fSEric Anholt TRACE_EVENT(v3d_cache_clean_end,
245d223f98fSEric Anholt 	    TP_PROTO(struct drm_device *dev),
246d223f98fSEric Anholt 	    TP_ARGS(dev),
247d223f98fSEric Anholt 
248d223f98fSEric Anholt 	    TP_STRUCT__entry(
249d223f98fSEric Anholt 			     __field(u32, dev)
250d223f98fSEric Anholt 			     ),
251d223f98fSEric Anholt 
252d223f98fSEric Anholt 	    TP_fast_assign(
253d223f98fSEric Anholt 			   __entry->dev = dev->primary->index;
254d223f98fSEric Anholt 			   ),
255d223f98fSEric Anholt 
256d223f98fSEric Anholt 	    TP_printk("dev=%u",
257d223f98fSEric Anholt 		      __entry->dev)
258d223f98fSEric Anholt );
259d223f98fSEric Anholt 
26057692c94SEric Anholt TRACE_EVENT(v3d_reset_begin,
26157692c94SEric Anholt 	    TP_PROTO(struct drm_device *dev),
26257692c94SEric Anholt 	    TP_ARGS(dev),
26357692c94SEric Anholt 
26457692c94SEric Anholt 	    TP_STRUCT__entry(
26557692c94SEric Anholt 			     __field(u32, dev)
26657692c94SEric Anholt 			     ),
26757692c94SEric Anholt 
26857692c94SEric Anholt 	    TP_fast_assign(
26957692c94SEric Anholt 			   __entry->dev = dev->primary->index;
27057692c94SEric Anholt 			   ),
27157692c94SEric Anholt 
27257692c94SEric Anholt 	    TP_printk("dev=%u",
27357692c94SEric Anholt 		      __entry->dev)
27457692c94SEric Anholt );
27557692c94SEric Anholt 
27657692c94SEric Anholt TRACE_EVENT(v3d_reset_end,
27757692c94SEric Anholt 	    TP_PROTO(struct drm_device *dev),
27857692c94SEric Anholt 	    TP_ARGS(dev),
27957692c94SEric Anholt 
28057692c94SEric Anholt 	    TP_STRUCT__entry(
28157692c94SEric Anholt 			     __field(u32, dev)
28257692c94SEric Anholt 			     ),
28357692c94SEric Anholt 
28457692c94SEric Anholt 	    TP_fast_assign(
28557692c94SEric Anholt 			   __entry->dev = dev->primary->index;
28657692c94SEric Anholt 			   ),
28757692c94SEric Anholt 
28857692c94SEric Anholt 	    TP_printk("dev=%u",
28957692c94SEric Anholt 		      __entry->dev)
29057692c94SEric Anholt );
29157692c94SEric Anholt 
29257692c94SEric Anholt #endif /* _V3D_TRACE_H_ */
29357692c94SEric Anholt 
29457692c94SEric Anholt /* This part must be outside protection */
29557692c94SEric Anholt #undef TRACE_INCLUDE_PATH
29657692c94SEric Anholt #define TRACE_INCLUDE_PATH .
29757692c94SEric Anholt #include <trace/define_trace.h>
298