mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 04:35:20 +07:00
27afc5dbda
Pull s390 updates from Martin Schwidefsky: "The most notable change for this pull request is the ftrace rework from Heiko. It brings a small performance improvement and the ground work to support a new gcc option to replace the mcount blocks with a single nop. Two new s390 specific system calls are added to emulate user space mmio for PCI, an artifact of the how PCI memory is accessed. Two patches for the memory management with changes to common code. For KVM mm_forbids_zeropage is added which disables the empty zero page for an mm that is used by a KVM process. And an optimization, pmdp_get_and_clear_full is added analog to ptep_get_and_clear_full. Some micro optimization for the cmpxchg and the spinlock code. And as usual bug fixes and cleanups" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits) s390/cputime: fix 31-bit compile s390/scm_block: make the number of reqs per HW req configurable s390/scm_block: handle multiple requests in one HW request s390/scm_block: allocate aidaw pages only when necessary s390/scm_block: use mempool to manage aidaw requests s390/eadm: change timeout value s390/mm: fix memory leak of ptlock in pmd_free_tlb s390: use local symbol names in entry[64].S s390/ptrace: always include vector registers in core files s390/simd: clear vector register pointer on fork/clone s390: translate cputime magic constants to macros s390/idle: convert open coded idle time seqcount s390/idle: add missing irq off lockdep annotation s390/debug: avoid function call for debug_sprintf_* s390/kprobes: fix instruction copy for out of line execution s390: remove diag 44 calls from cpu_relax() s390/dasd: retry partition detection s390/dasd: fix list corruption for sleep_on requests s390/dasd: fix infinite term I/O loop s390/dasd: remove unused code ...
78 lines
1.9 KiB
C
78 lines
1.9 KiB
C
/*
|
|
* S390 version
|
|
* Copyright IBM Corp. 1999
|
|
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
|
|
*
|
|
* Derived from "include/asm-i386/io.h"
|
|
*/
|
|
|
|
#ifndef _S390_IO_H
|
|
#define _S390_IO_H
|
|
|
|
#include <linux/kernel.h>
|
|
#include <asm/page.h>
|
|
#include <asm/pci_io.h>
|
|
|
|
#define xlate_dev_mem_ptr xlate_dev_mem_ptr
|
|
void *xlate_dev_mem_ptr(phys_addr_t phys);
|
|
#define unxlate_dev_mem_ptr unxlate_dev_mem_ptr
|
|
void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
|
|
|
|
/*
|
|
* Convert a virtual cached pointer to an uncached pointer
|
|
*/
|
|
#define xlate_dev_kmem_ptr(p) p
|
|
|
|
#define IO_SPACE_LIMIT 0
|
|
|
|
#ifdef CONFIG_PCI
|
|
|
|
#define ioremap_nocache(addr, size) ioremap(addr, size)
|
|
#define ioremap_wc ioremap_nocache
|
|
|
|
static inline void __iomem *ioremap(unsigned long offset, unsigned long size)
|
|
{
|
|
return (void __iomem *) offset;
|
|
}
|
|
|
|
static inline void iounmap(volatile void __iomem *addr)
|
|
{
|
|
}
|
|
|
|
static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
|
|
{
|
|
return NULL;
|
|
}
|
|
|
|
static inline void ioport_unmap(void __iomem *p)
|
|
{
|
|
}
|
|
|
|
/*
|
|
* s390 needs a private implementation of pci_iomap since ioremap with its
|
|
* offset parameter isn't sufficient. That's because BAR spaces are not
|
|
* disjunctive on s390 so we need the bar parameter of pci_iomap to find
|
|
* the corresponding device and create the mapping cookie.
|
|
*/
|
|
#define pci_iomap pci_iomap
|
|
#define pci_iounmap pci_iounmap
|
|
|
|
#define memcpy_fromio(dst, src, count) zpci_memcpy_fromio(dst, src, count)
|
|
#define memcpy_toio(dst, src, count) zpci_memcpy_toio(dst, src, count)
|
|
#define memset_io(dst, val, count) zpci_memset_io(dst, val, count)
|
|
|
|
#define __raw_readb zpci_read_u8
|
|
#define __raw_readw zpci_read_u16
|
|
#define __raw_readl zpci_read_u32
|
|
#define __raw_readq zpci_read_u64
|
|
#define __raw_writeb zpci_write_u8
|
|
#define __raw_writew zpci_write_u16
|
|
#define __raw_writel zpci_write_u32
|
|
#define __raw_writeq zpci_write_u64
|
|
|
|
#endif /* CONFIG_PCI */
|
|
|
|
#include <asm-generic/io.h>
|
|
|
|
#endif
|