diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 14:20:19 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 14:20:19 -0800 | 
| commit | c7708fac5a878d6e0f2de0aa19f9749cff4f707f (patch) | |
| tree | 21a59cbe503ca526697f7d0bce5e0e30980bcbc0 /include/asm-generic/io.h | |
| parent | 3127f23f013eabe9b58132c05061684c49146ba3 (diff) | |
| parent | 6726a807c38d7fd09bc23a0adc738efec6ff9492 (diff) | |
| download | olio-linux-3.10-c7708fac5a878d6e0f2de0aa19f9749cff4f707f.tar.xz olio-linux-3.10-c7708fac5a878d6e0f2de0aa19f9749cff4f707f.zip  | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 update from Martin Schwidefsky:
 "Add support to generate code for the latest machine zEC12, MOD and XOR
  instruction support for the BPF jit compiler, the dasd safe offline
  feature and the big one: the s390 architecture gets PCI support!!
  Right before the world ends on the 21st ;-)"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (41 commits)
  s390/qdio: rename the misleading PCI flag of qdio devices
  s390/pci: remove obsolete email addresses
  s390/pci: speed up __iowrite64_copy by using pci store block insn
  s390/pci: enable NEED_DMA_MAP_STATE
  s390/pci: no msleep in potential IRQ context
  s390/pci: fix potential NULL pointer dereference in dma_free_seg_table()
  s390/pci: use kmem_cache_zalloc instead of kmem_cache_alloc/memset
  s390/bpf,jit: add support for XOR instruction
  s390/bpf,jit: add support MOD instruction
  s390/cio: fix pgid reserved check
  vga: compile fix, disable vga for s390
  s390/pci: add PCI Kconfig options
  s390/pci: s390 specific PCI sysfs attributes
  s390/pci: PCI hotplug support via SCLP
  s390/pci: CHSC PCI support for error and availability events
  s390/pci: DMA support
  s390/pci: PCI adapter interrupts for MSI/MSI-X
  s390/bitops: find leftmost bit instruction support
  s390/pci: CLP interface
  s390/pci: base support
  ...
Diffstat (limited to 'include/asm-generic/io.h')
| -rw-r--r-- | include/asm-generic/io.h | 21 | 
1 files changed, 20 insertions, 1 deletions
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index 448303bdb85..9e0ebe05124 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h @@ -83,19 +83,25 @@ static inline void __raw_writel(u32 b, volatile void __iomem *addr)  #define writel(b,addr) __raw_writel(__cpu_to_le32(b),addr)  #ifdef CONFIG_64BIT +#ifndef __raw_readq  static inline u64 __raw_readq(const volatile void __iomem *addr)  {  	return *(const volatile u64 __force *) addr;  } +#endif +  #define readq(addr) __le64_to_cpu(__raw_readq(addr)) +#ifndef __raw_writeq  static inline void __raw_writeq(u64 b, volatile void __iomem *addr)  {  	*(volatile u64 __force *) addr = b;  } -#define writeq(b,addr) __raw_writeq(__cpu_to_le64(b),addr)  #endif +#define writeq(b, addr) __raw_writeq(__cpu_to_le64(b), addr) +#endif /* CONFIG_64BIT */ +  #ifndef PCI_IOBASE  #define PCI_IOBASE ((void __iomem *) 0)  #endif @@ -286,15 +292,20 @@ static inline void writesb(const void __iomem *addr, const void *buf, int len)  #ifndef CONFIG_GENERIC_IOMAP  struct pci_dev; +extern void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max); + +#ifndef pci_iounmap  static inline void pci_iounmap(struct pci_dev *dev, void __iomem *p)  {  } +#endif  #endif /* CONFIG_GENERIC_IOMAP */  /*   * Change virtual addresses to physical addresses and vv.   * These are pretty trivial   */ +#ifndef virt_to_phys  static inline unsigned long virt_to_phys(volatile void *address)  {  	return __pa((unsigned long)address); @@ -304,6 +315,7 @@ static inline void *phys_to_virt(unsigned long address)  {  	return __va(address);  } +#endif  /*   * Change "struct page" to physical address. @@ -363,9 +375,16 @@ static inline void *bus_to_virt(unsigned long address)  }  #endif +#ifndef memset_io  #define memset_io(a, b, c)	memset(__io_virt(a), (b), (c)) +#endif + +#ifndef memcpy_fromio  #define memcpy_fromio(a, b, c)	memcpy((a), __io_virt(b), (c)) +#endif +#ifndef memcpy_toio  #define memcpy_toio(a, b, c)	memcpy(__io_virt(a), (b), (c)) +#endif  #endif /* __KERNEL__ */  |