162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#if !defined(ARMADA_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 362306a36Sopenharmony_ci#define ARMADA_TRACE_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#include <linux/tracepoint.h> 662306a36Sopenharmony_ci 762306a36Sopenharmony_cistruct drm_crtc; 862306a36Sopenharmony_cistruct drm_framebuffer; 962306a36Sopenharmony_cistruct drm_plane; 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#undef TRACE_SYSTEM 1262306a36Sopenharmony_ci#define TRACE_SYSTEM armada 1362306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE armada_trace 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciTRACE_EVENT(armada_drm_irq, 1662306a36Sopenharmony_ci TP_PROTO(struct drm_crtc *crtc, u32 stat), 1762306a36Sopenharmony_ci TP_ARGS(crtc, stat), 1862306a36Sopenharmony_ci TP_STRUCT__entry( 1962306a36Sopenharmony_ci __field(struct drm_crtc *, crtc) 2062306a36Sopenharmony_ci __field(u32, stat) 2162306a36Sopenharmony_ci ), 2262306a36Sopenharmony_ci TP_fast_assign( 2362306a36Sopenharmony_ci __entry->crtc = crtc; 2462306a36Sopenharmony_ci __entry->stat = stat; 2562306a36Sopenharmony_ci ), 2662306a36Sopenharmony_ci TP_printk("crtc %p stat 0x%08x", 2762306a36Sopenharmony_ci __entry->crtc, __entry->stat) 2862306a36Sopenharmony_ci); 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciTRACE_EVENT(armada_ovl_plane_update, 3162306a36Sopenharmony_ci TP_PROTO(struct drm_plane *plane, struct drm_crtc *crtc, 3262306a36Sopenharmony_ci struct drm_framebuffer *fb, 3362306a36Sopenharmony_ci int crtc_x, int crtc_y, unsigned crtc_w, unsigned crtc_h, 3462306a36Sopenharmony_ci uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h), 3562306a36Sopenharmony_ci TP_ARGS(plane, crtc, fb, crtc_x, crtc_y, crtc_w, crtc_h, src_x, src_y, src_w, src_h), 3662306a36Sopenharmony_ci TP_STRUCT__entry( 3762306a36Sopenharmony_ci __field(struct drm_plane *, plane) 3862306a36Sopenharmony_ci __field(struct drm_crtc *, crtc) 3962306a36Sopenharmony_ci __field(struct drm_framebuffer *, fb) 4062306a36Sopenharmony_ci __field(int, crtc_x) 4162306a36Sopenharmony_ci __field(int, crtc_y) 4262306a36Sopenharmony_ci __field(unsigned int, crtc_w) 4362306a36Sopenharmony_ci __field(unsigned int, crtc_h) 4462306a36Sopenharmony_ci __field(u32, src_x) 4562306a36Sopenharmony_ci __field(u32, src_y) 4662306a36Sopenharmony_ci __field(u32, src_w) 4762306a36Sopenharmony_ci __field(u32, src_h) 4862306a36Sopenharmony_ci ), 4962306a36Sopenharmony_ci TP_fast_assign( 5062306a36Sopenharmony_ci __entry->plane = plane; 5162306a36Sopenharmony_ci __entry->crtc = crtc; 5262306a36Sopenharmony_ci __entry->fb = fb; 5362306a36Sopenharmony_ci __entry->crtc_x = crtc_x; 5462306a36Sopenharmony_ci __entry->crtc_y = crtc_y; 5562306a36Sopenharmony_ci __entry->crtc_w = crtc_w; 5662306a36Sopenharmony_ci __entry->crtc_h = crtc_h; 5762306a36Sopenharmony_ci __entry->src_x = src_x; 5862306a36Sopenharmony_ci __entry->src_y = src_y; 5962306a36Sopenharmony_ci __entry->src_w = src_w; 6062306a36Sopenharmony_ci __entry->src_h = src_h; 6162306a36Sopenharmony_ci ), 6262306a36Sopenharmony_ci TP_printk("plane %p crtc %p fb %p crtc @ (%d,%d, %ux%u) src @ (%u,%u, %ux%u)", 6362306a36Sopenharmony_ci __entry->plane, __entry->crtc, __entry->fb, 6462306a36Sopenharmony_ci __entry->crtc_x, __entry->crtc_y, 6562306a36Sopenharmony_ci __entry->crtc_w, __entry->crtc_h, 6662306a36Sopenharmony_ci __entry->src_x >> 16, __entry->src_y >> 16, 6762306a36Sopenharmony_ci __entry->src_w >> 16, __entry->src_h >> 16) 6862306a36Sopenharmony_ci); 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciTRACE_EVENT(armada_ovl_plane_work, 7162306a36Sopenharmony_ci TP_PROTO(struct drm_crtc *crtc, struct drm_plane *plane), 7262306a36Sopenharmony_ci TP_ARGS(crtc, plane), 7362306a36Sopenharmony_ci TP_STRUCT__entry( 7462306a36Sopenharmony_ci __field(struct drm_plane *, plane) 7562306a36Sopenharmony_ci __field(struct drm_crtc *, crtc) 7662306a36Sopenharmony_ci ), 7762306a36Sopenharmony_ci TP_fast_assign( 7862306a36Sopenharmony_ci __entry->plane = plane; 7962306a36Sopenharmony_ci __entry->crtc = crtc; 8062306a36Sopenharmony_ci ), 8162306a36Sopenharmony_ci TP_printk("plane %p crtc %p", 8262306a36Sopenharmony_ci __entry->plane, __entry->crtc) 8362306a36Sopenharmony_ci); 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci#endif 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci/* This part must be outside protection */ 8862306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 8962306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/armada 9062306a36Sopenharmony_ci#include <trace/define_trace.h> 91