1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2c8a220c6SRussell King #if !defined(ARMADA_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
3c8a220c6SRussell King #define ARMADA_TRACE_H
4c8a220c6SRussell King 
5c8a220c6SRussell King #include <linux/tracepoint.h>
625e28ef2SSam Ravnborg 
725e28ef2SSam Ravnborg struct drm_crtc;
825e28ef2SSam Ravnborg struct drm_framebuffer;
925e28ef2SSam Ravnborg struct drm_plane;
10c8a220c6SRussell King 
11c8a220c6SRussell King #undef TRACE_SYSTEM
12c8a220c6SRussell King #define TRACE_SYSTEM armada
13c8a220c6SRussell King #define TRACE_INCLUDE_FILE armada_trace
14c8a220c6SRussell King 
15c8a220c6SRussell King TRACE_EVENT(armada_drm_irq,
16c8a220c6SRussell King 	TP_PROTO(struct drm_crtc *crtc, u32 stat),
17c8a220c6SRussell King 	TP_ARGS(crtc, stat),
18c8a220c6SRussell King 	TP_STRUCT__entry(
19c8a220c6SRussell King 		__field(struct drm_crtc *, crtc)
20c8a220c6SRussell King 		__field(u32, stat)
21c8a220c6SRussell King 	),
22c8a220c6SRussell King 	TP_fast_assign(
23c8a220c6SRussell King 		__entry->crtc = crtc;
24c8a220c6SRussell King 		__entry->stat = stat;
25c8a220c6SRussell King 	),
26c8a220c6SRussell King 	TP_printk("crtc %p stat 0x%08x",
27c8a220c6SRussell King 		__entry->crtc, __entry->stat)
28c8a220c6SRussell King );
29c8a220c6SRussell King 
30c8a220c6SRussell King TRACE_EVENT(armada_ovl_plane_update,
31c8a220c6SRussell King 	TP_PROTO(struct drm_plane *plane, struct drm_crtc *crtc,
32c8a220c6SRussell King 		     struct drm_framebuffer *fb,
33c8a220c6SRussell King 		     int crtc_x, int crtc_y, unsigned crtc_w, unsigned crtc_h,
34c8a220c6SRussell King 		     uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h),
35c8a220c6SRussell King 	TP_ARGS(plane, crtc, fb, crtc_x, crtc_y, crtc_w, crtc_h, src_x, src_y, src_w, src_h),
36c8a220c6SRussell King 	TP_STRUCT__entry(
37c8a220c6SRussell King 		__field(struct drm_plane *, plane)
38c8a220c6SRussell King 		__field(struct drm_crtc *, crtc)
39c8a220c6SRussell King 		__field(struct drm_framebuffer *, fb)
4027ab688fSRussell King 		__field(int, crtc_x)
4127ab688fSRussell King 		__field(int, crtc_y)
4227ab688fSRussell King 		__field(unsigned int, crtc_w)
4327ab688fSRussell King 		__field(unsigned int, crtc_h)
4427ab688fSRussell King 		__field(u32, src_x)
4527ab688fSRussell King 		__field(u32, src_y)
4627ab688fSRussell King 		__field(u32, src_w)
4727ab688fSRussell King 		__field(u32, src_h)
48c8a220c6SRussell King 	),
49c8a220c6SRussell King 	TP_fast_assign(
50c8a220c6SRussell King 		__entry->plane = plane;
51c8a220c6SRussell King 		__entry->crtc = crtc;
52c8a220c6SRussell King 		__entry->fb = fb;
5327ab688fSRussell King 		__entry->crtc_x = crtc_x;
5427ab688fSRussell King 		__entry->crtc_y = crtc_y;
5527ab688fSRussell King 		__entry->crtc_w = crtc_w;
5627ab688fSRussell King 		__entry->crtc_h = crtc_h;
5727ab688fSRussell King 		__entry->src_x = src_x;
5827ab688fSRussell King 		__entry->src_y = src_y;
5927ab688fSRussell King 		__entry->src_w = src_w;
6027ab688fSRussell King 		__entry->src_h = src_h;
61c8a220c6SRussell King 	),
6227ab688fSRussell King 	TP_printk("plane %p crtc %p fb %p crtc @ (%d,%d, %ux%u) src @ (%u,%u, %ux%u)",
6327ab688fSRussell King 		__entry->plane, __entry->crtc, __entry->fb,
6427ab688fSRussell King 		__entry->crtc_x, __entry->crtc_y,
6527ab688fSRussell King 		__entry->crtc_w, __entry->crtc_h,
6627ab688fSRussell King 		__entry->src_x >> 16, __entry->src_y >> 16,
6727ab688fSRussell King 		__entry->src_w >> 16, __entry->src_h >> 16)
68c8a220c6SRussell King );
69c8a220c6SRussell King 
70c8a220c6SRussell King TRACE_EVENT(armada_ovl_plane_work,
71c8a220c6SRussell King 	TP_PROTO(struct drm_crtc *crtc, struct drm_plane *plane),
72c8a220c6SRussell King 	TP_ARGS(crtc, plane),
73c8a220c6SRussell King 	TP_STRUCT__entry(
74c8a220c6SRussell King 		__field(struct drm_plane *, plane)
75c8a220c6SRussell King 		__field(struct drm_crtc *, crtc)
76c8a220c6SRussell King 	),
77c8a220c6SRussell King 	TP_fast_assign(
78c8a220c6SRussell King 		__entry->plane = plane;
79c8a220c6SRussell King 		__entry->crtc = crtc;
80c8a220c6SRussell King 	),
81c8a220c6SRussell King 	TP_printk("plane %p crtc %p",
82c8a220c6SRussell King 		__entry->plane, __entry->crtc)
83c8a220c6SRussell King );
84c8a220c6SRussell King 
85c8a220c6SRussell King #endif
86c8a220c6SRussell King 
87c8a220c6SRussell King /* This part must be outside protection */
88c8a220c6SRussell King #undef TRACE_INCLUDE_PATH
89f23ef8edSThierry Reding #define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/armada
90c8a220c6SRussell King #include <trace/define_trace.h>
91