1 /* SPDX-License-Identifier: GPL-2.0-only */ 1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 2 /* 3 * Copyright (C) 2008 Advanced Micro Devices, 3 * Copyright (C) 2008 Advanced Micro Devices, Inc. 4 * 4 * 5 * Author: Joerg Roedel <joerg.roedel@amd.com> 5 * Author: Joerg Roedel <joerg.roedel@amd.com> 6 */ 6 */ 7 7 8 #ifndef _KERNEL_DMA_DEBUG_H 8 #ifndef _KERNEL_DMA_DEBUG_H 9 #define _KERNEL_DMA_DEBUG_H 9 #define _KERNEL_DMA_DEBUG_H 10 10 11 #ifdef CONFIG_DMA_API_DEBUG 11 #ifdef CONFIG_DMA_API_DEBUG 12 extern void debug_dma_map_page(struct device * 12 extern void debug_dma_map_page(struct device *dev, struct page *page, 13 size_t offset, 13 size_t offset, size_t size, 14 int direction, 14 int direction, dma_addr_t dma_addr, 15 unsigned long a 15 unsigned long attrs); 16 16 17 extern void debug_dma_unmap_page(struct device 17 extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, 18 size_t size, 18 size_t size, int direction); 19 19 20 extern void debug_dma_map_sg(struct device *de 20 extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg, 21 int nents, int ma 21 int nents, int mapped_ents, int direction, 22 unsigned long att 22 unsigned long attrs); 23 23 24 extern void debug_dma_unmap_sg(struct device * 24 extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, 25 int nelems, int 25 int nelems, int dir); 26 26 27 extern void debug_dma_alloc_coherent(struct de 27 extern void debug_dma_alloc_coherent(struct device *dev, size_t size, 28 dma_addr_ 28 dma_addr_t dma_addr, void *virt, 29 unsigned 29 unsigned long attrs); 30 30 31 extern void debug_dma_free_coherent(struct dev 31 extern void debug_dma_free_coherent(struct device *dev, size_t size, 32 void *virt 32 void *virt, dma_addr_t addr); 33 33 34 extern void debug_dma_map_resource(struct devi 34 extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr, 35 size_t size 35 size_t size, int direction, 36 dma_addr_t 36 dma_addr_t dma_addr, 37 unsigned lo 37 unsigned long attrs); 38 38 39 extern void debug_dma_unmap_resource(struct de 39 extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr, 40 size_t si 40 size_t size, int direction); 41 41 42 extern void debug_dma_sync_single_for_cpu(stru 42 extern void debug_dma_sync_single_for_cpu(struct device *dev, 43 dma_ 43 dma_addr_t dma_handle, size_t size, 44 int 44 int direction); 45 45 46 extern void debug_dma_sync_single_for_device(s 46 extern void debug_dma_sync_single_for_device(struct device *dev, 47 d 47 dma_addr_t dma_handle, 48 s 48 size_t size, int direction); 49 49 50 extern void debug_dma_sync_sg_for_cpu(struct d 50 extern void debug_dma_sync_sg_for_cpu(struct device *dev, 51 struct s 51 struct scatterlist *sg, 52 int nele 52 int nelems, int direction); 53 53 54 extern void debug_dma_sync_sg_for_device(struc 54 extern void debug_dma_sync_sg_for_device(struct device *dev, 55 struc 55 struct scatterlist *sg, 56 int n 56 int nelems, int direction); 57 #else /* CONFIG_DMA_API_DEBUG */ 57 #else /* CONFIG_DMA_API_DEBUG */ 58 static inline void debug_dma_map_page(struct d 58 static inline void debug_dma_map_page(struct device *dev, struct page *page, 59 size_t o 59 size_t offset, size_t size, 60 int dire 60 int direction, dma_addr_t dma_addr, 61 unsigned 61 unsigned long attrs) 62 { 62 { 63 } 63 } 64 64 65 static inline void debug_dma_unmap_page(struct 65 static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr, 66 size_t 66 size_t size, int direction) 67 { 67 { 68 } 68 } 69 69 70 static inline void debug_dma_map_sg(struct dev 70 static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg, 71 int nents, 71 int nents, int mapped_ents, int direction, 72 unsigned l 72 unsigned long attrs) 73 { 73 { 74 } 74 } 75 75 76 static inline void debug_dma_unmap_sg(struct d 76 static inline void debug_dma_unmap_sg(struct device *dev, 77 struct s 77 struct scatterlist *sglist, 78 int nele 78 int nelems, int dir) 79 { 79 { 80 } 80 } 81 81 82 static inline void debug_dma_alloc_coherent(st 82 static inline void debug_dma_alloc_coherent(struct device *dev, size_t size, 83 dm 83 dma_addr_t dma_addr, void *virt, 84 un 84 unsigned long attrs) 85 { 85 { 86 } 86 } 87 87 88 static inline void debug_dma_free_coherent(str 88 static inline void debug_dma_free_coherent(struct device *dev, size_t size, 89 voi 89 void *virt, dma_addr_t addr) 90 { 90 { 91 } 91 } 92 92 93 static inline void debug_dma_map_resource(stru 93 static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr, 94 size 94 size_t size, int direction, 95 dma_ 95 dma_addr_t dma_addr, 96 unsi 96 unsigned long attrs) 97 { 97 { 98 } 98 } 99 99 100 static inline void debug_dma_unmap_resource(st 100 static inline void debug_dma_unmap_resource(struct device *dev, 101 dm 101 dma_addr_t dma_addr, size_t size, 102 in 102 int direction) 103 { 103 { 104 } 104 } 105 105 106 static inline void debug_dma_sync_single_for_c 106 static inline void debug_dma_sync_single_for_cpu(struct device *dev, 107 107 dma_addr_t dma_handle, 108 108 size_t size, int direction) 109 { 109 { 110 } 110 } 111 111 112 static inline void debug_dma_sync_single_for_d 112 static inline void debug_dma_sync_single_for_device(struct device *dev, 113 113 dma_addr_t dma_handle, 114 114 size_t size, int direction) 115 { 115 { 116 } 116 } 117 117 118 static inline void debug_dma_sync_sg_for_cpu(s 118 static inline void debug_dma_sync_sg_for_cpu(struct device *dev, 119 s 119 struct scatterlist *sg, 120 i 120 int nelems, int direction) 121 { 121 { 122 } 122 } 123 123 124 static inline void debug_dma_sync_sg_for_devic 124 static inline void debug_dma_sync_sg_for_device(struct device *dev, 125 125 struct scatterlist *sg, 126 126 int nelems, int direction) 127 { 127 { 128 } 128 } 129 #endif /* CONFIG_DMA_API_DEBUG */ 129 #endif /* CONFIG_DMA_API_DEBUG */ 130 #endif /* _KERNEL_DMA_DEBUG_H */ 130 #endif /* _KERNEL_DMA_DEBUG_H */ 131 131
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.