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 */
debug_dma_map_phys(struct device * dev,phys_addr_t phys,size_t size,int direction,dma_addr_t dma_addr,unsigned long attrs)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
debug_dma_unmap_phys(struct device * dev,dma_addr_t addr,size_t size,int direction)62 static inline void debug_dma_unmap_phys(struct device *dev, dma_addr_t addr,
63 size_t size, int direction)
64 {
65 }
66
debug_dma_map_sg(struct device * dev,struct scatterlist * sg,int nents,int mapped_ents,int direction,unsigned long attrs)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
debug_dma_unmap_sg(struct device * dev,struct scatterlist * sglist,int nelems,int dir)73 static inline void debug_dma_unmap_sg(struct device *dev,
74 struct scatterlist *sglist,
75 int nelems, int dir)
76 {
77 }
78
debug_dma_alloc_coherent(struct device * dev,size_t size,dma_addr_t dma_addr,void * virt,unsigned long attrs)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
debug_dma_free_coherent(struct device * dev,size_t size,void * virt,dma_addr_t addr)85 static inline void debug_dma_free_coherent(struct device *dev, size_t size,
86 void *virt, dma_addr_t addr)
87 {
88 }
89
debug_dma_sync_single_for_cpu(struct device * dev,dma_addr_t dma_handle,size_t size,int direction)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
debug_dma_sync_single_for_device(struct device * dev,dma_addr_t dma_handle,size_t size,int direction)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
debug_dma_sync_sg_for_cpu(struct device * dev,struct scatterlist * sg,int nelems,int direction)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
debug_dma_sync_sg_for_device(struct device * dev,struct scatterlist * sg,int nelems,int direction)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
debug_dma_alloc_pages(struct device * dev,struct page * page,size_t size,int direction,dma_addr_t dma_addr,unsigned long attrs)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
debug_dma_free_pages(struct device * dev,struct page * page,size_t size,int direction,dma_addr_t dma_addr)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