diff options
Diffstat (limited to 'arch/x86/include/asm/io.h')
| -rw-r--r-- | arch/x86/include/asm/io.h | 50 | 
1 files changed, 12 insertions, 38 deletions
diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h index 07227308252..b8237d8a1e0 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h @@ -38,10 +38,8 @@  #include <linux/string.h>  #include <linux/compiler.h> -#include <asm-generic/int-ll64.h>  #include <asm/page.h> - -#include <xen/xen.h> +#include <asm/early_ioremap.h>  #define build_mmio_read(name, size, type, reg, barrier) \  static inline type name(const volatile void __iomem *addr) \ @@ -87,27 +85,6 @@ build_mmio_write(__writel, "l", unsigned int, "r", )  build_mmio_read(readq, "q", unsigned long, "=r", :"memory")  build_mmio_write(writeq, "q", unsigned long, "r", :"memory") -#else - -static inline __u64 readq(const volatile void __iomem *addr) -{ -	const volatile u32 __iomem *p = addr; -	u32 low, high; - -	low = readl(p); -	high = readl(p + 1); - -	return low + ((u64)high << 32); -} - -static inline void writeq(__u64 val, volatile void __iomem *addr) -{ -	writel(val, addr); -	writel(val >> 32, addr+4); -} - -#endif -  #define readq_relaxed(a)	readq(a)  #define __raw_readq(a)		readq(a) @@ -117,6 +94,8 @@ static inline void writeq(__u64 val, volatile void __iomem *addr)  #define readq			readq  #define writeq			writeq +#endif +  /**   *	virt_to_phys	-	map virtual addresses to physical   *	@address: address to remap @@ -259,7 +238,7 @@ memcpy_toio(volatile void __iomem *dst, const void *src, size_t count)  static inline void flush_write_buffers(void)  { -#if defined(CONFIG_X86_OOSTORE) || defined(CONFIG_X86_PPRO_FENCE) +#if defined(CONFIG_X86_PPRO_FENCE)  	asm volatile("lock; addl $0,0(%%esp)": : :"memory");  #endif  } @@ -338,22 +317,10 @@ extern int ioremap_change_attr(unsigned long vaddr, unsigned long size,  				unsigned long prot_val);  extern void __iomem *ioremap_wc(resource_size_t offset, unsigned long size); -/* - * early_ioremap() and early_iounmap() are for temporary early boot-time - * mappings, before the real ioremap() is functional. - * A boot-time mapping is currently limited to at most 16 pages. - */ -extern void early_ioremap_init(void); -extern void early_ioremap_reset(void); -extern void __iomem *early_ioremap(resource_size_t phys_addr, -				   unsigned long size); -extern void __iomem *early_memremap(resource_size_t phys_addr, -				    unsigned long size); -extern void early_iounmap(void __iomem *addr, unsigned long size); -extern void fixup_early_ioremap(void);  extern bool is_early_ioremap_ptep(pte_t *ptep);  #ifdef CONFIG_XEN +#include <xen/xen.h>  struct bio_vec;  extern bool xen_biovec_phys_mergeable(const struct bio_vec *vec1, @@ -366,4 +333,11 @@ extern bool xen_biovec_phys_mergeable(const struct bio_vec *vec1,  #define IO_SPACE_LIMIT 0xffff +#ifdef CONFIG_MTRR +extern int __must_check arch_phys_wc_add(unsigned long base, +					 unsigned long size); +extern void arch_phys_wc_del(int handle); +#define arch_phys_wc_add arch_phys_wc_add +#endif +  #endif /* _ASM_X86_IO_H */  | 
