xref: /openbmc/linux/arch/arm/mm/dma.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21234e3fdSRussell King #ifndef DMA_H
31234e3fdSRussell King #define DMA_H
41234e3fdSRussell King 
51234e3fdSRussell King #include <asm/glue-cache.h>
61234e3fdSRussell King 
71234e3fdSRussell King #ifndef MULTI_CACHE
81234e3fdSRussell King #define dmac_map_area			__glue(_CACHE,_dma_map_area)
91234e3fdSRussell King #define dmac_unmap_area 		__glue(_CACHE,_dma_unmap_area)
101234e3fdSRussell King 
111234e3fdSRussell King /*
121234e3fdSRussell King  * These are private to the dma-mapping API.  Do not use directly.
131234e3fdSRussell King  * Their sole purpose is to ensure that data held in the cache
141234e3fdSRussell King  * is visible to DMA, or data written by DMA to system memory is
151234e3fdSRussell King  * visible to the CPU.
161234e3fdSRussell King  */
171234e3fdSRussell King extern void dmac_map_area(const void *, size_t, int);
181234e3fdSRussell King extern void dmac_unmap_area(const void *, size_t, int);
191234e3fdSRussell King 
201234e3fdSRussell King #else
211234e3fdSRussell King 
221234e3fdSRussell King /*
231234e3fdSRussell King  * These are private to the dma-mapping API.  Do not use directly.
241234e3fdSRussell King  * Their sole purpose is to ensure that data held in the cache
251234e3fdSRussell King  * is visible to DMA, or data written by DMA to system memory is
261234e3fdSRussell King  * visible to the CPU.
271234e3fdSRussell King  */
281234e3fdSRussell King #define dmac_map_area			cpu_cache.dma_map_area
291234e3fdSRussell King #define dmac_unmap_area 		cpu_cache.dma_unmap_area
301234e3fdSRussell King 
311234e3fdSRussell King #endif
321234e3fdSRussell King 
331234e3fdSRussell King #endif
34