at v5.3 4.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2008 Advanced Micro Devices, Inc. 4 * 5 * Author: Joerg Roedel <joerg.roedel@amd.com> 6 */ 7 8#ifndef __DMA_DEBUG_H 9#define __DMA_DEBUG_H 10 11#include <linux/types.h> 12 13struct device; 14struct scatterlist; 15struct bus_type; 16 17#ifdef CONFIG_DMA_API_DEBUG 18 19extern void dma_debug_add_bus(struct bus_type *bus); 20 21extern void debug_dma_map_single(struct device *dev, const void *addr, 22 unsigned long len); 23 24extern void debug_dma_map_page(struct device *dev, struct page *page, 25 size_t offset, size_t size, 26 int direction, dma_addr_t dma_addr); 27 28extern void debug_dma_mapping_error(struct device *dev, dma_addr_t dma_addr); 29 30extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, 31 size_t size, int direction); 32 33extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg, 34 int nents, int mapped_ents, int direction); 35 36extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, 37 int nelems, int dir); 38 39extern void debug_dma_alloc_coherent(struct device *dev, size_t size, 40 dma_addr_t dma_addr, void *virt); 41 42extern void debug_dma_free_coherent(struct device *dev, size_t size, 43 void *virt, dma_addr_t addr); 44 45extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr, 46 size_t size, int direction, 47 dma_addr_t dma_addr); 48 49extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr, 50 size_t size, int direction); 51 52extern void debug_dma_sync_single_for_cpu(struct device *dev, 53 dma_addr_t dma_handle, size_t size, 54 int direction); 55 56extern void debug_dma_sync_single_for_device(struct device *dev, 57 dma_addr_t dma_handle, 58 size_t size, int direction); 59 60extern void debug_dma_sync_sg_for_cpu(struct device *dev, 61 struct scatterlist *sg, 62 int nelems, int direction); 63 64extern void debug_dma_sync_sg_for_device(struct device *dev, 65 struct scatterlist *sg, 66 int nelems, int direction); 67 68extern void debug_dma_dump_mappings(struct device *dev); 69 70extern void debug_dma_assert_idle(struct page *page); 71 72#else /* CONFIG_DMA_API_DEBUG */ 73 74static inline void dma_debug_add_bus(struct bus_type *bus) 75{ 76} 77 78static inline void debug_dma_map_single(struct device *dev, const void *addr, 79 unsigned long len) 80{ 81} 82 83static inline void debug_dma_map_page(struct device *dev, struct page *page, 84 size_t offset, size_t size, 85 int direction, dma_addr_t dma_addr) 86{ 87} 88 89static inline void debug_dma_mapping_error(struct device *dev, 90 dma_addr_t dma_addr) 91{ 92} 93 94static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, 95 size_t size, int direction) 96{ 97} 98 99static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg, 100 int nents, int mapped_ents, int direction) 101{ 102} 103 104static inline void debug_dma_unmap_sg(struct device *dev, 105 struct scatterlist *sglist, 106 int nelems, int dir) 107{ 108} 109 110static inline void debug_dma_alloc_coherent(struct device *dev, size_t size, 111 dma_addr_t dma_addr, void *virt) 112{ 113} 114 115static inline void debug_dma_free_coherent(struct device *dev, size_t size, 116 void *virt, dma_addr_t addr) 117{ 118} 119 120static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr, 121 size_t size, int direction, 122 dma_addr_t dma_addr) 123{ 124} 125 126static inline void debug_dma_unmap_resource(struct device *dev, 127 dma_addr_t dma_addr, size_t size, 128 int direction) 129{ 130} 131 132static inline void debug_dma_sync_single_for_cpu(struct device *dev, 133 dma_addr_t dma_handle, 134 size_t size, int direction) 135{ 136} 137 138static inline void debug_dma_sync_single_for_device(struct device *dev, 139 dma_addr_t dma_handle, 140 size_t size, int direction) 141{ 142} 143 144static inline void debug_dma_sync_sg_for_cpu(struct device *dev, 145 struct scatterlist *sg, 146 int nelems, int direction) 147{ 148} 149 150static inline void debug_dma_sync_sg_for_device(struct device *dev, 151 struct scatterlist *sg, 152 int nelems, int direction) 153{ 154} 155 156static inline void debug_dma_dump_mappings(struct device *dev) 157{ 158} 159 160static inline void debug_dma_assert_idle(struct page *page) 161{ 162} 163 164#endif /* CONFIG_DMA_API_DEBUG */ 165 166#endif /* __DMA_DEBUG_H */