Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.2.
  1/* SPDX-License-Identifier: GPL-2.0 */
  2/*
  3 * Intel IOMMU trace support
  4 *
  5 * Copyright (C) 2019 Intel Corporation
  6 *
  7 * Author: Lu Baolu <baolu.lu@linux.intel.com>
  8 */
  9#ifdef CONFIG_INTEL_IOMMU
 10#undef TRACE_SYSTEM
 11#define TRACE_SYSTEM intel_iommu
 12
 13#if !defined(_TRACE_INTEL_IOMMU_H) || defined(TRACE_HEADER_MULTI_READ)
 14#define _TRACE_INTEL_IOMMU_H
 15
 16#include <linux/tracepoint.h>
 17#include <linux/intel-iommu.h>
 18
 19DECLARE_EVENT_CLASS(dma_map,
 20	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 21		 size_t size),
 22
 23	TP_ARGS(dev, dev_addr, phys_addr, size),
 24
 25	TP_STRUCT__entry(
 26		__string(dev_name, dev_name(dev))
 27		__field(dma_addr_t, dev_addr)
 28		__field(phys_addr_t, phys_addr)
 29		__field(size_t,	size)
 30	),
 31
 32	TP_fast_assign(
 33		__assign_str(dev_name, dev_name(dev));
 34		__entry->dev_addr = dev_addr;
 35		__entry->phys_addr = phys_addr;
 36		__entry->size = size;
 37	),
 38
 39	TP_printk("dev=%s dev_addr=0x%llx phys_addr=0x%llx size=%zu",
 40		  __get_str(dev_name),
 41		  (unsigned long long)__entry->dev_addr,
 42		  (unsigned long long)__entry->phys_addr,
 43		  __entry->size)
 44);
 45
 46DEFINE_EVENT(dma_map, map_single,
 47	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 48		 size_t size),
 49	TP_ARGS(dev, dev_addr, phys_addr, size)
 50);
 51
 52DEFINE_EVENT(dma_map, map_sg,
 53	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 54		 size_t size),
 55	TP_ARGS(dev, dev_addr, phys_addr, size)
 56);
 57
 58DEFINE_EVENT(dma_map, bounce_map_single,
 59	TP_PROTO(struct device *dev, dma_addr_t dev_addr, phys_addr_t phys_addr,
 60		 size_t size),
 61	TP_ARGS(dev, dev_addr, phys_addr, size)
 62);
 63
 64DECLARE_EVENT_CLASS(dma_unmap,
 65	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 66
 67	TP_ARGS(dev, dev_addr, size),
 68
 69	TP_STRUCT__entry(
 70		__string(dev_name, dev_name(dev))
 71		__field(dma_addr_t, dev_addr)
 72		__field(size_t,	size)
 73	),
 74
 75	TP_fast_assign(
 76		__assign_str(dev_name, dev_name(dev));
 77		__entry->dev_addr = dev_addr;
 78		__entry->size = size;
 79	),
 80
 81	TP_printk("dev=%s dev_addr=0x%llx size=%zu",
 82		  __get_str(dev_name),
 83		  (unsigned long long)__entry->dev_addr,
 84		  __entry->size)
 85);
 86
 87DEFINE_EVENT(dma_unmap, unmap_single,
 88	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 89	TP_ARGS(dev, dev_addr, size)
 90);
 91
 92DEFINE_EVENT(dma_unmap, unmap_sg,
 93	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 94	TP_ARGS(dev, dev_addr, size)
 95);
 96
 97DEFINE_EVENT(dma_unmap, bounce_unmap_single,
 98	TP_PROTO(struct device *dev, dma_addr_t dev_addr, size_t size),
 99	TP_ARGS(dev, dev_addr, size)
100);
101
102#endif /* _TRACE_INTEL_IOMMU_H */
103
104/* This part must be outside protection */
105#include <trace/define_trace.h>
106#endif /* CONFIG_INTEL_IOMMU */