diff options
Diffstat (limited to 'arch/arm64/include/asm/io.h')
-rw-r--r-- | arch/arm64/include/asm/io.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/io.h b/arch/arm64/include/asm/io.h index 1d12f89140ba..4cc813eddacb 100644 --- a/arch/arm64/include/asm/io.h +++ b/arch/arm64/include/asm/io.h | |||
@@ -22,11 +22,14 @@ | |||
22 | #ifdef __KERNEL__ | 22 | #ifdef __KERNEL__ |
23 | 23 | ||
24 | #include <linux/types.h> | 24 | #include <linux/types.h> |
25 | #include <linux/blk_types.h> | ||
25 | 26 | ||
26 | #include <asm/byteorder.h> | 27 | #include <asm/byteorder.h> |
27 | #include <asm/barrier.h> | 28 | #include <asm/barrier.h> |
28 | #include <asm/pgtable.h> | 29 | #include <asm/pgtable.h> |
29 | 30 | ||
31 | #include <xen/xen.h> | ||
32 | |||
30 | /* | 33 | /* |
31 | * Generic IO read/write. These perform native-endian accesses. | 34 | * Generic IO read/write. These perform native-endian accesses. |
32 | */ | 35 | */ |
@@ -224,6 +227,7 @@ extern void __memset_io(volatile void __iomem *, int, size_t); | |||
224 | */ | 227 | */ |
225 | extern void __iomem *__ioremap(phys_addr_t phys_addr, size_t size, pgprot_t prot); | 228 | extern void __iomem *__ioremap(phys_addr_t phys_addr, size_t size, pgprot_t prot); |
226 | extern void __iounmap(volatile void __iomem *addr); | 229 | extern void __iounmap(volatile void __iomem *addr); |
230 | extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size); | ||
227 | 231 | ||
228 | #define PROT_DEFAULT (PTE_TYPE_PAGE | PTE_AF | PTE_DIRTY) | 232 | #define PROT_DEFAULT (PTE_TYPE_PAGE | PTE_AF | PTE_DIRTY) |
229 | #define PROT_DEVICE_nGnRE (PROT_DEFAULT | PTE_PXN | PTE_UXN | PTE_ATTRINDX(MT_DEVICE_nGnRE)) | 233 | #define PROT_DEVICE_nGnRE (PROT_DEFAULT | PTE_PXN | PTE_UXN | PTE_ATTRINDX(MT_DEVICE_nGnRE)) |
@@ -233,7 +237,6 @@ extern void __iounmap(volatile void __iomem *addr); | |||
233 | #define ioremap(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE)) | 237 | #define ioremap(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE)) |
234 | #define ioremap_nocache(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE)) | 238 | #define ioremap_nocache(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE)) |
235 | #define ioremap_wc(addr, size) __ioremap((addr), (size), __pgprot(PROT_NORMAL_NC)) | 239 | #define ioremap_wc(addr, size) __ioremap((addr), (size), __pgprot(PROT_NORMAL_NC)) |
236 | #define ioremap_cached(addr, size) __ioremap((addr), (size), __pgprot(PROT_NORMAL)) | ||
237 | #define iounmap __iounmap | 240 | #define iounmap __iounmap |
238 | 241 | ||
239 | #define PROT_SECT_DEFAULT (PMD_TYPE_SECT | PMD_SECT_AF) | 242 | #define PROT_SECT_DEFAULT (PMD_TYPE_SECT | PMD_SECT_AF) |
@@ -263,5 +266,12 @@ extern int devmem_is_allowed(unsigned long pfn); | |||
263 | */ | 266 | */ |
264 | #define xlate_dev_kmem_ptr(p) p | 267 | #define xlate_dev_kmem_ptr(p) p |
265 | 268 | ||
269 | struct bio_vec; | ||
270 | extern bool xen_biovec_phys_mergeable(const struct bio_vec *vec1, | ||
271 | const struct bio_vec *vec2); | ||
272 | #define BIOVEC_PHYS_MERGEABLE(vec1, vec2) \ | ||
273 | (__BIOVEC_PHYS_MERGEABLE(vec1, vec2) && \ | ||
274 | (!xen_domain() || xen_biovec_phys_mergeable(vec1, vec2))) | ||
275 | |||
266 | #endif /* __KERNEL__ */ | 276 | #endif /* __KERNEL__ */ |
267 | #endif /* __ASM_IO_H */ | 277 | #endif /* __ASM_IO_H */ |