Kconfig: introduce HAS_IOPORT option and select it as necessary
We introduce a new HAS_IOPORT Kconfig option to indicate support for I/O Port access. In a future patch HAS_IOPORT=n will disable compilation of the I/O accessor functions inb()/outb() and friends on architectures which can not meaningfully support legacy I/O spaces such as s390. The following architectures do not select HAS_IOPORT: * ARC * C-SKY * Hexagon * Nios II * OpenRISC * s390 * User-Mode Linux * Xtensa All other architectures select HAS_IOPORT at least conditionally. The "depends on" relations on HAS_IOPORT in drivers as well as ifdefs for HAS_IOPORT specific sections will be added in subsequent patches on a per subsystem basis. Co-developed-by: Arnd Bergmann <arnd@kernel.org> Signed-off-by: Arnd Bergmann <arnd@kernel.org> Acked-by: Johannes Berg <johannes@sipsolutions.net> # for ARCH=um Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
fe15c26ee2
commit
fcbfe8121a
|
@ -27,6 +27,7 @@ config ALPHA
|
|||
select AUDIT_ARCH
|
||||
select GENERIC_CPU_VULNERABILITIES
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select HAS_IOPORT
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_MOD_ARCH_SPECIFIC
|
||||
select MODULES_USE_ELF_RELA
|
||||
|
|
|
@ -70,6 +70,7 @@ config ARM
|
|||
select GENERIC_SCHED_CLOCK
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select HARDIRQS_SW_RESEND
|
||||
select HAS_IOPORT
|
||||
select HAVE_ARCH_AUDITSYSCALL if AEABI && !OABI_COMPAT
|
||||
select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
|
||||
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
|
||||
|
|
|
@ -145,6 +145,7 @@ config ARM64
|
|||
select GENERIC_GETTIMEOFDAY
|
||||
select GENERIC_VDSO_TIME_NS
|
||||
select HARDIRQS_SW_RESEND
|
||||
select HAS_IOPORT
|
||||
select HAVE_MOVE_PMD
|
||||
select HAVE_MOVE_PUD
|
||||
select HAVE_PCI
|
||||
|
|
|
@ -25,6 +25,7 @@ config IA64
|
|||
select PCI_DOMAINS if PCI
|
||||
select PCI_MSI
|
||||
select PCI_SYSCALL if PCI
|
||||
select HAS_IOPORT
|
||||
select HAVE_ASM_MODVERSIONS
|
||||
select HAVE_UNSTABLE_SCHED_CLOCK
|
||||
select HAVE_EXIT_THREAD
|
||||
|
|
|
@ -80,6 +80,7 @@ config LOONGARCH
|
|||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GPIOLIB
|
||||
select HAS_IOPORT
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_MMAP_RND_BITS if MMU
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
|
|
|
@ -18,6 +18,7 @@ config M68K
|
|||
select GENERIC_CPU_DEVICES
|
||||
select GENERIC_IOMAP
|
||||
select GENERIC_IRQ_SHOW
|
||||
select HAS_IOPORT if PCI || ISA || ATARI_ROM_ISA
|
||||
select HAVE_ARCH_SECCOMP
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
select HAVE_ASM_MODVERSIONS
|
||||
|
|
|
@ -21,6 +21,7 @@ config MICROBLAZE
|
|||
select GENERIC_IRQ_SHOW
|
||||
select GENERIC_PCI_IOMAP
|
||||
select GENERIC_SCHED_CLOCK
|
||||
select HAS_IOPORT if PCI
|
||||
select HAVE_ARCH_HASH
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_ARCH_SECCOMP
|
||||
|
|
|
@ -47,6 +47,7 @@ config MIPS
|
|||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
|
||||
select HAS_IOPORT if !NO_IOPORT_MAP || ISA
|
||||
select HAVE_ARCH_COMPILER_H
|
||||
select HAVE_ARCH_JUMP_LABEL
|
||||
select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT
|
||||
|
|
|
@ -47,6 +47,7 @@ config PARISC
|
|||
select MODULES_USE_ELF_RELA
|
||||
select CLONE_BACKWARDS
|
||||
select TTY # Needed for pdc_cons.c
|
||||
select HAS_IOPORT if PCI || EISA
|
||||
select HAVE_DEBUG_STACKOVERFLOW
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_HASH
|
||||
|
|
|
@ -188,6 +188,7 @@ config PPC
|
|||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GENERIC_TIME_VSYSCALL
|
||||
select GENERIC_VDSO_TIME_NS
|
||||
select HAS_IOPORT if PCI
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_HUGE_VMALLOC if HAVE_ARCH_HUGE_VMAP
|
||||
select HAVE_ARCH_HUGE_VMAP if PPC_RADIX_MMU || PPC_8xx
|
||||
|
|
|
@ -74,6 +74,7 @@ config RISCV
|
|||
select GENERIC_TIME_VSYSCALL if MMU && 64BIT
|
||||
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
|
||||
select HARDIRQS_SW_RESEND
|
||||
select HAS_IOPORT if MMU
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_HUGE_VMALLOC if HAVE_ARCH_HUGE_VMAP
|
||||
select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
|
||||
|
|
|
@ -25,6 +25,7 @@ config SUPERH
|
|||
select GENERIC_SCHED_CLOCK
|
||||
select GENERIC_SMP_IDLE_THREAD
|
||||
select GUP_GET_PXX_LOW_HIGH if X2TLB
|
||||
select HAS_IOPORT if HAS_IOPORT_MAP
|
||||
select HAVE_ARCH_AUDITSYSCALL
|
||||
select HAVE_ARCH_KGDB
|
||||
select HAVE_ARCH_SECCOMP_FILTER
|
||||
|
|
|
@ -32,6 +32,7 @@ config SPARC
|
|||
select GENERIC_IRQ_SHOW
|
||||
select ARCH_WANT_IPC_PARSE_VERSION
|
||||
select GENERIC_PCI_IOMAP
|
||||
select HAS_IOPORT
|
||||
select HAVE_NMI_WATCHDOG if SPARC64
|
||||
select HAVE_CBPF_JIT if SPARC32
|
||||
select HAVE_EBPF_JIT if SPARC64
|
||||
|
|
|
@ -162,6 +162,7 @@ config X86
|
|||
select GUP_GET_PXX_LOW_HIGH if X86_PAE
|
||||
select HARDIRQS_SW_RESEND
|
||||
select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
|
||||
select HAS_IOPORT
|
||||
select HAVE_ACPI_APEI if ACPI
|
||||
select HAVE_ACPI_APEI_NMI if ACPI
|
||||
select HAVE_ALIGNED_STRUCT_PAGE if SLUB
|
||||
|
|
|
@ -81,7 +81,7 @@ config MOXTET
|
|||
config HISILICON_LPC
|
||||
bool "Support for ISA I/O space on HiSilicon Hip06/7"
|
||||
depends on (ARM64 && ARCH_HISI) || (COMPILE_TEST && !ALPHA && !HEXAGON && !PARISC)
|
||||
depends on HAS_IOMEM
|
||||
depends on HAS_IOPORT
|
||||
select INDIRECT_PIO if ARM64
|
||||
help
|
||||
Driver to enable I/O access to devices attached to the Low Pin
|
||||
|
|
|
@ -4,6 +4,7 @@ menu "Bus options (PCI, PCMCIA, EISA, GSC, ISA)"
|
|||
config GSC
|
||||
bool "VSC/GSC/HSC bus support"
|
||||
select HAVE_EISA
|
||||
select HAS_IOPORT
|
||||
default y
|
||||
help
|
||||
The VSC, GSC and HSC busses were used from the earliest 700-series
|
||||
|
|
|
@ -92,6 +92,7 @@ config ARCH_USE_SYM_ANNOTATIONS
|
|||
config INDIRECT_PIO
|
||||
bool "Access I/O in non-MMIO mode"
|
||||
depends on ARM64
|
||||
depends on HAS_IOPORT
|
||||
help
|
||||
On some platforms where no separate I/O space exists, there are I/O
|
||||
hosts which can not be accessed in MMIO mode. Using the logical PIO
|
||||
|
@ -509,6 +510,9 @@ config HAS_IOMEM
|
|||
depends on !NO_IOMEM
|
||||
default y
|
||||
|
||||
config HAS_IOPORT
|
||||
bool
|
||||
|
||||
config HAS_IOPORT_MAP
|
||||
bool
|
||||
depends on HAS_IOMEM && !NO_IOPORT_MAP
|
||||
|
|
Loading…
Reference in New Issue