diff options
Diffstat (limited to 'arch/xtensa/include/asm/io.h')
| -rw-r--r-- | arch/xtensa/include/asm/io.h | 50 |
1 files changed, 15 insertions, 35 deletions
diff --git a/arch/xtensa/include/asm/io.h b/arch/xtensa/include/asm/io.h index 700c2e6f2d25..7cdcc2deab3e 100644 --- a/arch/xtensa/include/asm/io.h +++ b/arch/xtensa/include/asm/io.h @@ -11,36 +11,38 @@ #ifndef _XTENSA_IO_H #define _XTENSA_IO_H -#ifdef __KERNEL__ #include <asm/byteorder.h> #include <asm/page.h> +#include <asm/vectors.h> #include <linux/bug.h> #include <linux/kernel.h> +#include <linux/pgtable.h> #include <linux/types.h> -#define XCHAL_KIO_CACHED_VADDR 0xe0000000 -#define XCHAL_KIO_BYPASS_VADDR 0xf0000000 -#define XCHAL_KIO_PADDR 0xf0000000 -#define XCHAL_KIO_SIZE 0x10000000 - #define IOADDR(x) (XCHAL_KIO_BYPASS_VADDR + (x)) #define IO_SPACE_LIMIT ~0 +#define PCI_IOBASE ((void __iomem *)XCHAL_KIO_BYPASS_VADDR) #ifdef CONFIG_MMU /* - * Return the virtual address for the specified bus memory. - * Note that we currently don't support any address outside the KIO segment. + * I/O memory mapping functions. */ -static inline void __iomem *ioremap_nocache(unsigned long offset, - unsigned long size) +void __iomem *ioremap_prot(phys_addr_t phys_addr, size_t size, + pgprot_t prot); +#define ioremap_prot ioremap_prot +#define iounmap iounmap + +static inline void __iomem *ioremap(unsigned long offset, unsigned long size) { if (offset >= XCHAL_KIO_PADDR && offset - XCHAL_KIO_PADDR < XCHAL_KIO_SIZE) return (void*)(offset-XCHAL_KIO_PADDR+XCHAL_KIO_BYPASS_VADDR); else - BUG(); + return ioremap_prot(offset, size, + pgprot_noncached(PAGE_KERNEL)); } +#define ioremap ioremap static inline void __iomem *ioremap_cache(unsigned long offset, unsigned long size) @@ -49,34 +51,12 @@ static inline void __iomem *ioremap_cache(unsigned long offset, && offset - XCHAL_KIO_PADDR < XCHAL_KIO_SIZE) return (void*)(offset-XCHAL_KIO_PADDR+XCHAL_KIO_CACHED_VADDR); else - BUG(); -} + return ioremap_prot(offset, size, PAGE_KERNEL); -#define ioremap_wc ioremap_nocache - -static inline void __iomem *ioremap(unsigned long offset, unsigned long size) -{ - return ioremap_nocache(offset, size); } - -static inline void iounmap(volatile void __iomem *addr) -{ -} - -#define virt_to_bus virt_to_phys -#define bus_to_virt phys_to_virt - +#define ioremap_cache ioremap_cache #endif /* CONFIG_MMU */ -/* - * Generic I/O - */ -#define readb_relaxed readb -#define readw_relaxed readw -#define readl_relaxed readl - -#endif /* __KERNEL__ */ - #include <asm-generic/io.h> #endif /* _XTENSA_IO_H */ |
