]>
git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blob - include/linux/dma-debug.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (C) 2008 Advanced Micro Devices, Inc.
5 * Author: Joerg Roedel <joerg.roedel@amd.com>
11 #include <linux/types.h>
17 #ifdef CONFIG_DMA_API_DEBUG
19 extern void dma_debug_add_bus(struct bus_type
*bus
);
21 extern void debug_dma_map_single(struct device
*dev
, const void *addr
,
24 extern 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
);
28 extern void debug_dma_mapping_error(struct device
*dev
, dma_addr_t dma_addr
);
30 extern void debug_dma_unmap_page(struct device
*dev
, dma_addr_t addr
,
31 size_t size
, int direction
);
33 extern void debug_dma_map_sg(struct device
*dev
, struct scatterlist
*sg
,
34 int nents
, int mapped_ents
, int direction
);
36 extern void debug_dma_unmap_sg(struct device
*dev
, struct scatterlist
*sglist
,
39 extern void debug_dma_alloc_coherent(struct device
*dev
, size_t size
,
40 dma_addr_t dma_addr
, void *virt
);
42 extern void debug_dma_free_coherent(struct device
*dev
, size_t size
,
43 void *virt
, dma_addr_t addr
);
45 extern void debug_dma_map_resource(struct device
*dev
, phys_addr_t addr
,
46 size_t size
, int direction
,
49 extern void debug_dma_unmap_resource(struct device
*dev
, dma_addr_t dma_addr
,
50 size_t size
, int direction
);
52 extern void debug_dma_sync_single_for_cpu(struct device
*dev
,
53 dma_addr_t dma_handle
, size_t size
,
56 extern void debug_dma_sync_single_for_device(struct device
*dev
,
57 dma_addr_t dma_handle
,
58 size_t size
, int direction
);
60 extern void debug_dma_sync_sg_for_cpu(struct device
*dev
,
61 struct scatterlist
*sg
,
62 int nelems
, int direction
);
64 extern void debug_dma_sync_sg_for_device(struct device
*dev
,
65 struct scatterlist
*sg
,
66 int nelems
, int direction
);
68 extern void debug_dma_dump_mappings(struct device
*dev
);
70 extern void debug_dma_assert_idle(struct page
*page
);
72 #else /* CONFIG_DMA_API_DEBUG */
74 static inline void dma_debug_add_bus(struct bus_type
*bus
)
78 static inline void debug_dma_map_single(struct device
*dev
, const void *addr
,
83 static 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
)
89 static inline void debug_dma_mapping_error(struct device
*dev
,
94 static inline void debug_dma_unmap_page(struct device
*dev
, dma_addr_t addr
,
95 size_t size
, int direction
)
99 static inline void debug_dma_map_sg(struct device
*dev
, struct scatterlist
*sg
,
100 int nents
, int mapped_ents
, int direction
)
104 static inline void debug_dma_unmap_sg(struct device
*dev
,
105 struct scatterlist
*sglist
,
110 static inline void debug_dma_alloc_coherent(struct device
*dev
, size_t size
,
111 dma_addr_t dma_addr
, void *virt
)
115 static inline void debug_dma_free_coherent(struct device
*dev
, size_t size
,
116 void *virt
, dma_addr_t addr
)
120 static inline void debug_dma_map_resource(struct device
*dev
, phys_addr_t addr
,
121 size_t size
, int direction
,
126 static inline void debug_dma_unmap_resource(struct device
*dev
,
127 dma_addr_t dma_addr
, size_t size
,
132 static inline void debug_dma_sync_single_for_cpu(struct device
*dev
,
133 dma_addr_t dma_handle
,
134 size_t size
, int direction
)
138 static inline void debug_dma_sync_single_for_device(struct device
*dev
,
139 dma_addr_t dma_handle
,
140 size_t size
, int direction
)
144 static inline void debug_dma_sync_sg_for_cpu(struct device
*dev
,
145 struct scatterlist
*sg
,
146 int nelems
, int direction
)
150 static inline void debug_dma_sync_sg_for_device(struct device
*dev
,
151 struct scatterlist
*sg
,
152 int nelems
, int direction
)
156 static inline void debug_dma_dump_mappings(struct device
*dev
)
160 static inline void debug_dma_assert_idle(struct page
*page
)
164 #endif /* CONFIG_DMA_API_DEBUG */
166 #endif /* __DMA_DEBUG_H */