blob: bdf9aed404030aab956bec27b29e2f4b9dd7c307 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
H. Peter Anvin1965aae2008-10-22 22:26:29 -07002#ifndef _ASM_X86_SWIOTLB_H
3#define _ASM_X86_SWIOTLB_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07004
FUJITA Tomonori1da4f982008-12-28 15:02:05 +09005#include <linux/swiotlb.h>
Muli Ben-Yehuda17a941d2006-01-11 22:44:42 +01006
Linus Torvalds1da177e2005-04-16 15:20:36 -07007#ifdef CONFIG_SWIOTLB
8extern int swiotlb;
Konrad Rzeszutek Wilkefa631c2010-08-26 13:57:59 -04009extern int __init pci_swiotlb_detect_override(void);
10extern int __init pci_swiotlb_detect_4gb(void);
FUJITA Tomonori186a2502009-12-15 20:47:56 +090011extern void __init pci_swiotlb_init(void);
Konrad Rzeszutek Wilkefa631c2010-08-26 13:57:59 -040012extern void __init pci_swiotlb_late_init(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070013#else
14#define swiotlb 0
Konrad Rzeszutek Wilkefa631c2010-08-26 13:57:59 -040015static inline int pci_swiotlb_detect_override(void)
16{
17 return 0;
18}
19static inline int pci_swiotlb_detect_4gb(void)
FUJITA Tomonoribe54f9d2008-07-11 10:23:45 +090020{
FUJITA Tomonorib18485e2009-11-12 00:03:28 +090021 return 0;
FUJITA Tomonoribe54f9d2008-07-11 10:23:45 +090022}
FUJITA Tomonori186a2502009-12-15 20:47:56 +090023static inline void pci_swiotlb_init(void)
24{
25}
Konrad Rzeszutek Wilkefa631c2010-08-26 13:57:59 -040026static inline void pci_swiotlb_late_init(void)
27{
28}
Linus Torvalds1da177e2005-04-16 15:20:36 -070029#endif
30
Jan Beulichcde14bb2007-02-05 18:46:40 -080031static inline void dma_mark_clean(void *addr, size_t size) {}
32
Akinobu Mita9c5a3622014-06-04 16:06:50 -070033extern void *x86_swiotlb_alloc_coherent(struct device *hwdev, size_t size,
34 dma_addr_t *dma_handle, gfp_t flags,
Krzysztof Kozlowski00085f12016-08-03 13:46:00 -070035 unsigned long attrs);
Akinobu Mita9c5a3622014-06-04 16:06:50 -070036extern void x86_swiotlb_free_coherent(struct device *dev, size_t size,
37 void *vaddr, dma_addr_t dma_addr,
Krzysztof Kozlowski00085f12016-08-03 13:46:00 -070038 unsigned long attrs);
Akinobu Mita9c5a3622014-06-04 16:06:50 -070039
H. Peter Anvin1965aae2008-10-22 22:26:29 -070040#endif /* _ASM_X86_SWIOTLB_H */