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