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