xref: /linux/kernel/dma/debug.h (revision 0be3ff0c)
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 _KERNEL_DMA_DEBUG_H
9 #define _KERNEL_DMA_DEBUG_H
10 
11 #ifdef CONFIG_DMA_API_DEBUG
12 extern void debug_dma_map_page(struct device *dev, struct page *page,
13 			       size_t offset, size_t size,
14 			       int direction, dma_addr_t dma_addr,
15 			       unsigned long attrs);
16 
17 extern void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
18 				 size_t size, int direction);
19 
20 extern void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
21 			     int nents, int mapped_ents, int direction,
22 			     unsigned long attrs);
23 
24 extern void debug_dma_unmap_sg(struct device *dev, struct scatterlist *sglist,
25 			       int nelems, int dir);
26 
27 extern void debug_dma_alloc_coherent(struct device *dev, size_t size,
28 				     dma_addr_t dma_addr, void *virt,
29 				     unsigned long attrs);
30 
31 extern void debug_dma_free_coherent(struct device *dev, size_t size,
32 				    void *virt, dma_addr_t addr);
33 
34 extern void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
35 				   size_t size, int direction,
36 				   dma_addr_t dma_addr,
37 				   unsigned long attrs);
38 
39 extern void debug_dma_unmap_resource(struct device *dev, dma_addr_t dma_addr,
40 				     size_t size, int direction);
41 
42 extern void debug_dma_sync_single_for_cpu(struct device *dev,
43 					  dma_addr_t dma_handle, size_t size,
44 					  int direction);
45 
46 extern void debug_dma_sync_single_for_device(struct device *dev,
47 					     dma_addr_t dma_handle,
48 					     size_t size, int direction);
49 
50 extern void debug_dma_sync_sg_for_cpu(struct device *dev,
51 				      struct scatterlist *sg,
52 				      int nelems, int direction);
53 
54 extern void debug_dma_sync_sg_for_device(struct device *dev,
55 					 struct scatterlist *sg,
56 					 int nelems, int direction);
57 #else /* CONFIG_DMA_API_DEBUG */
58 static inline void debug_dma_map_page(struct device *dev, struct page *page,
59 				      size_t offset, size_t size,
60 				      int direction, dma_addr_t dma_addr,
61 				      unsigned long attrs)
62 {
63 }
64 
65 static inline void debug_dma_unmap_page(struct device *dev, dma_addr_t addr,
66 					size_t size, int direction)
67 {
68 }
69 
70 static inline void debug_dma_map_sg(struct device *dev, struct scatterlist *sg,
71 				    int nents, int mapped_ents, int direction,
72 				    unsigned long attrs)
73 {
74 }
75 
76 static inline void debug_dma_unmap_sg(struct device *dev,
77 				      struct scatterlist *sglist,
78 				      int nelems, int dir)
79 {
80 }
81 
82 static inline void debug_dma_alloc_coherent(struct device *dev, size_t size,
83 					    dma_addr_t dma_addr, void *virt,
84 					    unsigned long attrs)
85 {
86 }
87 
88 static inline void debug_dma_free_coherent(struct device *dev, size_t size,
89 					   void *virt, dma_addr_t addr)
90 {
91 }
92 
93 static inline void debug_dma_map_resource(struct device *dev, phys_addr_t addr,
94 					  size_t size, int direction,
95 					  dma_addr_t dma_addr,
96 					  unsigned long attrs)
97 {
98 }
99 
100 static inline void debug_dma_unmap_resource(struct device *dev,
101 					    dma_addr_t dma_addr, size_t size,
102 					    int direction)
103 {
104 }
105 
106 static inline void debug_dma_sync_single_for_cpu(struct device *dev,
107 						 dma_addr_t dma_handle,
108 						 size_t size, int direction)
109 {
110 }
111 
112 static inline void debug_dma_sync_single_for_device(struct device *dev,
113 						    dma_addr_t dma_handle,
114 						    size_t size, int direction)
115 {
116 }
117 
118 static inline void debug_dma_sync_sg_for_cpu(struct device *dev,
119 					     struct scatterlist *sg,
120 					     int nelems, int direction)
121 {
122 }
123 
124 static inline void debug_dma_sync_sg_for_device(struct device *dev,
125 						struct scatterlist *sg,
126 						int nelems, int direction)
127 {
128 }
129 #endif /* CONFIG_DMA_API_DEBUG */
130 #endif /* _KERNEL_DMA_DEBUG_H */
131