162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) 2015 Broadcom 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#if !defined(_VC4_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ) 762306a36Sopenharmony_ci#define _VC4_TRACE_H_ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/stringify.h> 1062306a36Sopenharmony_ci#include <linux/types.h> 1162306a36Sopenharmony_ci#include <linux/tracepoint.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#undef TRACE_SYSTEM 1462306a36Sopenharmony_ci#define TRACE_SYSTEM vc4 1562306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE vc4_trace 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciTRACE_EVENT(vc4_wait_for_seqno_begin, 1862306a36Sopenharmony_ci TP_PROTO(struct drm_device *dev, uint64_t seqno, uint64_t timeout), 1962306a36Sopenharmony_ci TP_ARGS(dev, seqno, timeout), 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci TP_STRUCT__entry( 2262306a36Sopenharmony_ci __field(u32, dev) 2362306a36Sopenharmony_ci __field(u64, seqno) 2462306a36Sopenharmony_ci __field(u64, timeout) 2562306a36Sopenharmony_ci ), 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci TP_fast_assign( 2862306a36Sopenharmony_ci __entry->dev = dev->primary->index; 2962306a36Sopenharmony_ci __entry->seqno = seqno; 3062306a36Sopenharmony_ci __entry->timeout = timeout; 3162306a36Sopenharmony_ci ), 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci TP_printk("dev=%u, seqno=%llu, timeout=%llu", 3462306a36Sopenharmony_ci __entry->dev, __entry->seqno, __entry->timeout) 3562306a36Sopenharmony_ci); 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciTRACE_EVENT(vc4_wait_for_seqno_end, 3862306a36Sopenharmony_ci TP_PROTO(struct drm_device *dev, uint64_t seqno), 3962306a36Sopenharmony_ci TP_ARGS(dev, seqno), 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci TP_STRUCT__entry( 4262306a36Sopenharmony_ci __field(u32, dev) 4362306a36Sopenharmony_ci __field(u64, seqno) 4462306a36Sopenharmony_ci ), 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci TP_fast_assign( 4762306a36Sopenharmony_ci __entry->dev = dev->primary->index; 4862306a36Sopenharmony_ci __entry->seqno = seqno; 4962306a36Sopenharmony_ci ), 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci TP_printk("dev=%u, seqno=%llu", 5262306a36Sopenharmony_ci __entry->dev, __entry->seqno) 5362306a36Sopenharmony_ci); 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciTRACE_EVENT(vc4_submit_cl_ioctl, 5662306a36Sopenharmony_ci TP_PROTO(struct drm_device *dev, u32 bin_cl_size, u32 shader_rec_size, u32 bo_count), 5762306a36Sopenharmony_ci TP_ARGS(dev, bin_cl_size, shader_rec_size, bo_count), 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci TP_STRUCT__entry( 6062306a36Sopenharmony_ci __field(u32, dev) 6162306a36Sopenharmony_ci __field(u32, bin_cl_size) 6262306a36Sopenharmony_ci __field(u32, shader_rec_size) 6362306a36Sopenharmony_ci __field(u32, bo_count) 6462306a36Sopenharmony_ci ), 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci TP_fast_assign( 6762306a36Sopenharmony_ci __entry->dev = dev->primary->index; 6862306a36Sopenharmony_ci __entry->bin_cl_size = bin_cl_size; 6962306a36Sopenharmony_ci __entry->shader_rec_size = shader_rec_size; 7062306a36Sopenharmony_ci __entry->bo_count = bo_count; 7162306a36Sopenharmony_ci ), 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci TP_printk("dev=%u, bin_cl_size=%u, shader_rec_size=%u, bo_count=%u", 7462306a36Sopenharmony_ci __entry->dev, 7562306a36Sopenharmony_ci __entry->bin_cl_size, 7662306a36Sopenharmony_ci __entry->shader_rec_size, 7762306a36Sopenharmony_ci __entry->bo_count) 7862306a36Sopenharmony_ci); 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciTRACE_EVENT(vc4_submit_cl, 8162306a36Sopenharmony_ci TP_PROTO(struct drm_device *dev, bool is_render, 8262306a36Sopenharmony_ci uint64_t seqno, 8362306a36Sopenharmony_ci u32 ctnqba, u32 ctnqea), 8462306a36Sopenharmony_ci TP_ARGS(dev, is_render, seqno, ctnqba, ctnqea), 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ci TP_STRUCT__entry( 8762306a36Sopenharmony_ci __field(u32, dev) 8862306a36Sopenharmony_ci __field(bool, is_render) 8962306a36Sopenharmony_ci __field(u64, seqno) 9062306a36Sopenharmony_ci __field(u32, ctnqba) 9162306a36Sopenharmony_ci __field(u32, ctnqea) 9262306a36Sopenharmony_ci ), 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_ci TP_fast_assign( 9562306a36Sopenharmony_ci __entry->dev = dev->primary->index; 9662306a36Sopenharmony_ci __entry->is_render = is_render; 9762306a36Sopenharmony_ci __entry->seqno = seqno; 9862306a36Sopenharmony_ci __entry->ctnqba = ctnqba; 9962306a36Sopenharmony_ci __entry->ctnqea = ctnqea; 10062306a36Sopenharmony_ci ), 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci TP_printk("dev=%u, %s, seqno=%llu, 0x%08x..0x%08x", 10362306a36Sopenharmony_ci __entry->dev, 10462306a36Sopenharmony_ci __entry->is_render ? "RCL" : "BCL", 10562306a36Sopenharmony_ci __entry->seqno, 10662306a36Sopenharmony_ci __entry->ctnqba, 10762306a36Sopenharmony_ci __entry->ctnqea) 10862306a36Sopenharmony_ci); 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ciTRACE_EVENT(vc4_bcl_end_irq, 11162306a36Sopenharmony_ci TP_PROTO(struct drm_device *dev, 11262306a36Sopenharmony_ci uint64_t seqno), 11362306a36Sopenharmony_ci TP_ARGS(dev, seqno), 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci TP_STRUCT__entry( 11662306a36Sopenharmony_ci __field(u32, dev) 11762306a36Sopenharmony_ci __field(u64, seqno) 11862306a36Sopenharmony_ci ), 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ci TP_fast_assign( 12162306a36Sopenharmony_ci __entry->dev = dev->primary->index; 12262306a36Sopenharmony_ci __entry->seqno = seqno; 12362306a36Sopenharmony_ci ), 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci TP_printk("dev=%u, seqno=%llu", 12662306a36Sopenharmony_ci __entry->dev, 12762306a36Sopenharmony_ci __entry->seqno) 12862306a36Sopenharmony_ci); 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ciTRACE_EVENT(vc4_rcl_end_irq, 13162306a36Sopenharmony_ci TP_PROTO(struct drm_device *dev, 13262306a36Sopenharmony_ci uint64_t seqno), 13362306a36Sopenharmony_ci TP_ARGS(dev, seqno), 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci TP_STRUCT__entry( 13662306a36Sopenharmony_ci __field(u32, dev) 13762306a36Sopenharmony_ci __field(u64, seqno) 13862306a36Sopenharmony_ci ), 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci TP_fast_assign( 14162306a36Sopenharmony_ci __entry->dev = dev->primary->index; 14262306a36Sopenharmony_ci __entry->seqno = seqno; 14362306a36Sopenharmony_ci ), 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci TP_printk("dev=%u, seqno=%llu", 14662306a36Sopenharmony_ci __entry->dev, 14762306a36Sopenharmony_ci __entry->seqno) 14862306a36Sopenharmony_ci); 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci#endif /* _VC4_TRACE_H_ */ 15162306a36Sopenharmony_ci 15262306a36Sopenharmony_ci/* This part must be outside protection */ 15362306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 15462306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH ../../drivers/gpu/drm/vc4 15562306a36Sopenharmony_ci#include <trace/define_trace.h> 156