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