1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 22b2b614dSZoltan Kiss #undef TRACE_SYSTEM 32b2b614dSZoltan Kiss #define TRACE_SYSTEM swiotlb 42b2b614dSZoltan Kiss 52b2b614dSZoltan Kiss #if !defined(_TRACE_SWIOTLB_H) || defined(TRACE_HEADER_MULTI_READ) 62b2b614dSZoltan Kiss #define _TRACE_SWIOTLB_H 72b2b614dSZoltan Kiss 82b2b614dSZoltan Kiss #include <linux/tracepoint.h> 92b2b614dSZoltan Kiss 102b2b614dSZoltan Kiss TRACE_EVENT(swiotlb_bounced, 11*c6af2aa9SChristoph Hellwig TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size), 12*c6af2aa9SChristoph Hellwig TP_ARGS(dev, dev_addr, size), 132b2b614dSZoltan Kiss 142b2b614dSZoltan Kiss TP_STRUCT__entry( 152b2b614dSZoltan Kiss __string(dev_name, dev_name(dev)) 162b2b614dSZoltan Kiss __field(u64, dma_mask) 172b2b614dSZoltan Kiss __field(dma_addr_t, dev_addr) 182b2b614dSZoltan Kiss __field(size_t, size) 19*c6af2aa9SChristoph Hellwig __field(bool, force) 202b2b614dSZoltan Kiss ), 212b2b614dSZoltan Kiss 222b2b614dSZoltan Kiss TP_fast_assign( 232b2b614dSZoltan Kiss __assign_str(dev_name, dev_name(dev)); 242b2b614dSZoltan Kiss __entry->dma_mask = (dev->dma_mask ? *dev->dma_mask : 0); 252b2b614dSZoltan Kiss __entry->dev_addr = dev_addr; 262b2b614dSZoltan Kiss __entry->size = size; 27*c6af2aa9SChristoph Hellwig __entry->force = is_swiotlb_force_bounce(dev); 282b2b614dSZoltan Kiss ), 292b2b614dSZoltan Kiss 30*c6af2aa9SChristoph Hellwig TP_printk("dev_name: %s dma_mask=%llx dev_addr=%llx size=%zu %s", 312b2b614dSZoltan Kiss __get_str(dev_name), 322b2b614dSZoltan Kiss __entry->dma_mask, 332b2b614dSZoltan Kiss (unsigned long long)__entry->dev_addr, 342b2b614dSZoltan Kiss __entry->size, 35*c6af2aa9SChristoph Hellwig __entry->force ? "FORCE" : "NORMAL") 362b2b614dSZoltan Kiss ); 372b2b614dSZoltan Kiss 382b2b614dSZoltan Kiss #endif /* _TRACE_SWIOTLB_H */ 392b2b614dSZoltan Kiss 402b2b614dSZoltan Kiss /* This part must be outside protection */ 412b2b614dSZoltan Kiss #include <trace/define_trace.h> 42