This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 9facb3455c116337791946c2ecef1ed16cb78a2e Mon Sep 17 00:00:00 2001 | |
From: Arnd Bergmann <arnd@arndb.de> | |
Date: Mon, 5 Jul 2021 11:43:16 +0200 | |
Subject: [PATCH] CONFIG_HAS_IOPORT | |
Note (Niklas Schnelle): | |
This is as rebase on v5.16-rc5 of https://pastebin.com/yaFSmAuY | |
originally posted at by Arnd at the link below. | |
On s39 which leaves HAS_IOPORT unset it compiles with allyesconfig. | |
I also tested that PCI is working as expected. | |
On x86_64 I tested it with a config based on the current Arch Linux | |
config with LEGACY_PCI=n set. On an AMD Ryzen 3990X based system things | |
appear functional and I do get about 60 MB less modules compared to | |
v5.15.8 with the original config. | |
The following was changed compared to Arnd's original patch: | |
- Added HAS_IOPORT to arch Kconfigs | |
- Added "config LEGACY_PCI" to drivers/pci/Kconfig | |
- Tested non LEGACY_PCI x86_64 boot | |
- Fixed CONFIG_HAS_IOPORT typo in asm-generic/io.h | |
- Removed wrong LEGACY_PCI dependency of i2c-i801. | |
Which is also used in current gen Intel platforms | |
and depends on x86 anyway. | |
Link: https://lore.kernel.org/lkml/CAK8P3a0MNbx-iuzW_-=0ab6-TTZzwV-PT_6gAC1Gp5PgYyHcrA@mail.gmail.com/ | |
Signed-off-by: Arnd Bergmann <arnd@arndb.de> | |
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com> | |
--- | |
arch/alpha/Kconfig | 1 + | |
arch/arc/Kconfig | 1 + | |
arch/ia64/Kconfig | 1 + | |
arch/m68k/Kconfig | 1 + | |
arch/microblaze/Kconfig | 1 + | |
arch/mips/Kconfig | 1 + | |
arch/parisc/Kconfig | 1 + | |
arch/powerpc/Kconfig | 1 + | |
arch/riscv/Kconfig | 1 + | |
arch/sh/Kconfig | 1 + | |
arch/sparc/Kconfig | 1 + | |
arch/x86/Kconfig | 1 + | |
drivers/accessibility/speakup/Kconfig | 1 + | |
drivers/acpi/Kconfig | 1 + | |
drivers/ata/Kconfig | 34 ++--- | |
drivers/ata/ata_generic.c | 3 +- | |
drivers/ata/libata-sff.c | 2 + | |
drivers/bus/Kconfig | 2 +- | |
drivers/char/Kconfig | 3 +- | |
drivers/char/ipmi/Makefile | 11 +- | |
drivers/char/ipmi/ipmi_si_intf.c | 3 +- | |
drivers/char/ipmi/ipmi_si_pci.c | 3 + | |
drivers/char/mem.c | 6 +- | |
drivers/char/tpm/Kconfig | 1 + | |
drivers/char/tpm/tpm_infineon.c | 14 +- | |
drivers/char/tpm/tpm_tis_core.c | 19 ++- | |
drivers/comedi/Kconfig | 53 ++++++++ | |
drivers/firmware/dmi-sysfs.c | 4 + | |
drivers/gpio/Kconfig | 2 +- | |
drivers/gpu/drm/qxl/Kconfig | 1 + | |
drivers/gpu/drm/tiny/Kconfig | 1 + | |
drivers/gpu/drm/tiny/cirrus.c | 2 + | |
drivers/hwmon/Kconfig | 21 ++- | |
drivers/i2c/busses/Kconfig | 29 +++-- | |
drivers/iio/adc/Kconfig | 2 +- | |
drivers/input/gameport/Kconfig | 6 +- | |
drivers/input/serio/Kconfig | 2 + | |
drivers/input/touchscreen/Kconfig | 1 + | |
drivers/isdn/hardware/mISDN/Kconfig | 14 +- | |
drivers/leds/Kconfig | 2 +- | |
drivers/media/cec/platform/Kconfig | 2 +- | |
drivers/media/pci/dm1105/Kconfig | 2 +- | |
drivers/media/radio/Kconfig | 15 ++- | |
drivers/media/rc/Kconfig | 6 + | |
drivers/message/fusion/Kconfig | 8 +- | |
drivers/misc/altera-stapl/Makefile | 3 +- | |
drivers/misc/altera-stapl/altera.c | 6 +- | |
drivers/net/Kconfig | 2 +- | |
drivers/net/arcnet/Kconfig | 2 +- | |
drivers/net/can/cc770/Kconfig | 1 + | |
drivers/net/can/sja1000/Kconfig | 1 + | |
drivers/net/ethernet/8390/Kconfig | 2 +- | |
drivers/net/ethernet/amd/Kconfig | 2 +- | |
drivers/net/ethernet/intel/Kconfig | 4 +- | |
drivers/net/ethernet/sis/Kconfig | 6 +- | |
drivers/net/ethernet/ti/Kconfig | 4 +- | |
drivers/net/ethernet/via/Kconfig | 5 +- | |
drivers/net/fddi/Kconfig | 4 +- | |
drivers/net/hamradio/Kconfig | 6 +- | |
drivers/net/wan/Kconfig | 2 +- | |
drivers/net/wireless/atmel/Kconfig | 4 +- | |
drivers/net/wireless/intersil/hostap/Kconfig | 4 +- | |
drivers/parport/Kconfig | 2 +- | |
drivers/pci/Kconfig | 7 + | |
drivers/pci/pci-sysfs.c | 16 +++ | |
drivers/pci/quirks.c | 2 + | |
drivers/pcmcia/Kconfig | 2 +- | |
drivers/platform/chrome/Kconfig | 1 + | |
drivers/platform/chrome/wilco_ec/Kconfig | 1 + | |
drivers/pnp/isapnp/Kconfig | 2 +- | |
drivers/power/reset/Kconfig | 1 + | |
drivers/rtc/Kconfig | 4 +- | |
drivers/scsi/Kconfig | 21 +-- | |
drivers/scsi/aic7xxx/Kconfig.aic79xx | 2 +- | |
drivers/scsi/aic7xxx/Kconfig.aic7xxx | 2 +- | |
drivers/scsi/aic94xx/Kconfig | 2 +- | |
drivers/scsi/megaraid/Kconfig.megaraid | 2 +- | |
drivers/scsi/mvsas/Kconfig | 2 +- | |
drivers/scsi/qla2xxx/Kconfig | 2 +- | |
drivers/spi/Kconfig | 1 + | |
drivers/staging/sm750fb/Kconfig | 2 +- | |
drivers/staging/vt6655/Kconfig | 2 +- | |
drivers/tty/Kconfig | 2 +- | |
drivers/tty/serial/Kconfig | 2 +- | |
drivers/usb/core/hcd-pci.c | 4 +- | |
drivers/usb/host/Kconfig | 4 +- | |
drivers/usb/host/pci-quirks.c | 128 ++++++++++--------- | |
drivers/usb/host/pci-quirks.h | 33 +++-- | |
drivers/usb/host/uhci-hcd.c | 2 +- | |
drivers/usb/host/uhci-hcd.h | 77 +++++++---- | |
drivers/video/fbdev/Kconfig | 23 ++-- | |
drivers/watchdog/Kconfig | 6 +- | |
include/asm-generic/io.h | 6 + | |
include/linux/gameport.h | 9 +- | |
include/linux/parport.h | 2 +- | |
include/video/vga.h | 8 ++ | |
lib/Kconfig | 4 + | |
lib/Kconfig.kgdb | 1 + | |
sound/drivers/Kconfig | 3 + | |
sound/pci/Kconfig | 43 +++++-- | |
100 files changed, 528 insertions(+), 251 deletions(-) | |
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig | |
index 4e87783c90ad..472a0c5e4c2f 100644 | |
--- a/arch/alpha/Kconfig | |
+++ b/arch/alpha/Kconfig | |
@@ -28,6 +28,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 | |
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig | |
index b4ae6058902a..b3911ebbd237 100644 | |
--- a/arch/arc/Kconfig | |
+++ b/arch/arc/Kconfig | |
@@ -27,6 +27,7 @@ config ARC | |
select GENERIC_PENDING_IRQ if SMP | |
select GENERIC_SCHED_CLOCK | |
select GENERIC_SMP_IDLE_THREAD | |
+ select HAS_IOPORT | |
select HAVE_ARCH_KGDB | |
select HAVE_ARCH_TRACEHOOK | |
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARC_MMU_V4 | |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig | |
index 1e33666fa679..672aa2a88b19 100644 | |
--- a/arch/ia64/Kconfig | |
+++ b/arch/ia64/Kconfig | |
@@ -24,6 +24,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 | |
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig | |
index 0b50da08a9c5..926d97c33828 100644 | |
--- a/arch/m68k/Kconfig | |
+++ b/arch/m68k/Kconfig | |
@@ -16,6 +16,7 @@ config M68K | |
select GENERIC_CPU_DEVICES | |
select GENERIC_IOMAP | |
select GENERIC_IRQ_SHOW | |
+ select HAS_IOPORT | |
select HAVE_AOUT if MMU | |
select HAVE_ASM_MODVERSIONS | |
select HAVE_DEBUG_BUGVERBOSE | |
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig | |
index 59798e43cdb0..213ef2940079 100644 | |
--- a/arch/microblaze/Kconfig | |
+++ b/arch/microblaze/Kconfig | |
@@ -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 | |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig | |
index 0215dc1529e9..87e6e7c29493 100644 | |
--- a/arch/mips/Kconfig | |
+++ b/arch/mips/Kconfig | |
@@ -47,6 +47,7 @@ config MIPS | |
select GENERIC_SMP_IDLE_THREAD | |
select GENERIC_TIME_VSYSCALL | |
select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT | |
+ select HAS_IOPORT | |
select HAVE_ARCH_COMPILER_H | |
select HAVE_ARCH_JUMP_LABEL | |
select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT | |
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig | |
index b2188da09c73..b5664dc8c331 100644 | |
--- a/arch/parisc/Kconfig | |
+++ b/arch/parisc/Kconfig | |
@@ -43,6 +43,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 | |
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig | |
index dea74d7717c0..d39ba34d839a 100644 | |
--- a/arch/powerpc/Kconfig | |
+++ b/arch/powerpc/Kconfig | |
@@ -185,6 +185,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 | |
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig | |
index 821252b65f89..b69cc86522fb 100644 | |
--- a/arch/riscv/Kconfig | |
+++ b/arch/riscv/Kconfig | |
@@ -63,6 +63,7 @@ config RISCV | |
select GENERIC_SMP_IDLE_THREAD | |
select GENERIC_TIME_VSYSCALL if MMU && 64BIT | |
select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO | |
+ select HAS_IOPORT if MMU | |
select HAVE_ARCH_AUDITSYSCALL | |
select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL | |
select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL | |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig | |
index 70afb30e0b32..334a52535379 100644 | |
--- a/arch/sh/Kconfig | |
+++ b/arch/sh/Kconfig | |
@@ -24,6 +24,7 @@ config SUPERH | |
select GENERIC_SCHED_CLOCK | |
select GENERIC_SMP_IDLE_THREAD | |
select GUP_GET_PTE_LOW_HIGH if X2TLB | |
+ select HAS_IOPORT if HAS_IOPORT_MAP | |
select HAVE_ARCH_AUDITSYSCALL | |
select HAVE_ARCH_KGDB | |
select HAVE_ARCH_SECCOMP_FILTER | |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig | |
index 66fc08646be5..728598673724 100644 | |
--- a/arch/sparc/Kconfig | |
+++ b/arch/sparc/Kconfig | |
@@ -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 | |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig | |
index 5c2ccb85f2ef..8d3cfd693559 100644 | |
--- a/arch/x86/Kconfig | |
+++ b/arch/x86/Kconfig | |
@@ -153,6 +153,7 @@ config X86 | |
select GUP_GET_PTE_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 | |
diff --git a/drivers/accessibility/speakup/Kconfig b/drivers/accessibility/speakup/Kconfig | |
index 07ecbbde0384..e84fb617acc4 100644 | |
--- a/drivers/accessibility/speakup/Kconfig | |
+++ b/drivers/accessibility/speakup/Kconfig | |
@@ -46,6 +46,7 @@ if SPEAKUP | |
config SPEAKUP_SERIALIO | |
def_bool y | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
config SPEAKUP_SYNTH_ACNTSA | |
tristate "Accent SA synthesizer support" | |
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig | |
index cdbdf68bd98f..b57f15817ede 100644 | |
--- a/drivers/acpi/Kconfig | |
+++ b/drivers/acpi/Kconfig | |
@@ -9,6 +9,7 @@ config ARCH_SUPPORTS_ACPI | |
menuconfig ACPI | |
bool "ACPI (Advanced Configuration and Power Interface) Support" | |
depends on ARCH_SUPPORTS_ACPI | |
+ depends on HAS_IOPORT | |
select PNP | |
select NLS | |
default y if X86 | |
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig | |
index a7da8ea7b3ed..32e0489bd01c 100644 | |
--- a/drivers/ata/Kconfig | |
+++ b/drivers/ata/Kconfig | |
@@ -556,7 +556,7 @@ comment "PATA SFF controllers with BMDMA" | |
config PATA_ALI | |
tristate "ALi PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select PATA_TIMINGS | |
help | |
This option enables support for the ALi ATA interfaces | |
@@ -566,7 +566,7 @@ config PATA_ALI | |
config PATA_AMD | |
tristate "AMD/NVidia PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select PATA_TIMINGS | |
help | |
This option enables support for the AMD and NVidia PATA | |
@@ -584,7 +584,7 @@ config PATA_ARASAN_CF | |
config PATA_ARTOP | |
tristate "ARTOP 6210/6260 PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for ARTOP PATA controllers. | |
@@ -621,7 +621,7 @@ config PATA_BK3710 | |
config PATA_CMD64X | |
tristate "CMD64x PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select PATA_TIMINGS | |
help | |
This option enables support for the CMD64x series chips | |
@@ -667,7 +667,7 @@ config PATA_CS5536 | |
config PATA_CYPRESS | |
tristate "Cypress CY82C693 PATA support (Very Experimental)" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select PATA_TIMINGS | |
help | |
This option enables support for the Cypress/Contaq CY82C693 | |
@@ -707,7 +707,7 @@ config PATA_FTIDE010 | |
config PATA_HPT366 | |
tristate "HPT 366/368 PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for the HPT 366 and 368 | |
PATA controllers via the new ATA layer. | |
@@ -716,7 +716,7 @@ config PATA_HPT366 | |
config PATA_HPT37X | |
tristate "HPT 370/370A/371/372/374/302 PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for the majority of the later HPT | |
PATA controllers via the new ATA layer. | |
@@ -725,7 +725,7 @@ config PATA_HPT37X | |
config PATA_HPT3X2N | |
tristate "HPT 371N/372N/302N PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for the N variant HPT PATA | |
controllers via the new ATA layer. | |
@@ -828,7 +828,7 @@ config PATA_MPC52xx | |
config PATA_NETCELL | |
tristate "NETCELL Revolution RAID support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for the Netcell Revolution RAID | |
PATA controller. | |
@@ -864,7 +864,7 @@ config PATA_OLDPIIX | |
config PATA_OPTIDMA | |
tristate "OPTI FireStar PATA support (Very Experimental)" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables DMA/PIO support for the later OPTi | |
controllers found on some old motherboards and in some | |
@@ -874,7 +874,7 @@ config PATA_OPTIDMA | |
config PATA_PDC2027X | |
tristate "Promise PATA 2027x support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for Promise PATA pdc20268 to pdc20277 host adapters. | |
@@ -882,7 +882,7 @@ config PATA_PDC2027X | |
config PATA_PDC_OLD | |
tristate "Older Promise PATA controller support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for the Promise 20246, 20262, 20263, | |
20265 and 20267 adapters. | |
@@ -910,7 +910,7 @@ config PATA_RDC | |
config PATA_SC1200 | |
tristate "SC1200 PATA support" | |
- depends on PCI && (X86_32 || COMPILE_TEST) | |
+ depends on LEGACY_PCI && (X86_32 || COMPILE_TEST) | |
help | |
This option enables support for the NatSemi/AMD SC1200 SoC | |
companion chip used with the Geode processor family. | |
@@ -928,7 +928,7 @@ config PATA_SCH | |
config PATA_SERVERWORKS | |
tristate "SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables support for the Serverworks OSB4/CSB5/CSB6 and | |
HT1000 PATA controllers, via the new ATA layer. | |
@@ -1005,7 +1005,7 @@ comment "PIO-only SFF controllers" | |
config PATA_CMD640_PCI | |
tristate "CMD640 PCI PATA support (Experimental)" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select PATA_TIMINGS | |
help | |
This option enables support for the CMD640 PCI IDE | |
@@ -1086,7 +1086,7 @@ config PATA_NS87410 | |
config PATA_OPTI | |
tristate "OPTI621/6215 PATA support (Very Experimental)" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This option enables full PIO support for the early Opti ATA | |
controllers found on some old motherboards. | |
@@ -1197,7 +1197,7 @@ config ATA_GENERIC | |
config PATA_LEGACY | |
tristate "Legacy ISA PATA support (Experimental)" | |
- depends on (ISA || PCI) | |
+ depends on (ISA || LEGACY_PCI) | |
select PATA_TIMINGS | |
help | |
This option enables support for ISA/VLB/PCI bus legacy PATA | |
diff --git a/drivers/ata/ata_generic.c b/drivers/ata/ata_generic.c | |
index 20a32e4d501d..791942217e2c 100644 | |
--- a/drivers/ata/ata_generic.c | |
+++ b/drivers/ata/ata_generic.c | |
@@ -197,7 +197,8 @@ static int ata_generic_init_one(struct pci_dev *dev, const struct pci_device_id | |
if (!(command & PCI_COMMAND_IO)) | |
return -ENODEV; | |
- if (dev->vendor == PCI_VENDOR_ID_AL) | |
+ if (IS_ENABLED(CONFIG_LEGACY_PCI) && | |
+ dev->vendor == PCI_VENDOR_ID_AL) | |
ata_pci_bmdma_clear_simplex(dev); | |
if (dev->vendor == PCI_VENDOR_ID_ATI) { | |
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c | |
index b71ea4a680b0..636848ab6839 100644 | |
--- a/drivers/ata/libata-sff.c | |
+++ b/drivers/ata/libata-sff.c | |
@@ -3107,6 +3107,7 @@ EXPORT_SYMBOL_GPL(ata_bmdma_port_start32); | |
#ifdef CONFIG_PCI | |
+#ifdef CONFIG_LEGACY_PCI | |
/** | |
* ata_pci_bmdma_clear_simplex - attempt to kick device out of simplex | |
* @pdev: PCI device | |
@@ -3132,6 +3133,7 @@ int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev) | |
return 0; | |
} | |
EXPORT_SYMBOL_GPL(ata_pci_bmdma_clear_simplex); | |
+#endif | |
static void ata_bmdma_nodma(struct ata_host *host, const char *reason) | |
{ | |
diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig | |
index 3c68e174a113..a61285100224 100644 | |
--- a/drivers/bus/Kconfig | |
+++ b/drivers/bus/Kconfig | |
@@ -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 | |
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig | |
index 740811893c57..3d046e364e53 100644 | |
--- a/drivers/char/Kconfig | |
+++ b/drivers/char/Kconfig | |
@@ -33,6 +33,7 @@ config TTY_PRINTK_LEVEL | |
config PRINTER | |
tristate "Parallel printer support" | |
depends on PARPORT | |
+ depends on HAS_IOPORT | |
help | |
If you intend to attach a printer to the parallel port of your Linux | |
box (as opposed to using a serial printer; if the connector at the | |
@@ -346,7 +347,7 @@ config NVRAM | |
config DEVPORT | |
bool "/dev/port character device" | |
- depends on ISA || PCI | |
+ depends on HAS_IOPORT | |
default y | |
help | |
Say Y here if you want to support the /dev/port device. The /dev/port | |
diff --git a/drivers/char/ipmi/Makefile b/drivers/char/ipmi/Makefile | |
index 7ce790efad92..439bed4feb3a 100644 | |
--- a/drivers/char/ipmi/Makefile | |
+++ b/drivers/char/ipmi/Makefile | |
@@ -5,13 +5,10 @@ | |
ipmi_si-y := ipmi_si_intf.o ipmi_kcs_sm.o ipmi_smic_sm.o ipmi_bt_sm.o \ | |
ipmi_si_hotmod.o ipmi_si_hardcode.o ipmi_si_platform.o \ | |
- ipmi_si_port_io.o ipmi_si_mem_io.o | |
-ifdef CONFIG_PCI | |
-ipmi_si-y += ipmi_si_pci.o | |
-endif | |
-ifdef CONFIG_PARISC | |
-ipmi_si-y += ipmi_si_parisc.o | |
-endif | |
+ ipmi_si_mem_io.o | |
+ipmi_si-$(CONFIG_HAS_IOPORT) += ipmi_si_port_io.o | |
+ipmi_si-$(CONFIG_PCI) += ipmi_si_pci.o | |
+ipmi_si-$(CONFIG_PARISC) += ipmi_si_parisc.o | |
obj-$(CONFIG_IPMI_HANDLER) += ipmi_msghandler.o | |
obj-$(CONFIG_IPMI_DEVICE_INTERFACE) += ipmi_devintf.o | |
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c | |
index 64dedb3ef8ec..e8094b4007de 100644 | |
--- a/drivers/char/ipmi/ipmi_si_intf.c | |
+++ b/drivers/char/ipmi/ipmi_si_intf.c | |
@@ -1881,7 +1881,8 @@ int ipmi_si_add_smi(struct si_sm_io *io) | |
} | |
if (!io->io_setup) { | |
- if (io->addr_space == IPMI_IO_ADDR_SPACE) { | |
+ if (IS_ENABLED(CONFIG_HAS_IOPORT) && | |
+ io->addr_space == IPMI_IO_ADDR_SPACE) { | |
io->io_setup = ipmi_si_port_setup; | |
} else if (io->addr_space == IPMI_MEM_ADDR_SPACE) { | |
io->io_setup = ipmi_si_mem_setup; | |
diff --git a/drivers/char/ipmi/ipmi_si_pci.c b/drivers/char/ipmi/ipmi_si_pci.c | |
index 74fa2055868b..b83d55685b22 100644 | |
--- a/drivers/char/ipmi/ipmi_si_pci.c | |
+++ b/drivers/char/ipmi/ipmi_si_pci.c | |
@@ -97,6 +97,9 @@ static int ipmi_pci_probe(struct pci_dev *pdev, | |
} | |
if (pci_resource_flags(pdev, 0) & IORESOURCE_IO) { | |
+ if (!IS_ENABLED(CONFIG_HAS_IOPORT)) | |
+ return -ENXIO; | |
+ | |
io.addr_space = IPMI_IO_ADDR_SPACE; | |
io.io_setup = ipmi_si_port_setup; | |
} else { | |
diff --git a/drivers/char/mem.c b/drivers/char/mem.c | |
index cc296f0823bd..c1373617153f 100644 | |
--- a/drivers/char/mem.c | |
+++ b/drivers/char/mem.c | |
@@ -402,6 +402,7 @@ static int mmap_mem(struct file *file, struct vm_area_struct *vma) | |
return 0; | |
} | |
+#ifdef CONFIG_DEVPORT | |
static ssize_t read_port(struct file *file, char __user *buf, | |
size_t count, loff_t *ppos) | |
{ | |
@@ -443,6 +444,7 @@ static ssize_t write_port(struct file *file, const char __user *buf, | |
*ppos = i; | |
return tmp-buf; | |
} | |
+#endif | |
static ssize_t read_null(struct file *file, char __user *buf, | |
size_t count, loff_t *ppos) | |
@@ -665,12 +667,14 @@ static const struct file_operations null_fops = { | |
.splice_write = splice_write_null, | |
}; | |
-static const struct file_operations __maybe_unused port_fops = { | |
+#ifdef CONFIG_DEVPORT | |
+static const struct file_operations port_fops = { | |
.llseek = memory_lseek, | |
.read = read_port, | |
.write = write_port, | |
.open = open_port, | |
}; | |
+#endif | |
static const struct file_operations zero_fops = { | |
.llseek = zero_lseek, | |
diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig | |
index 4a5516406c22..4bc52ed08015 100644 | |
--- a/drivers/char/tpm/Kconfig | |
+++ b/drivers/char/tpm/Kconfig | |
@@ -137,6 +137,7 @@ config TCG_NSC | |
config TCG_ATMEL | |
tristate "Atmel TPM Interface" | |
depends on PPC64 || HAS_IOPORT_MAP | |
+ depends on HAS_IOPORT | |
help | |
If you have a TPM security chip from Atmel say Yes and it | |
will be accessible from within Linux. To compile this driver | |
diff --git a/drivers/char/tpm/tpm_infineon.c b/drivers/char/tpm/tpm_infineon.c | |
index 9c924a1440a9..2d2ae37153ba 100644 | |
--- a/drivers/char/tpm/tpm_infineon.c | |
+++ b/drivers/char/tpm/tpm_infineon.c | |
@@ -51,34 +51,40 @@ static struct tpm_inf_dev tpm_dev; | |
static inline void tpm_data_out(unsigned char data, unsigned char offset) | |
{ | |
+#ifdef CONFIG_HAS_IOPORT | |
if (tpm_dev.iotype == TPM_INF_IO_PORT) | |
outb(data, tpm_dev.data_regs + offset); | |
else | |
+#endif | |
writeb(data, tpm_dev.mem_base + tpm_dev.data_regs + offset); | |
} | |
static inline unsigned char tpm_data_in(unsigned char offset) | |
{ | |
+#ifdef CONFIG_HAS_IOPORT | |
if (tpm_dev.iotype == TPM_INF_IO_PORT) | |
return inb(tpm_dev.data_regs + offset); | |
- else | |
- return readb(tpm_dev.mem_base + tpm_dev.data_regs + offset); | |
+#endif | |
+ return readb(tpm_dev.mem_base + tpm_dev.data_regs + offset); | |
} | |
static inline void tpm_config_out(unsigned char data, unsigned char offset) | |
{ | |
+#ifdef CONFIG_HAS_IOPORT | |
if (tpm_dev.iotype == TPM_INF_IO_PORT) | |
outb(data, tpm_dev.config_port + offset); | |
else | |
+#endif | |
writeb(data, tpm_dev.mem_base + tpm_dev.index_off + offset); | |
} | |
static inline unsigned char tpm_config_in(unsigned char offset) | |
{ | |
+#ifdef CONFIG_HAS_IOPORT | |
if (tpm_dev.iotype == TPM_INF_IO_PORT) | |
return inb(tpm_dev.config_port + offset); | |
- else | |
- return readb(tpm_dev.mem_base + tpm_dev.index_off + offset); | |
+#endif | |
+ return readb(tpm_dev.mem_base + tpm_dev.index_off + offset); | |
} | |
/* TPM header definitions */ | |
diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c | |
index b2659a4c4016..eb298e82861e 100644 | |
--- a/drivers/char/tpm/tpm_tis_core.c | |
+++ b/drivers/char/tpm/tpm_tis_core.c | |
@@ -879,11 +879,6 @@ static void tpm_tis_clkrun_enable(struct tpm_chip *chip, bool value) | |
clkrun_val &= ~LPC_CLKRUN_EN; | |
iowrite32(clkrun_val, data->ilb_base_addr + LPC_CNTRL_OFFSET); | |
- /* | |
- * Write any random value on port 0x80 which is on LPC, to make | |
- * sure LPC clock is running before sending any TPM command. | |
- */ | |
- outb(0xCC, 0x80); | |
} else { | |
data->clkrun_enabled--; | |
if (data->clkrun_enabled) | |
@@ -894,13 +889,15 @@ static void tpm_tis_clkrun_enable(struct tpm_chip *chip, bool value) | |
/* Enable LPC CLKRUN# */ | |
clkrun_val |= LPC_CLKRUN_EN; | |
iowrite32(clkrun_val, data->ilb_base_addr + LPC_CNTRL_OFFSET); | |
- | |
- /* | |
- * Write any random value on port 0x80 which is on LPC, to make | |
- * sure LPC clock is running before sending any TPM command. | |
- */ | |
- outb(0xCC, 0x80); | |
} | |
+ | |
+#ifdef CONFIG_HAS_IOPORT | |
+ /* | |
+ * Write any random value on port 0x80 which is on LPC, to make | |
+ * sure LPC clock is running before sending any TPM command. | |
+ */ | |
+ outb(0xCC, 0x80); | |
+#endif | |
} | |
static const struct tpm_class_ops tpm_tis = { | |
diff --git a/drivers/comedi/Kconfig b/drivers/comedi/Kconfig | |
index 3cb61fa2c5c3..f5b8869df781 100644 | |
--- a/drivers/comedi/Kconfig | |
+++ b/drivers/comedi/Kconfig | |
@@ -67,6 +67,7 @@ config COMEDI_TEST | |
config COMEDI_PARPORT | |
tristate "Parallel port support" | |
+ depends on HAS_IOPORT | |
help | |
Enable support for the standard parallel port. | |
A cheap and easy way to get a few more digital I/O lines. Steal | |
@@ -79,6 +80,7 @@ config COMEDI_PARPORT | |
config COMEDI_SSV_DNP | |
tristate "SSV Embedded Systems DIL/Net-PC support" | |
depends on X86_32 || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
Enable support for SSV Embedded Systems DIL/Net-PC | |
@@ -89,6 +91,7 @@ endif # COMEDI_MISC_DRIVERS | |
menuconfig COMEDI_ISA_DRIVERS | |
bool "Comedi ISA and PC/104 drivers" | |
+ depends on ISA | |
help | |
Enable comedi ISA and PC/104 drivers to be built | |
@@ -572,6 +575,7 @@ if COMEDI_PCI_DRIVERS | |
config COMEDI_8255_PCI | |
tristate "Generic PCI based 8255 digital i/o board support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for PCI based 8255 digital i/o boards. This driver | |
@@ -589,6 +593,7 @@ config COMEDI_8255_PCI | |
config COMEDI_ADDI_WATCHDOG | |
tristate | |
+ depends on LEGACY_PCI | |
help | |
Provides support for the watchdog subdevice found on many ADDI-DATA | |
boards. This module will be automatically selected when needed. The | |
@@ -596,6 +601,7 @@ config COMEDI_ADDI_WATCHDOG | |
config COMEDI_ADDI_APCI_1032 | |
tristate "ADDI-DATA APCI_1032 support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADDI-DATA APCI_1032 cards | |
@@ -604,6 +610,7 @@ config COMEDI_ADDI_APCI_1032 | |
config COMEDI_ADDI_APCI_1500 | |
tristate "ADDI-DATA APCI_1500 support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADDI-DATA APCI_1500 cards | |
@@ -612,6 +619,7 @@ config COMEDI_ADDI_APCI_1500 | |
config COMEDI_ADDI_APCI_1516 | |
tristate "ADDI-DATA APCI-1016/1516/2016 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_ADDI_WATCHDOG | |
help | |
Enable support for ADDI-DATA APCI-1016, APCI-1516 and APCI-2016 boards. | |
@@ -623,6 +631,7 @@ config COMEDI_ADDI_APCI_1516 | |
config COMEDI_ADDI_APCI_1564 | |
tristate "ADDI-DATA APCI_1564 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_ADDI_WATCHDOG | |
help | |
Enable support for ADDI-DATA APCI_1564 cards | |
@@ -632,6 +641,7 @@ config COMEDI_ADDI_APCI_1564 | |
config COMEDI_ADDI_APCI_16XX | |
tristate "ADDI-DATA APCI_16xx support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADDI-DATA APCI_16xx cards | |
@@ -640,6 +650,7 @@ config COMEDI_ADDI_APCI_16XX | |
config COMEDI_ADDI_APCI_2032 | |
tristate "ADDI-DATA APCI_2032 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_ADDI_WATCHDOG | |
help | |
Enable support for ADDI-DATA APCI_2032 cards | |
@@ -649,6 +660,7 @@ config COMEDI_ADDI_APCI_2032 | |
config COMEDI_ADDI_APCI_2200 | |
tristate "ADDI-DATA APCI_2200 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_ADDI_WATCHDOG | |
help | |
Enable support for ADDI-DATA APCI_2200 cards | |
@@ -658,6 +670,7 @@ config COMEDI_ADDI_APCI_2200 | |
config COMEDI_ADDI_APCI_3120 | |
tristate "ADDI-DATA APCI_3120/3001 support" | |
+ depends on LEGACY_PCI | |
depends on HAS_DMA | |
help | |
Enable support for ADDI-DATA APCI_3120/3001 cards | |
@@ -667,6 +680,7 @@ config COMEDI_ADDI_APCI_3120 | |
config COMEDI_ADDI_APCI_3501 | |
tristate "ADDI-DATA APCI_3501 support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADDI-DATA APCI_3501 cards | |
@@ -675,6 +689,7 @@ config COMEDI_ADDI_APCI_3501 | |
config COMEDI_ADDI_APCI_3XXX | |
tristate "ADDI-DATA APCI_3xxx support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADDI-DATA APCI_3xxx cards | |
@@ -683,6 +698,7 @@ config COMEDI_ADDI_APCI_3XXX | |
config COMEDI_ADL_PCI6208 | |
tristate "ADLink PCI-6208A support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADLink PCI-6208A cards | |
@@ -691,6 +707,7 @@ config COMEDI_ADL_PCI6208 | |
config COMEDI_ADL_PCI7X3X | |
tristate "ADLink PCI-723X/743X isolated digital i/o board support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADlink PCI-723X/743X isolated digital i/o boards. | |
Supported boards include the 32-channel PCI-7230 (16 in/16 out), | |
@@ -702,6 +719,7 @@ config COMEDI_ADL_PCI7X3X | |
config COMEDI_ADL_PCI8164 | |
tristate "ADLink PCI-8164 4 Axes Motion Control board support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for ADlink PCI-8164 4 Axes Motion Control board | |
@@ -710,6 +728,7 @@ config COMEDI_ADL_PCI8164 | |
config COMEDI_ADL_PCI9111 | |
tristate "ADLink PCI-9111HR support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
help | |
Enable support for ADlink PCI9111 cards | |
@@ -719,6 +738,7 @@ config COMEDI_ADL_PCI9111 | |
config COMEDI_ADL_PCI9118 | |
tristate "ADLink PCI-9118DG, PCI-9118HG, PCI-9118HR support" | |
+ depends on LEGACY_PCI | |
depends on HAS_DMA | |
select COMEDI_8254 | |
help | |
@@ -729,6 +749,7 @@ config COMEDI_ADL_PCI9118 | |
config COMEDI_ADV_PCI1710 | |
tristate "Advantech PCI-171x and PCI-1731 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
help | |
Enable support for Advantech PCI-1710, PCI-1710HG, PCI-1711, | |
@@ -739,6 +760,7 @@ config COMEDI_ADV_PCI1710 | |
config COMEDI_ADV_PCI1720 | |
tristate "Advantech PCI-1720 support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Advantech PCI-1720 Analog Output board. | |
@@ -747,6 +769,7 @@ config COMEDI_ADV_PCI1720 | |
config COMEDI_ADV_PCI1723 | |
tristate "Advantech PCI-1723 support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Advantech PCI-1723 cards | |
@@ -755,6 +778,7 @@ config COMEDI_ADV_PCI1723 | |
config COMEDI_ADV_PCI1724 | |
tristate "Advantech PCI-1724U support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Advantech PCI-1724U cards. These are 32-channel | |
analog output cards with voltage and current loop output ranges and | |
@@ -765,6 +789,7 @@ config COMEDI_ADV_PCI1724 | |
config COMEDI_ADV_PCI1760 | |
tristate "Advantech PCI-1760 support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Advantech PCI-1760 board. | |
@@ -773,6 +798,7 @@ config COMEDI_ADV_PCI1760 | |
config COMEDI_ADV_PCI_DIO | |
tristate "Advantech PCI DIO card support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
select COMEDI_8255 | |
help | |
@@ -786,6 +812,7 @@ config COMEDI_ADV_PCI_DIO | |
config COMEDI_AMPLC_DIO200_PCI | |
tristate "Amplicon PCI215/PCI272/PCIe215/PCIe236/PCIe296 DIO support" | |
+ depends on LEGACY_PCI | |
select COMEDI_AMPLC_DIO200 | |
help | |
Enable support for Amplicon PCI215, PCI272, PCIe215, PCIe236 | |
@@ -796,6 +823,7 @@ config COMEDI_AMPLC_DIO200_PCI | |
config COMEDI_AMPLC_PC236_PCI | |
tristate "Amplicon PCI236 DIO board support" | |
+ depends on LEGACY_PCI | |
select COMEDI_AMPLC_PC236 | |
help | |
Enable support for Amplicon PCI236 DIO board. | |
@@ -805,6 +833,7 @@ config COMEDI_AMPLC_PC236_PCI | |
config COMEDI_AMPLC_PC263_PCI | |
tristate "Amplicon PCI263 relay board support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Amplicon PCI263 relay board. This is a PCI board | |
with 16 reed relay output channels. | |
@@ -814,6 +843,7 @@ config COMEDI_AMPLC_PC263_PCI | |
config COMEDI_AMPLC_PCI224 | |
tristate "Amplicon PCI224 and PCI234 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
help | |
Enable support for Amplicon PCI224 and PCI234 AO boards | |
@@ -823,6 +853,7 @@ config COMEDI_AMPLC_PCI224 | |
config COMEDI_AMPLC_PCI230 | |
tristate "Amplicon PCI230 and PCI260 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
select COMEDI_8255 | |
help | |
@@ -834,6 +865,7 @@ config COMEDI_AMPLC_PCI230 | |
config COMEDI_CONTEC_PCI_DIO | |
tristate "Contec PIO1616L digital I/O board support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for the Contec PIO1616L digital I/O board | |
@@ -842,6 +874,7 @@ config COMEDI_CONTEC_PCI_DIO | |
config COMEDI_DAS08_PCI | |
tristate "DAS-08 PCI support" | |
+ depends on LEGACY_PCI | |
select COMEDI_DAS08 | |
help | |
Enable support for PCI DAS-08 cards. | |
@@ -861,6 +894,7 @@ config COMEDI_DT3000 | |
config COMEDI_DYNA_PCI10XX | |
tristate "Dynalog PCI DAQ series support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Dynalog PCI DAQ series | |
PCI-1050 | |
@@ -894,6 +928,7 @@ config COMEDI_ICP_MULTI | |
config COMEDI_DAQBOARD2000 | |
tristate "IOtech DAQboard/2000 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for the IOtech DAQboard/2000 | |
@@ -911,6 +946,7 @@ config COMEDI_JR3_PCI | |
config COMEDI_KE_COUNTER | |
tristate "Kolter-Electronic PCI Counter 1 card support" | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Kolter-Electronic PCI Counter 1 cards | |
@@ -919,6 +955,7 @@ config COMEDI_KE_COUNTER | |
config COMEDI_CB_PCIDAS64 | |
tristate "MeasurementComputing PCI-DAS 64xx, 60xx, and 4020 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for ComputerBoards/MeasurementComputing PCI-DAS 64xx, | |
@@ -929,6 +966,7 @@ config COMEDI_CB_PCIDAS64 | |
config COMEDI_CB_PCIDAS | |
tristate "MeasurementComputing PCI-DAS support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
select COMEDI_8255 | |
help | |
@@ -942,6 +980,7 @@ config COMEDI_CB_PCIDAS | |
config COMEDI_CB_PCIDDA | |
tristate "MeasurementComputing PCI-DDA series support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for ComputerBoards/MeasurementComputing PCI-DDA | |
@@ -953,6 +992,7 @@ config COMEDI_CB_PCIDDA | |
config COMEDI_CB_PCIMDAS | |
tristate "MeasurementComputing PCIM-DAS1602/16, PCIe-DAS1602/16 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
select COMEDI_8255 | |
help | |
@@ -964,6 +1004,7 @@ config COMEDI_CB_PCIMDAS | |
config COMEDI_CB_PCIMDDA | |
tristate "MeasurementComputing PCIM-DDA06-16 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for ComputerBoards/MeasurementComputing PCIM-DDA06-16 | |
@@ -973,6 +1014,7 @@ config COMEDI_CB_PCIMDDA | |
config COMEDI_ME4000 | |
tristate "Meilhaus ME-4000 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
help | |
Enable support for Meilhaus PCI data acquisition cards | |
@@ -1031,6 +1073,7 @@ config COMEDI_NI_670X | |
config COMEDI_NI_LABPC_PCI | |
tristate "NI Lab-PC PCI-1200 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_NI_LABPC | |
help | |
Enable support for National Instruments Lab-PC PCI-1200. | |
@@ -1040,6 +1083,7 @@ config COMEDI_NI_LABPC_PCI | |
config COMEDI_NI_PCIDIO | |
tristate "NI PCI-DIO32HS, PCI-6533, PCI-6534 support" | |
+ depends on LEGACY_PCI | |
depends on HAS_DMA | |
select COMEDI_MITE | |
select COMEDI_8255 | |
@@ -1052,7 +1096,9 @@ config COMEDI_NI_PCIDIO | |
config COMEDI_NI_PCIMIO | |
tristate "NI PCI-MIO-E series and M series support" | |
+ depends on LEGACY_PCI | |
depends on HAS_DMA | |
+ depends on LEGACY_PCI | |
select COMEDI_NI_TIOCMD | |
select COMEDI_8255 | |
help | |
@@ -1074,6 +1120,7 @@ config COMEDI_NI_PCIMIO | |
config COMEDI_RTD520 | |
tristate "Real Time Devices PCI4520/DM7520 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8254 | |
help | |
Enable support for Real Time Devices PCI4520/DM7520 | |
@@ -1142,6 +1189,7 @@ config COMEDI_NI_DAQ_700_CS | |
config COMEDI_NI_DAQ_DIO24_CS | |
tristate "NI DAQ-Card DIO-24 PCMCIA support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for the National Instruments PCMCIA DAQ-Card DIO-24 | |
@@ -1160,6 +1208,7 @@ config COMEDI_NI_LABPC_CS | |
config COMEDI_NI_MIO_CS | |
tristate "NI DAQCard E series PCMCIA support" | |
+ depends on LEGACY_PCI | |
select COMEDI_NI_TIO | |
select COMEDI_8255 | |
help | |
@@ -1254,6 +1303,7 @@ config COMEDI_8255 | |
config COMEDI_8255_SA | |
tristate "Standalone 8255 support" | |
+ depends on LEGACY_PCI | |
select COMEDI_8255 | |
help | |
Enable support for 8255 digital I/O as a standalone driver. | |
@@ -1290,10 +1340,12 @@ config COMEDI_AMPLC_DIO200 | |
config COMEDI_AMPLC_PC236 | |
tristate | |
+ depends on HAS_IOPORT | |
select COMEDI_8255 | |
config COMEDI_DAS08 | |
tristate | |
+ depends on HAS_IOPORT | |
select COMEDI_8254 | |
select COMEDI_8255 | |
@@ -1302,6 +1354,7 @@ config COMEDI_ISADMA | |
config COMEDI_NI_LABPC | |
tristate | |
+ depends on HAS_IOPORT | |
select COMEDI_8254 | |
select COMEDI_8255 | |
diff --git a/drivers/firmware/dmi-sysfs.c b/drivers/firmware/dmi-sysfs.c | |
index 8b8127fa8955..cc7380b3c670 100644 | |
--- a/drivers/firmware/dmi-sysfs.c | |
+++ b/drivers/firmware/dmi-sysfs.c | |
@@ -310,6 +310,7 @@ static struct kobj_type dmi_system_event_log_ktype = { | |
.default_attrs = dmi_sysfs_sel_attrs, | |
}; | |
+#ifdef CONFIG_HAS_IOPORT | |
typedef u8 (*sel_io_reader)(const struct dmi_system_event_log *sel, | |
loff_t offset); | |
@@ -374,6 +375,7 @@ static ssize_t dmi_sel_raw_read_io(struct dmi_sysfs_entry *entry, | |
return wrote; | |
} | |
+#endif | |
static ssize_t dmi_sel_raw_read_phys32(struct dmi_sysfs_entry *entry, | |
const struct dmi_system_event_log *sel, | |
@@ -409,11 +411,13 @@ static ssize_t dmi_sel_raw_read_helper(struct dmi_sysfs_entry *entry, | |
memcpy(&sel, dh, sizeof(sel)); | |
switch (sel.access_method) { | |
+#ifdef CONFIG_HAS_IOPORT | |
case DMI_SEL_ACCESS_METHOD_IO8: | |
case DMI_SEL_ACCESS_METHOD_IO2x8: | |
case DMI_SEL_ACCESS_METHOD_IO16: | |
return dmi_sel_raw_read_io(entry, &sel, state->buf, | |
state->pos, state->count); | |
+#endif | |
case DMI_SEL_ACCESS_METHOD_PHYS32: | |
return dmi_sel_raw_read_phys32(entry, &sel, state->buf, | |
state->pos, state->count); | |
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig | |
index 60d9374c72c0..d36afa5ac6fc 100644 | |
--- a/drivers/gpio/Kconfig | |
+++ b/drivers/gpio/Kconfig | |
@@ -687,7 +687,7 @@ config GPIO_VR41XX | |
config GPIO_VX855 | |
tristate "VIA VX855/VX875 GPIO" | |
- depends on (X86 || COMPILE_TEST) && PCI | |
+ depends on (X86 || COMPILE_TEST) && LEGACY_PCI | |
select MFD_CORE | |
select MFD_VX855 | |
help | |
diff --git a/drivers/gpu/drm/qxl/Kconfig b/drivers/gpu/drm/qxl/Kconfig | |
index ca3f51c2a8fe..d0e0d440c8d9 100644 | |
--- a/drivers/gpu/drm/qxl/Kconfig | |
+++ b/drivers/gpu/drm/qxl/Kconfig | |
@@ -2,6 +2,7 @@ | |
config DRM_QXL | |
tristate "QXL virtual GPU" | |
depends on DRM && PCI && MMU | |
+ depends on HAS_IOPORT | |
select DRM_KMS_HELPER | |
select DRM_TTM | |
select DRM_TTM_HELPER | |
diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig | |
index 1ceb93fbdc50..81749943af13 100644 | |
--- a/drivers/gpu/drm/tiny/Kconfig | |
+++ b/drivers/gpu/drm/tiny/Kconfig | |
@@ -13,6 +13,7 @@ config DRM_ARCPGU | |
config DRM_BOCHS | |
tristate "DRM Support for bochs dispi vga interface (qemu stdvga)" | |
depends on DRM && PCI && MMU | |
+ depends on HAS_IOPORT | |
select DRM_KMS_HELPER | |
select DRM_VRAM_HELPER | |
select DRM_TTM | |
diff --git a/drivers/gpu/drm/tiny/cirrus.c b/drivers/gpu/drm/tiny/cirrus.c | |
index 4611ec408506..c9b6e9779d18 100644 | |
--- a/drivers/gpu/drm/tiny/cirrus.c | |
+++ b/drivers/gpu/drm/tiny/cirrus.c | |
@@ -306,8 +306,10 @@ static int cirrus_mode_set(struct cirrus_device *cirrus, | |
cirrus_set_start_address(cirrus, 0); | |
+#ifdef CONFIG_HAS_IOPORT | |
/* Unblank (needed on S3 resume, vgabios doesn't do it then) */ | |
outb(0x20, 0x3c0); | |
+#endif | |
drm_dev_exit(idx); | |
return 0; | |
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig | |
index 64bd3dfba2c4..c1a2d8ac96fd 100644 | |
--- a/drivers/hwmon/Kconfig | |
+++ b/drivers/hwmon/Kconfig | |
@@ -547,6 +547,7 @@ config SENSORS_SPARX5 | |
config SENSORS_F71805F | |
tristate "Fintek F71805F/FG, F71806F/FG and F71872F/FG" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
help | |
If you say yes here you get support for hardware monitoring | |
@@ -558,6 +559,7 @@ config SENSORS_F71805F | |
config SENSORS_F71882FG | |
tristate "Fintek F71882FG and compatibles" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
help | |
If you say yes here you get support for hardware monitoring | |
@@ -761,6 +763,7 @@ config SENSORS_CORETEMP | |
config SENSORS_IT87 | |
tristate "ITE IT87xx and compatibles" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
select HWMON_VID | |
help | |
@@ -1387,6 +1390,7 @@ config SENSORS_LM95245 | |
config SENSORS_PC87360 | |
tristate "National Semiconductor PC87360 family" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
select HWMON_VID | |
help | |
@@ -1401,6 +1405,7 @@ config SENSORS_PC87360 | |
config SENSORS_PC87427 | |
tristate "National Semiconductor PC87427" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
help | |
If you say yes here you get access to the hardware monitoring | |
@@ -1432,6 +1437,7 @@ config SENSORS_NTC_THERMISTOR | |
config SENSORS_NCT6683 | |
tristate "Nuvoton NCT6683D" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
help | |
If you say yes here you get support for the hardware monitoring | |
@@ -1442,6 +1448,7 @@ config SENSORS_NCT6683 | |
config SENSORS_NCT6775 | |
tristate "Nuvoton NCT6775F and compatibles" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
depends on ACPI_WMI || ACPI_WMI=n | |
select HWMON_VID | |
@@ -1654,7 +1661,7 @@ config SENSORS_S3C_RAW | |
config SENSORS_SIS5595 | |
tristate "Silicon Integrated Systems Corp. SiS5595" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes here you get support for the integrated sensors in | |
SiS5595 South Bridges. | |
@@ -1664,6 +1671,7 @@ config SENSORS_SIS5595 | |
config SENSORS_DME1737 | |
tristate "SMSC DME1737, SCH311x and compatibles" | |
+ depends on HAS_IOPORT | |
depends on I2C && !PPC | |
select HWMON_VID | |
help | |
@@ -1707,6 +1715,7 @@ config SENSORS_EMC6W201 | |
config SENSORS_SMSC47M1 | |
tristate "SMSC LPC47M10x and compatibles" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
help | |
If you say yes here you get support for the integrated fan | |
@@ -1741,6 +1750,7 @@ config SENSORS_SMSC47M192 | |
config SENSORS_SMSC47B397 | |
tristate "SMSC LPC47B397-NC" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
help | |
If you say yes here you get support for the SMSC LPC47B397-NC | |
@@ -1754,6 +1764,7 @@ config SENSORS_SCH56XX_COMMON | |
config SENSORS_SCH5627 | |
tristate "SMSC SCH5627" | |
+ depends on HAS_IOPORT | |
depends on !PPC && WATCHDOG | |
select SENSORS_SCH56XX_COMMON | |
select WATCHDOG_CORE | |
@@ -1767,6 +1778,7 @@ config SENSORS_SCH5627 | |
config SENSORS_SCH5636 | |
tristate "SMSC SCH5636" | |
+ depends on HAS_IOPORT | |
depends on !PPC && WATCHDOG | |
select SENSORS_SCH56XX_COMMON | |
select WATCHDOG_CORE | |
@@ -1985,7 +1997,7 @@ config SENSORS_VIA_CPUTEMP | |
config SENSORS_VIA686A | |
tristate "VIA686A" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes here you get support for the integrated sensors in | |
Via 686A/B South Bridges. | |
@@ -1995,6 +2007,7 @@ config SENSORS_VIA686A | |
config SENSORS_VT1211 | |
tristate "VIA VT1211" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
select HWMON_VID | |
help | |
@@ -2006,7 +2019,7 @@ config SENSORS_VT1211 | |
config SENSORS_VT8231 | |
tristate "VIA VT8231" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select HWMON_VID | |
help | |
If you say yes here then you get support for the integrated sensors | |
@@ -2114,6 +2127,7 @@ config SENSORS_W83L786NG | |
config SENSORS_W83627HF | |
tristate "Winbond W83627HF, W83627THF, W83637HF, W83687THF, W83697HF" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
select HWMON_VID | |
help | |
@@ -2126,6 +2140,7 @@ config SENSORS_W83627HF | |
config SENSORS_W83627EHF | |
tristate "Winbond W83627EHF/EHG/DHG/UHG, W83667HG" | |
+ depends on HAS_IOPORT | |
depends on !PPC | |
select HWMON_VID | |
help | |
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig | |
index dce392839017..55403018784a 100644 | |
--- a/drivers/i2c/busses/Kconfig | |
+++ b/drivers/i2c/busses/Kconfig | |
@@ -11,7 +11,7 @@ comment "PC SMBus host controller drivers" | |
config I2C_ALI1535 | |
tristate "ALI 1535" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the SMB | |
Host controller on Acer Labs Inc. (ALI) M1535 South Bridges. The SMB | |
@@ -23,7 +23,7 @@ config I2C_ALI1535 | |
config I2C_ALI1563 | |
tristate "ALI 1563" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the SMB | |
Host controller on Acer Labs Inc. (ALI) M1563 South Bridges. The SMB | |
@@ -35,7 +35,7 @@ config I2C_ALI1563 | |
config I2C_ALI15X3 | |
tristate "ALI 15x3" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the | |
Acer Labs Inc. (ALI) M1514 and M1543 motherboard I2C interfaces. | |
@@ -45,7 +45,7 @@ config I2C_ALI15X3 | |
config I2C_AMD756 | |
tristate "AMD 756/766/768/8111 and nVidia nForce" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the AMD | |
756/766/768 mainboard I2C interfaces. The driver also includes | |
@@ -70,7 +70,7 @@ config I2C_AMD756_S4882 | |
config I2C_AMD8111 | |
tristate "AMD 8111" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the | |
second (SMBus 2.0) AMD 8111 mainboard I2C interface. | |
@@ -154,7 +154,7 @@ config I2C_I801 | |
config I2C_ISCH | |
tristate "Intel SCH SMBus 1.0" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select LPC_SCH | |
help | |
Say Y here if you want to use SMBus controller on the Intel SCH | |
@@ -175,7 +175,7 @@ config I2C_ISMT | |
config I2C_PIIX4 | |
tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)" | |
- depends on PCI | |
+ depends on PCI && HAS_IOPORT | |
help | |
If you say yes to this option, support will be included for the Intel | |
PIIX4 family of mainboard I2C interfaces. Specifically, the following | |
@@ -221,7 +221,7 @@ config I2C_CHT_WC | |
config I2C_NFORCE2 | |
tristate "Nvidia nForce2, nForce3 and nForce4" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the Nvidia | |
nForce2, nForce3 and nForce4 families of mainboard I2C interfaces. | |
@@ -253,7 +253,7 @@ config I2C_NVIDIA_GPU | |
config I2C_SIS5595 | |
tristate "SiS 5595" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the | |
SiS5595 SMBus (a subset of I2C) interface. | |
@@ -263,7 +263,7 @@ config I2C_SIS5595 | |
config I2C_SIS630 | |
tristate "SiS 630/730/964" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the | |
SiS630, SiS730 and SiS964 SMBus (a subset of I2C) interface. | |
@@ -273,7 +273,7 @@ config I2C_SIS630 | |
config I2C_SIS96X | |
tristate "SiS 96x" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the SiS | |
96x SMBus (a subset of I2C) interfaces. Specifically, the following | |
@@ -291,7 +291,7 @@ config I2C_SIS96X | |
config I2C_VIA | |
tristate "VIA VT82C586B" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select I2C_ALGOBIT | |
help | |
If you say yes to this option, support will be included for the VIA | |
@@ -302,7 +302,7 @@ config I2C_VIA | |
config I2C_VIAPRO | |
tristate "VIA VT82C596/82C686/82xx and CX700/VX8xx/VX900" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you say yes to this option, support will be included for the VIA | |
VT82C596 and later SMBus interface. Specifically, the following | |
@@ -828,6 +828,7 @@ config I2C_NPCM7XX | |
config I2C_OCORES | |
tristate "OpenCores I2C Controller" | |
+ depends on HAS_IOPORT | |
help | |
If you say yes to this option, support will be included for the | |
OpenCores I2C controller. For details see | |
@@ -1227,6 +1228,7 @@ config I2C_CP2615 | |
config I2C_PARPORT | |
tristate "Parallel port adapter" | |
depends on PARPORT | |
+ depends on HAS_IOPORT | |
select I2C_ALGOBIT | |
select I2C_SMBUS | |
help | |
@@ -1325,6 +1327,7 @@ config I2C_ICY | |
config I2C_MLXCPLD | |
tristate "Mellanox I2C driver" | |
depends on X86_64 || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
This exposes the Mellanox platform I2C busses to the linux I2C layer | |
for X86 based systems. | |
diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig | |
index 3363af15a43f..1338ce51c0c5 100644 | |
--- a/drivers/iio/adc/Kconfig | |
+++ b/drivers/iio/adc/Kconfig | |
@@ -119,7 +119,7 @@ config AD7606 | |
config AD7606_IFACE_PARALLEL | |
tristate "Analog Devices AD7606 ADC driver with parallel interface support" | |
- depends on HAS_IOMEM | |
+ depends on HAS_IOPORT | |
select AD7606 | |
help | |
Say yes here to build parallel interface support for Analog Devices: | |
diff --git a/drivers/input/gameport/Kconfig b/drivers/input/gameport/Kconfig | |
index 5a2c2fb3217d..366a2723e9a0 100644 | |
--- a/drivers/input/gameport/Kconfig | |
+++ b/drivers/input/gameport/Kconfig | |
@@ -25,6 +25,7 @@ if GAMEPORT | |
config GAMEPORT_NS558 | |
tristate "Classic ISA and PnP gameport support" | |
+ depends on ISA | |
help | |
Say Y here if you have an ISA or PnP gameport. | |
@@ -35,6 +36,7 @@ config GAMEPORT_NS558 | |
config GAMEPORT_L4 | |
tristate "PDPI Lightning 4 gamecard support" | |
+ depends on ISA | |
help | |
Say Y here if you have a PDPI Lightning 4 gamecard. | |
@@ -43,7 +45,7 @@ config GAMEPORT_L4 | |
config GAMEPORT_EMU10K1 | |
tristate "SB Live and Audigy gameport support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
Say Y here if you have a SoundBlaster Live! or SoundBlaster | |
Audigy card and want to use its gameport. | |
@@ -53,7 +55,7 @@ config GAMEPORT_EMU10K1 | |
config GAMEPORT_FM801 | |
tristate "ForteMedia FM801 gameport support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
Say Y here if you have ForteMedia FM801 PCI audio controller | |
(Abit AU10, Genius Sound Maker, HP Workstation zx2000, | |
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig | |
index f39b7b3f7942..5d125627c595 100644 | |
--- a/drivers/input/serio/Kconfig | |
+++ b/drivers/input/serio/Kconfig | |
@@ -75,6 +75,7 @@ config SERIO_Q40KBD | |
config SERIO_PARKBD | |
tristate "Parallel port keyboard adapter" | |
depends on PARPORT | |
+ depends on HAS_IOPORT | |
help | |
Say Y here if you built a simple parallel port adapter to attach | |
an additional AT keyboard, XT keyboard or PS/2 mouse. | |
@@ -148,6 +149,7 @@ config HIL_MLC | |
config SERIO_PCIPS2 | |
tristate "PCI PS/2 keyboard and PS/2 mouse controller" | |
depends on PCI | |
+ depends on HAS_IOPORT | |
help | |
Say Y here if you have a Mobility Docking station with PS/2 | |
keyboard and mice ports. | |
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig | |
index 2f6adfb7b938..a77663b79aec 100644 | |
--- a/drivers/input/touchscreen/Kconfig | |
+++ b/drivers/input/touchscreen/Kconfig | |
@@ -664,6 +664,7 @@ config TOUCHSCREEN_INEXIO | |
config TOUCHSCREEN_MK712 | |
tristate "ICS MicroClock MK712 touchscreen" | |
+ depends on ISA | |
help | |
Say Y here if you have the ICS MicroClock MK712 touchscreen | |
controller chip in your system. | |
diff --git a/drivers/isdn/hardware/mISDN/Kconfig b/drivers/isdn/hardware/mISDN/Kconfig | |
index 078eeadf707a..2c5e16483179 100644 | |
--- a/drivers/isdn/hardware/mISDN/Kconfig | |
+++ b/drivers/isdn/hardware/mISDN/Kconfig | |
@@ -7,14 +7,14 @@ comment "mISDN hardware drivers" | |
config MISDN_HFCPCI | |
tristate "Support for HFC PCI cards" | |
depends on MISDN | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
Enable support for cards with Cologne Chip AG's | |
HFC PCI chip. | |
config MISDN_HFCMULTI | |
tristate "Support for HFC multiport cards (HFC-4S/8S/E1)" | |
- depends on PCI || CPM1 | |
+ depends on LEGACY_PCI || CPM1 | |
depends on MISDN | |
help | |
Enable support for cards with Cologne Chip AG's HFC multiport | |
@@ -43,7 +43,7 @@ config MISDN_HFCUSB | |
config MISDN_AVMFRITZ | |
tristate "Support for AVM FRITZ!CARD PCI" | |
depends on MISDN | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select MISDN_IPAC | |
help | |
Enable support for AVMs FRITZ!CARD PCI cards | |
@@ -51,7 +51,7 @@ config MISDN_AVMFRITZ | |
config MISDN_SPEEDFAX | |
tristate "Support for Sedlbauer Speedfax+" | |
depends on MISDN | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select MISDN_IPAC | |
select MISDN_ISAR | |
help | |
@@ -60,7 +60,7 @@ config MISDN_SPEEDFAX | |
config MISDN_INFINEON | |
tristate "Support for cards with Infineon chipset" | |
depends on MISDN | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select MISDN_IPAC | |
help | |
Enable support for cards with ISAC + HSCX, IPAC or IPAC-SX | |
@@ -69,14 +69,14 @@ config MISDN_INFINEON | |
config MISDN_W6692 | |
tristate "Support for cards with Winbond 6692" | |
depends on MISDN | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
Enable support for Winbond 6692 PCI chip based cards. | |
config MISDN_NETJET | |
tristate "Support for NETJet cards" | |
depends on MISDN | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
depends on TTY | |
select MISDN_IPAC | |
select MISDN_HDLC | |
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig | |
index ed800f5da7d8..7d670fc40865 100644 | |
--- a/drivers/leds/Kconfig | |
+++ b/drivers/leds/Kconfig | |
@@ -688,7 +688,7 @@ config LEDS_LM355x | |
config LEDS_OT200 | |
tristate "LED support for the Bachmann OT200" | |
- depends on LEDS_CLASS && HAS_IOMEM && (X86_32 || COMPILE_TEST) | |
+ depends on LEDS_CLASS && HAS_IOPORT && (X86_32 || COMPILE_TEST) | |
help | |
This option enables support for the LEDs on the Bachmann OT200. | |
Say Y to enable LEDs on the Bachmann OT200. | |
diff --git a/drivers/media/cec/platform/Kconfig b/drivers/media/cec/platform/Kconfig | |
index b672d3142eb7..5e92ece5b104 100644 | |
--- a/drivers/media/cec/platform/Kconfig | |
+++ b/drivers/media/cec/platform/Kconfig | |
@@ -100,7 +100,7 @@ config CEC_TEGRA | |
config CEC_SECO | |
tristate "SECO Boards HDMI CEC driver" | |
depends on (X86 || IA64) || COMPILE_TEST | |
- depends on PCI && DMI | |
+ depends on LEGACY_PCI && DMI | |
select CEC_CORE | |
select CEC_NOTIFIER | |
help | |
diff --git a/drivers/media/pci/dm1105/Kconfig b/drivers/media/pci/dm1105/Kconfig | |
index e0e3af67c99c..9ecab93685d4 100644 | |
--- a/drivers/media/pci/dm1105/Kconfig | |
+++ b/drivers/media/pci/dm1105/Kconfig | |
@@ -1,7 +1,7 @@ | |
# SPDX-License-Identifier: GPL-2.0-only | |
config DVB_DM1105 | |
tristate "SDMC DM1105 based PCI cards" | |
- depends on DVB_CORE && PCI && I2C && I2C_ALGOBIT | |
+ depends on DVB_CORE && LEGACY_PCI && I2C && I2C_ALGOBIT | |
select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT | |
select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT | |
select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT | |
diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig | |
index d29e29645e04..044590b58212 100644 | |
--- a/drivers/media/radio/Kconfig | |
+++ b/drivers/media/radio/Kconfig | |
@@ -67,7 +67,7 @@ config USB_DSBR | |
config RADIO_MAXIRADIO | |
tristate "Guillemot MAXI Radio FM 2000 radio" | |
- depends on VIDEO_V4L2 && PCI | |
+ depends on VIDEO_V4L2 && LEGACY_PCI | |
select RADIO_TEA575X | |
help | |
Choose Y here if you have this radio card. This card may also be | |
@@ -233,6 +233,7 @@ source "drivers/media/radio/wl128x/Kconfig" | |
menuconfig V4L_RADIO_ISA_DRIVERS | |
bool "ISA radio devices" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
Say Y here to enable support for these ISA drivers. | |
@@ -240,11 +241,13 @@ if V4L_RADIO_ISA_DRIVERS | |
config RADIO_ISA | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
tristate | |
config RADIO_CADET | |
tristate "ADS Cadet AM/FM Tuner" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
help | |
Choose Y here if you have one of these AM/FM radio cards, and then | |
@@ -256,6 +259,7 @@ config RADIO_CADET | |
config RADIO_RTRACK | |
tristate "AIMSlab RadioTrack (aka RadioReveal) support" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -288,6 +292,7 @@ config RADIO_RTRACK_PORT | |
config RADIO_RTRACK2 | |
tristate "AIMSlab RadioTrack II support" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -312,6 +317,7 @@ config RADIO_RTRACK2_PORT | |
config RADIO_AZTECH | |
tristate "Aztech/Packard Bell Radio" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -333,6 +339,7 @@ config RADIO_AZTECH_PORT | |
config RADIO_GEMTEK | |
tristate "GemTek Radio card (or compatible) support" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -389,6 +396,7 @@ config RADIO_MIROPCM20 | |
config RADIO_SF16FMI | |
tristate "SF16-FMI/SF16-FMP/SF16-FMD Radio" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
help | |
Choose Y here if you have one of these FM radio cards. | |
@@ -399,6 +407,7 @@ config RADIO_SF16FMI | |
config RADIO_SF16FMR2 | |
tristate "SF16-FMR2/SF16-FMD2 Radio" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_TEA575X | |
help | |
@@ -410,6 +419,7 @@ config RADIO_SF16FMR2 | |
config RADIO_TERRATEC | |
tristate "TerraTec ActiveRadio ISA Standalone" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -425,6 +435,7 @@ config RADIO_TERRATEC | |
config RADIO_TRUST | |
tristate "Trust FM radio card" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -449,6 +460,7 @@ config RADIO_TRUST_PORT | |
config RADIO_TYPHOON | |
tristate "Typhoon Radio (a.k.a. EcoRadio)" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
@@ -484,6 +496,7 @@ config RADIO_TYPHOON_MUTEFREQ | |
config RADIO_ZOLTRIX | |
tristate "Zoltrix Radio" | |
depends on ISA || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on VIDEO_V4L2 | |
select RADIO_ISA | |
help | |
diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig | |
index 9506baf3c4c1..d0947296f935 100644 | |
--- a/drivers/media/rc/Kconfig | |
+++ b/drivers/media/rc/Kconfig | |
@@ -163,6 +163,7 @@ config RC_ATI_REMOTE | |
config IR_ENE | |
tristate "ENE eHome Receiver/Transceiver (pnp id: ENE0100/ENE02xxx)" | |
depends on PNP || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
Say Y here to enable support for integrated infrared receiver | |
/transceiver made by ENE. | |
@@ -216,6 +217,7 @@ config IR_MCEUSB | |
config IR_ITE_CIR | |
tristate "ITE Tech Inc. IT8712/IT8512 Consumer Infrared Transceiver" | |
depends on PNP || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
Say Y here to enable support for integrated infrared receivers | |
/transceivers made by ITE Tech Inc. These are found in | |
@@ -228,6 +230,7 @@ config IR_ITE_CIR | |
config IR_FINTEK | |
tristate "Fintek Consumer Infrared Transceiver" | |
depends on PNP || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
Say Y here to enable support for integrated infrared receiver | |
/transceiver made by Fintek. This chip is found on assorted | |
@@ -269,6 +272,7 @@ config IR_MTK | |
config IR_NUVOTON | |
tristate "Nuvoton w836x7hg Consumer Infrared Transceiver" | |
depends on PNP || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
help | |
Say Y here to enable support for integrated infrared receiver | |
/transceiver made by Nuvoton (formerly Winbond). This chip is | |
@@ -312,6 +316,7 @@ config IR_STREAMZAP | |
config IR_WINBOND_CIR | |
tristate "Winbond IR remote control" | |
depends on (X86 && PNP) || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
select NEW_LEDS | |
select LEDS_CLASS | |
select BITREVERSE | |
@@ -440,6 +445,7 @@ config IR_SUNXI | |
config IR_SERIAL | |
tristate "Homebrew Serial Port Receiver" | |
+ depends on HAS_IOPORT | |
help | |
Say Y if you want to use Homebrew Serial Port Receivers and | |
Transceivers. | |
diff --git a/drivers/message/fusion/Kconfig b/drivers/message/fusion/Kconfig | |
index a3d0288fd0e2..cec5995e1911 100644 | |
--- a/drivers/message/fusion/Kconfig | |
+++ b/drivers/message/fusion/Kconfig | |
@@ -2,7 +2,7 @@ | |
menuconfig FUSION | |
bool "Fusion MPT device support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
Say Y here to get to see options for Fusion Message | |
Passing Technology (MPT) drivers. | |
@@ -14,7 +14,7 @@ if FUSION | |
config FUSION_SPI | |
tristate "Fusion MPT ScsiHost drivers for SPI" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
select SCSI_SPI_ATTRS | |
help | |
SCSI HOST support for a parallel SCSI host adapters. | |
@@ -29,7 +29,7 @@ config FUSION_SPI | |
config FUSION_FC | |
tristate "Fusion MPT ScsiHost drivers for FC" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
depends on SCSI_FC_ATTRS | |
help | |
SCSI HOST support for a Fiber Channel host adapters. | |
@@ -48,7 +48,7 @@ config FUSION_FC | |
config FUSION_SAS | |
tristate "Fusion MPT ScsiHost drivers for SAS" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
select SCSI_SAS_ATTRS | |
help | |
SCSI HOST support for a SAS host adapters. | |
diff --git a/drivers/misc/altera-stapl/Makefile b/drivers/misc/altera-stapl/Makefile | |
index dd0f8189666b..90f18e7bf9b0 100644 | |
--- a/drivers/misc/altera-stapl/Makefile | |
+++ b/drivers/misc/altera-stapl/Makefile | |
@@ -1,4 +1,5 @@ | |
# SPDX-License-Identifier: GPL-2.0-only | |
-altera-stapl-objs = altera-lpt.o altera-jtag.o altera-comp.o altera.o | |
+altera-stapl-y = altera-jtag.o altera-comp.o altera.o | |
+altera-stapl-$(CONFIG_HAS_IOPORT) += altera-lpt.o | |
obj-$(CONFIG_ALTERA_STAPL) += altera-stapl.o | |
diff --git a/drivers/misc/altera-stapl/altera.c b/drivers/misc/altera-stapl/altera.c | |
index 92c0611034b0..c7ae64de8bb4 100644 | |
--- a/drivers/misc/altera-stapl/altera.c | |
+++ b/drivers/misc/altera-stapl/altera.c | |
@@ -2431,6 +2431,10 @@ int altera_init(struct altera_config *config, const struct firmware *fw) | |
astate->config = config; | |
if (!astate->config->jtag_io) { | |
+ if (!IS_ENABLED(CONFIG_HAS_IOPORT)) { | |
+ retval = -ENODEV; | |
+ goto free_state; | |
+ } | |
dprintk("%s: using byteblaster!\n", __func__); | |
astate->config->jtag_io = netup_jtag_io_lpt; | |
} | |
@@ -2505,7 +2509,7 @@ int altera_init(struct altera_config *config, const struct firmware *fw) | |
} else if (exec_result) | |
printk(KERN_ERR "%s: error %d\n", __func__, exec_result); | |
- | |
+free_state: | |
kfree(astate); | |
free_value: | |
kfree(value); | |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig | |
index 6cccc3dc00bc..362d20c9a571 100644 | |
--- a/drivers/net/Kconfig | |
+++ b/drivers/net/Kconfig | |
@@ -476,7 +476,7 @@ source "drivers/net/ipa/Kconfig" | |
config NET_SB1000 | |
tristate "General Instruments Surfboard 1000" | |
- depends on PNP | |
+ depends on ISAPNP | |
help | |
This is a driver for the General Instrument (also known as | |
NextLevel) SURFboard 1000 internal | |
diff --git a/drivers/net/arcnet/Kconfig b/drivers/net/arcnet/Kconfig | |
index a51b9dab6d3a..b8038287c4f2 100644 | |
--- a/drivers/net/arcnet/Kconfig | |
+++ b/drivers/net/arcnet/Kconfig | |
@@ -4,7 +4,7 @@ | |
# | |
menuconfig ARCNET | |
- depends on NETDEVICES && (ISA || PCI || PCMCIA) | |
+ depends on NETDEVICES && (ISA || LEGACY_PCI || PCMCIA) | |
tristate "ARCnet support" | |
help | |
If you have a network card of this type, say Y and check out the | |
diff --git a/drivers/net/can/cc770/Kconfig b/drivers/net/can/cc770/Kconfig | |
index 9ef1359319f0..467ef19de1c1 100644 | |
--- a/drivers/net/can/cc770/Kconfig | |
+++ b/drivers/net/can/cc770/Kconfig | |
@@ -7,6 +7,7 @@ if CAN_CC770 | |
config CAN_CC770_ISA | |
tristate "ISA Bus based legacy CC770 driver" | |
+ depends on ISA | |
help | |
This driver adds legacy support for CC770 and AN82527 chips | |
connected to the ISA bus using I/O port, memory mapped or | |
diff --git a/drivers/net/can/sja1000/Kconfig b/drivers/net/can/sja1000/Kconfig | |
index 110071b26921..be1943a27ed0 100644 | |
--- a/drivers/net/can/sja1000/Kconfig | |
+++ b/drivers/net/can/sja1000/Kconfig | |
@@ -87,6 +87,7 @@ config CAN_PLX_PCI | |
config CAN_SJA1000_ISA | |
tristate "ISA Bus based legacy SJA1000 driver" | |
+ depends on ISA | |
help | |
This driver adds legacy support for SJA1000 chips connected to | |
the ISA bus using I/O port, memory mapped or indirect access. | |
diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig | |
index a4130e643342..0fa43943ea74 100644 | |
--- a/drivers/net/ethernet/8390/Kconfig | |
+++ b/drivers/net/ethernet/8390/Kconfig | |
@@ -117,7 +117,7 @@ config NE2000 | |
config NE2K_PCI | |
tristate "PCI NE2000 and clones support (see help)" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select CRC32 | |
help | |
This driver is for NE2000 compatible PCI cards. It will not work | |
diff --git a/drivers/net/ethernet/amd/Kconfig b/drivers/net/ethernet/amd/Kconfig | |
index 899c8a2a34b6..0ac61a5f1a37 100644 | |
--- a/drivers/net/ethernet/amd/Kconfig | |
+++ b/drivers/net/ethernet/amd/Kconfig | |
@@ -56,7 +56,7 @@ config LANCE | |
config PCNET32 | |
tristate "AMD PCnet32 PCI support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select CRC32 | |
select MII | |
help | |
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig | |
index 0b274d8fa45b..45a3c42945fc 100644 | |
--- a/drivers/net/ethernet/intel/Kconfig | |
+++ b/drivers/net/ethernet/intel/Kconfig | |
@@ -18,7 +18,7 @@ if NET_VENDOR_INTEL | |
config E100 | |
tristate "Intel(R) PRO/100+ support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select MII | |
help | |
This driver supports Intel(R) PRO/100 family of adapters. | |
@@ -41,7 +41,7 @@ config E100 | |
config E1000 | |
tristate "Intel(R) PRO/1000 Gigabit Ethernet support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
This driver supports Intel(R) PRO/1000 gigabit ethernet family of | |
adapters. For more information on how to identify your adapter, go | |
diff --git a/drivers/net/ethernet/sis/Kconfig b/drivers/net/ethernet/sis/Kconfig | |
index 775d76d9890e..bd1b1b81b0e8 100644 | |
--- a/drivers/net/ethernet/sis/Kconfig | |
+++ b/drivers/net/ethernet/sis/Kconfig | |
@@ -6,7 +6,7 @@ | |
config NET_VENDOR_SIS | |
bool "Silicon Integrated Systems (SiS) devices" | |
default y | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
help | |
If you have a network (Ethernet) card belonging to this class, say Y. | |
@@ -19,7 +19,7 @@ if NET_VENDOR_SIS | |
config SIS900 | |
tristate "SiS 900/7016 PCI Fast Ethernet Adapter support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select CRC32 | |
select MII | |
help | |
@@ -35,7 +35,7 @@ config SIS900 | |
config SIS190 | |
tristate "SiS190/SiS191 gigabit ethernet support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select CRC32 | |
select MII | |
help | |
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig | |
index affcf92cd3aa..8b1d67b00e68 100644 | |
--- a/drivers/net/ethernet/ti/Kconfig | |
+++ b/drivers/net/ethernet/ti/Kconfig | |
@@ -6,7 +6,7 @@ | |
config NET_VENDOR_TI | |
bool "Texas Instruments (TI) devices" | |
default y | |
- depends on PCI || EISA || AR7 || ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 | |
+ depends on LEGACY_PCI || EISA || AR7 || ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 | |
help | |
If you have a network (Ethernet) card belonging to this class, say Y. | |
@@ -159,7 +159,7 @@ config TI_KEYSTONE_NETCP_ETHSS | |
config TLAN | |
tristate "TI ThunderLAN support" | |
- depends on (PCI || EISA) | |
+ depends on (LEGACY_PCI || EISA) | |
help | |
If you have a PCI Ethernet network card based on the ThunderLAN chip | |
which is supported by this driver, say Y here. | |
diff --git a/drivers/net/ethernet/via/Kconfig b/drivers/net/ethernet/via/Kconfig | |
index da287ef65be7..25add3d64859 100644 | |
--- a/drivers/net/ethernet/via/Kconfig | |
+++ b/drivers/net/ethernet/via/Kconfig | |
@@ -18,8 +18,9 @@ if NET_VENDOR_VIA | |
config VIA_RHINE | |
tristate "VIA Rhine support" | |
- depends on PCI || (OF_IRQ && GENERIC_PCI_IOMAP) | |
- depends on PCI || ARCH_VT8500 || COMPILE_TEST | |
+ depends on LEGACY_PCI || (OF_IRQ && GENERIC_PCI_IOMAP) | |
+ depends on LEGACY_PCI || ARCH_VT8500 || COMPILE_TEST | |
+ depends on HAS_IOPORT | |
depends on HAS_DMA | |
select CRC32 | |
select MII | |
diff --git a/drivers/net/fddi/Kconfig b/drivers/net/fddi/Kconfig | |
index 846bf41c2717..1753c08d6423 100644 | |
--- a/drivers/net/fddi/Kconfig | |
+++ b/drivers/net/fddi/Kconfig | |
@@ -5,7 +5,7 @@ | |
config FDDI | |
tristate "FDDI driver support" | |
- depends on PCI || EISA || TC | |
+ depends on LEGACY_PCI || EISA || TC | |
help | |
Fiber Distributed Data Interface is a high speed local area network | |
design; essentially a replacement for high speed Ethernet. FDDI can | |
@@ -29,7 +29,7 @@ config DEFZA | |
config DEFXX | |
tristate "Digital DEFTA/DEFEA/DEFPA adapter support" | |
- depends on FDDI && (PCI || EISA || TC) | |
+ depends on FDDI && (LEGACY_PCI || EISA || TC) | |
help | |
This is support for the DIGITAL series of TURBOchannel (DEFTA), | |
EISA (DEFEA) and PCI (DEFPA) controllers which can connect you | |
diff --git a/drivers/net/hamradio/Kconfig b/drivers/net/hamradio/Kconfig | |
index 441da03c23ee..61c0bc156870 100644 | |
--- a/drivers/net/hamradio/Kconfig | |
+++ b/drivers/net/hamradio/Kconfig | |
@@ -117,7 +117,7 @@ config SCC_TRXECHO | |
config BAYCOM_SER_FDX | |
tristate "BAYCOM ser12 fullduplex driver for AX.25" | |
- depends on AX25 && !S390 | |
+ depends on AX25 && HAS_IOPORT | |
select CRC_CCITT | |
help | |
This is one of two drivers for Baycom style simple amateur radio | |
@@ -137,7 +137,7 @@ config BAYCOM_SER_FDX | |
config BAYCOM_SER_HDX | |
tristate "BAYCOM ser12 halfduplex driver for AX.25" | |
- depends on AX25 && !S390 | |
+ depends on AX25 && HAS_IOPORT | |
select CRC_CCITT | |
help | |
This is one of two drivers for Baycom style simple amateur radio | |
@@ -185,7 +185,7 @@ config BAYCOM_EPP | |
config YAM | |
tristate "YAM driver for AX.25" | |
- depends on AX25 && !S390 | |
+ depends on AX25 && HAS_IOPORT | |
help | |
The YAM is a modem for packet radio which connects to the serial | |
port and includes some of the functions of a Terminal Node | |
diff --git a/drivers/net/wan/Kconfig b/drivers/net/wan/Kconfig | |
index 592a8389fc5a..631c4c1c56c8 100644 | |
--- a/drivers/net/wan/Kconfig | |
+++ b/drivers/net/wan/Kconfig | |
@@ -250,7 +250,7 @@ config C101 | |
config FARSYNC | |
tristate "FarSync T-Series support" | |
- depends on HDLC && PCI | |
+ depends on HDLC && LEGACY_PCI | |
help | |
Support for the FarSync T-Series X.21 (and V.35/V.24) cards by | |
FarSite Communications Ltd. | |
diff --git a/drivers/net/wireless/atmel/Kconfig b/drivers/net/wireless/atmel/Kconfig | |
index ca45a1021cf4..9baa4a19dd38 100644 | |
--- a/drivers/net/wireless/atmel/Kconfig | |
+++ b/drivers/net/wireless/atmel/Kconfig | |
@@ -14,7 +14,7 @@ if WLAN_VENDOR_ATMEL | |
config ATMEL | |
tristate "Atmel at76c50x chipset 802.11b support" | |
- depends on CFG80211 && (PCI || PCMCIA) | |
+ depends on CFG80211 && (LEGACY_PCI || PCMCIA) | |
select WIRELESS_EXT | |
select WEXT_PRIV | |
select FW_LOADER | |
@@ -32,7 +32,7 @@ config ATMEL | |
config PCI_ATMEL | |
tristate "Atmel at76c506 PCI cards" | |
- depends on ATMEL && PCI | |
+ depends on ATMEL && LEGACY_PCI | |
help | |
Enable support for PCI and mini-PCI cards containing the | |
Atmel at76c506 chip. | |
diff --git a/drivers/net/wireless/intersil/hostap/Kconfig b/drivers/net/wireless/intersil/hostap/Kconfig | |
index c865d3156cea..9bcd1c8546ff 100644 | |
--- a/drivers/net/wireless/intersil/hostap/Kconfig | |
+++ b/drivers/net/wireless/intersil/hostap/Kconfig | |
@@ -56,7 +56,7 @@ config HOSTAP_FIRMWARE_NVRAM | |
config HOSTAP_PLX | |
tristate "Host AP driver for Prism2/2.5/3 in PLX9052 PCI adaptors" | |
- depends on PCI && HOSTAP | |
+ depends on LEGACY_PCI && HOSTAP | |
help | |
Host AP driver's version for Prism2/2.5/3 PC Cards in PLX9052 based | |
PCI adaptors. | |
@@ -70,7 +70,7 @@ config HOSTAP_PLX | |
config HOSTAP_PCI | |
tristate "Host AP driver for Prism2.5 PCI adaptors" | |
- depends on PCI && HOSTAP | |
+ depends on LEGACY_PCI && HOSTAP | |
help | |
Host AP driver's version for Prism2.5 PCI adaptors. | |
diff --git a/drivers/parport/Kconfig b/drivers/parport/Kconfig | |
index e78a9f0302c7..d824f3069302 100644 | |
--- a/drivers/parport/Kconfig | |
+++ b/drivers/parport/Kconfig | |
@@ -14,7 +14,6 @@ config ARCH_MIGHT_HAVE_PC_PARPORT | |
menuconfig PARPORT | |
tristate "Parallel port support" | |
- depends on HAS_IOMEM | |
help | |
If you want to use devices connected to your machine's parallel port | |
(the connector at the computer with 25 holes), e.g. printer, ZIP | |
@@ -43,6 +42,7 @@ if PARPORT | |
config PARPORT_PC | |
tristate "PC-style hardware" | |
depends on ARCH_MIGHT_HAVE_PC_PARPORT | |
+ depends on HAS_IOPORT | |
help | |
You should say Y here if you have a PC-style parallel port. All | |
IBM PC compatible computers and some Alphas have PC-style | |
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig | |
index 43e615aa12ff..32ad33b841cf 100644 | |
--- a/drivers/pci/Kconfig | |
+++ b/drivers/pci/Kconfig | |
@@ -23,6 +23,13 @@ menuconfig PCI | |
if PCI | |
+config LEGACY_PCI | |
+ bool "Enable support for legacy PCI devices" | |
+ depends on HAVE_PCI | |
+ help | |
+ This option enables support for legacy PCI devices either attached | |
+ directly or via a bridge on a PCI Express bus. | |
+ | |
config PCI_DOMAINS | |
bool | |
depends on PCI | |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c | |
index cfe2f85af09e..a59a85593972 100644 | |
--- a/drivers/pci/pci-sysfs.c | |
+++ b/drivers/pci/pci-sysfs.c | |
@@ -1099,6 +1099,7 @@ static int pci_mmap_resource_wc(struct file *filp, struct kobject *kobj, | |
return pci_mmap_resource(kobj, attr, vma, 1); | |
} | |
+#ifdef CONFIG_HAS_IOPORT | |
static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj, | |
struct bin_attribute *attr, char *buf, | |
loff_t off, size_t count, bool write) | |
@@ -1157,6 +1158,21 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj, | |
return pci_resource_io(filp, kobj, attr, buf, off, count, true); | |
} | |
+#else | |
+static ssize_t pci_read_resource_io(struct file *filp, struct kobject *kobj, | |
+ struct bin_attribute *attr, char *buf, | |
+ loff_t off, size_t count) | |
+{ | |
+ return -ENXIO; | |
+} | |
+ | |
+static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj, | |
+ struct bin_attribute *attr, char *buf, | |
+ loff_t off, size_t count) | |
+{ | |
+ return -ENXIO; | |
+} | |
+#endif | |
/** | |
* pci_remove_resource_files - cleanup resource files | |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c | |
index 003950c738d2..8624c98c57b2 100644 | |
--- a/drivers/pci/quirks.c | |
+++ b/drivers/pci/quirks.c | |
@@ -265,6 +265,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_1, quirk_isa_d | |
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_2, quirk_isa_dma_hangs); | |
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_CBUS_3, quirk_isa_dma_hangs); | |
+#ifdef CONFIG_HAS_IOPORT | |
/* | |
* Intel NM10 "TigerPoint" LPC PM1a_STS.BM_STS must be clear | |
* for some HT machines to use C4 w/o hanging. | |
@@ -284,6 +285,7 @@ static void quirk_tigerpoint_bm_sts(struct pci_dev *dev) | |
} | |
} | |
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TGP_LPC, quirk_tigerpoint_bm_sts); | |
+#endif | |
/* Chipsets where PCI->PCI transfers vanish or hang */ | |
static void quirk_nopcipci(struct pci_dev *dev) | |
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig | |
index d13b8d1a780a..3d05bdf1f9cb 100644 | |
--- a/drivers/pcmcia/Kconfig | |
+++ b/drivers/pcmcia/Kconfig | |
@@ -5,7 +5,7 @@ | |
menuconfig PCCARD | |
tristate "PCCard (PCMCIA/CardBus) support" | |
- depends on !UML | |
+ depends on LEGACY_PCI || HAS_IOPORT | |
help | |
Say Y here if you want to attach PCMCIA- or PC-cards to your Linux | |
computer. These are credit-card size devices such as network cards, | |
diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig | |
index ccc23d8686e8..b43ef78e75d4 100644 | |
--- a/drivers/platform/chrome/Kconfig | |
+++ b/drivers/platform/chrome/Kconfig | |
@@ -111,6 +111,7 @@ config CROS_EC_SPI | |
config CROS_EC_LPC | |
tristate "ChromeOS Embedded Controller (LPC)" | |
depends on CROS_EC && ACPI && (X86 || COMPILE_TEST) | |
+ depends on HAS_IOPORT | |
help | |
If you say Y here, you get support for talking to the ChromeOS EC | |
over an LPC bus, including the LPC Microchip EC (MEC) variant. | |
diff --git a/drivers/platform/chrome/wilco_ec/Kconfig b/drivers/platform/chrome/wilco_ec/Kconfig | |
index 49e8530ca0ac..d1648fb099ac 100644 | |
--- a/drivers/platform/chrome/wilco_ec/Kconfig | |
+++ b/drivers/platform/chrome/wilco_ec/Kconfig | |
@@ -3,6 +3,7 @@ config WILCO_EC | |
tristate "ChromeOS Wilco Embedded Controller" | |
depends on X86 || COMPILE_TEST | |
depends on ACPI && CROS_EC_LPC && LEDS_CLASS | |
+ depends on HAS_IOPORT | |
help | |
If you say Y here, you get support for talking to the ChromeOS | |
Wilco EC over an eSPI bus. This uses a simple byte-level protocol | |
diff --git a/drivers/pnp/isapnp/Kconfig b/drivers/pnp/isapnp/Kconfig | |
index d0479a563123..79bd48f1dd94 100644 | |
--- a/drivers/pnp/isapnp/Kconfig | |
+++ b/drivers/pnp/isapnp/Kconfig | |
@@ -4,7 +4,7 @@ | |
# | |
config ISAPNP | |
bool "ISA Plug and Play support" | |
- depends on ISA || COMPILE_TEST | |
+ depends on ISA || (HAS_IOPORT && COMPILE_TEST) | |
help | |
Say Y here if you would like support for ISA Plug and Play devices. | |
Some information is in <file:Documentation/driver-api/isapnp.rst>. | |
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig | |
index 4b563db3ab3e..96b91eaca0cd 100644 | |
--- a/drivers/power/reset/Kconfig | |
+++ b/drivers/power/reset/Kconfig | |
@@ -151,6 +151,7 @@ config POWER_RESET_OXNAS | |
config POWER_RESET_PIIX4_POWEROFF | |
tristate "Intel PIIX4 power-off driver" | |
depends on PCI | |
+ depends on HAS_IOPORT | |
depends on MIPS || COMPILE_TEST | |
help | |
This driver supports powering off a system using the Intel PIIX4 | |
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig | |
index 058e56a10ab8..fde2bdb7090d 100644 | |
--- a/drivers/rtc/Kconfig | |
+++ b/drivers/rtc/Kconfig | |
@@ -951,6 +951,7 @@ comment "Platform RTC drivers" | |
config RTC_DRV_CMOS | |
tristate "PC-style 'CMOS'" | |
depends on X86 || ARM || PPC || MIPS || SPARC64 | |
+ depends on HAS_IOPORT | |
default y if X86 | |
select RTC_MC146818_LIB | |
help | |
@@ -971,6 +972,7 @@ config RTC_DRV_CMOS | |
config RTC_DRV_ALPHA | |
bool "Alpha PC-style CMOS" | |
depends on ALPHA | |
+ depends on HAS_IOPORT | |
select RTC_MC146818_LIB | |
default y | |
help | |
@@ -1188,7 +1190,7 @@ config RTC_DRV_MSM6242 | |
config RTC_DRV_BQ4802 | |
tristate "TI BQ4802" | |
- depends on HAS_IOMEM | |
+ depends on HAS_IOMEM && HAS_IOPORT | |
help | |
If you say Y here you will get support for the TI | |
BQ4802 RTC chip. | |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig | |
index 6e3a04107bb6..c90c97485fce 100644 | |
--- a/drivers/scsi/Kconfig | |
+++ b/drivers/scsi/Kconfig | |
@@ -333,7 +333,7 @@ config SGIWD93_SCSI | |
config BLK_DEV_3W_XXXX_RAID | |
tristate "3ware 5/6/7/8xxx ATA-RAID support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
3ware is the only hardware ATA-Raid product in Linux to date. | |
This card is 2,4, or 8 channel master mode support only. | |
@@ -380,7 +380,7 @@ config SCSI_3W_SAS | |
config SCSI_ACARD | |
tristate "ACARD SCSI support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
This driver supports the ACARD SCSI host adapter. | |
Support Chip <ATP870 ATP876 ATP880 ATP885> | |
@@ -472,7 +472,7 @@ config SCSI_DPT_I2O | |
config SCSI_ADVANSYS | |
tristate "AdvanSys SCSI support" | |
depends on SCSI | |
- depends on ISA || EISA || PCI | |
+ depends on ISA || EISA || LEGACY_PCI | |
depends on ISA_DMA_API || !ISA | |
help | |
This is a driver for all SCSI host adapters manufactured by | |
@@ -643,7 +643,7 @@ config SCSI_SNIC_DEBUG_FS | |
config SCSI_DMX3191D | |
tristate "DMX3191D SCSI support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
select SCSI_SPI_ATTRS | |
help | |
This is support for Domex DMX3191D SCSI Host Adapters. | |
@@ -657,7 +657,7 @@ config SCSI_FDOMAIN | |
config SCSI_FDOMAIN_PCI | |
tristate "Future Domain TMC-3260/AHA-2920A PCI SCSI support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
select SCSI_FDOMAIN | |
help | |
This is support for Future Domain's PCI SCSI host adapters (TMC-3260) | |
@@ -710,7 +710,7 @@ config SCSI_GENERIC_NCR5380 | |
config SCSI_IPS | |
tristate "IBM ServeRAID support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
This is support for the IBM ServeRAID hardware RAID controllers. | |
See <http://www.developer.ibm.com/welcome/netfinity/serveraid.html> | |
@@ -770,7 +770,7 @@ config SCSI_IBMVFC_TRACE | |
config SCSI_INITIO | |
tristate "Initio 9100U(W) support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
This is support for the Initio 91XXU(W) SCSI host adapter. Please | |
read the SCSI-HOWTO, available from | |
@@ -781,7 +781,7 @@ config SCSI_INITIO | |
config SCSI_INIA100 | |
tristate "Initio INI-A100U2W support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
This is support for the Initio INI-A100U2W SCSI host adapter. | |
Please read the SCSI-HOWTO, available from | |
@@ -793,6 +793,7 @@ config SCSI_INIA100 | |
config SCSI_PPA | |
tristate "IOMEGA parallel port (ppa - older drives)" | |
depends on SCSI && PARPORT_PC | |
+ depends on HAS_IOPORT | |
help | |
This driver supports older versions of IOMEGA's parallel port ZIP | |
drive (a 100 MB removable media device). | |
@@ -1130,7 +1131,7 @@ config SCSI_QLOGIC_FAS | |
config SCSI_QLOGIC_1280 | |
tristate "Qlogic QLA 1240/1x80/1x160 SCSI support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
Say Y if you have a QLogic ISP1240/1x80/1x160 SCSI host adapter. | |
@@ -1187,7 +1188,7 @@ config SCSI_SIM710 | |
config SCSI_DC395x | |
tristate "Tekram DC395(U/UW/F) and DC315(U) SCSI support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
select SCSI_SPI_ATTRS | |
help | |
This driver supports PCI SCSI host adapters based on the ASIC | |
diff --git a/drivers/scsi/aic7xxx/Kconfig.aic79xx b/drivers/scsi/aic7xxx/Kconfig.aic79xx | |
index a47dbd500e9a..64332cc73ea0 100644 | |
--- a/drivers/scsi/aic7xxx/Kconfig.aic79xx | |
+++ b/drivers/scsi/aic7xxx/Kconfig.aic79xx | |
@@ -5,7 +5,7 @@ | |
# | |
config SCSI_AIC79XX | |
tristate "Adaptec AIC79xx U320 support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
select SCSI_SPI_ATTRS | |
help | |
This driver supports all of Adaptec's Ultra 320 PCI-X | |
diff --git a/drivers/scsi/aic7xxx/Kconfig.aic7xxx b/drivers/scsi/aic7xxx/Kconfig.aic7xxx | |
index 0cfd92ce750a..3fa5dc1d1186 100644 | |
--- a/drivers/scsi/aic7xxx/Kconfig.aic7xxx | |
+++ b/drivers/scsi/aic7xxx/Kconfig.aic7xxx | |
@@ -5,7 +5,7 @@ | |
# | |
config SCSI_AIC7XXX | |
tristate "Adaptec AIC7xxx Fast -> U160 support" | |
- depends on (PCI || EISA) && SCSI | |
+ depends on (LEGACY_PCI || EISA) && SCSI | |
select SCSI_SPI_ATTRS | |
help | |
This driver supports all of Adaptec's Fast through Ultra 160 PCI | |
diff --git a/drivers/scsi/aic94xx/Kconfig b/drivers/scsi/aic94xx/Kconfig | |
index 71931c371b1c..b0cbf65dbe5b 100644 | |
--- a/drivers/scsi/aic94xx/Kconfig | |
+++ b/drivers/scsi/aic94xx/Kconfig | |
@@ -8,7 +8,7 @@ | |
config SCSI_AIC94XX | |
tristate "Adaptec AIC94xx SAS/SATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select SCSI_SAS_LIBSAS | |
select FW_LOADER | |
help | |
diff --git a/drivers/scsi/megaraid/Kconfig.megaraid b/drivers/scsi/megaraid/Kconfig.megaraid | |
index 2adc2afd9f91..4ec46aede490 100644 | |
--- a/drivers/scsi/megaraid/Kconfig.megaraid | |
+++ b/drivers/scsi/megaraid/Kconfig.megaraid | |
@@ -67,7 +67,7 @@ config MEGARAID_MAILBOX | |
config MEGARAID_LEGACY | |
tristate "LSI Logic Legacy MegaRAID Driver" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
help | |
This driver supports the LSI MegaRAID 418, 428, 438, 466, 762, 490 | |
and 467 SCSI host adapters. This driver also support the all U320 | |
diff --git a/drivers/scsi/mvsas/Kconfig b/drivers/scsi/mvsas/Kconfig | |
index 79812b80743b..f41f3f4a9f34 100644 | |
--- a/drivers/scsi/mvsas/Kconfig | |
+++ b/drivers/scsi/mvsas/Kconfig | |
@@ -9,7 +9,7 @@ | |
config SCSI_MVSAS | |
tristate "Marvell 88SE64XX/88SE94XX SAS/SATA support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select SCSI_SAS_LIBSAS | |
select FW_LOADER | |
help | |
diff --git a/drivers/scsi/qla2xxx/Kconfig b/drivers/scsi/qla2xxx/Kconfig | |
index 802c373fd6d9..93afb73858ce 100644 | |
--- a/drivers/scsi/qla2xxx/Kconfig | |
+++ b/drivers/scsi/qla2xxx/Kconfig | |
@@ -1,7 +1,7 @@ | |
# SPDX-License-Identifier: GPL-2.0-only | |
config SCSI_QLA_FC | |
tristate "QLogic QLA2XXX Fibre Channel Support" | |
- depends on PCI && SCSI | |
+ depends on LEGACY_PCI && SCSI | |
depends on SCSI_FC_ATTRS | |
depends on NVME_FC || !NVME_FC | |
select FW_LOADER | |
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig | |
index 596705d24400..cfbd45767095 100644 | |
--- a/drivers/spi/Kconfig | |
+++ b/drivers/spi/Kconfig | |
@@ -204,6 +204,7 @@ config SPI_BITBANG | |
config SPI_BUTTERFLY | |
tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" | |
depends on PARPORT | |
+ depends on HAS_IOPORT | |
select SPI_BITBANG | |
help | |
This uses a custom parallel port cable to connect to an AVR | |
diff --git a/drivers/staging/sm750fb/Kconfig b/drivers/staging/sm750fb/Kconfig | |
index 8c0d8a873d5b..d332f912b964 100644 | |
--- a/drivers/staging/sm750fb/Kconfig | |
+++ b/drivers/staging/sm750fb/Kconfig | |
@@ -1,7 +1,7 @@ | |
# SPDX-License-Identifier: GPL-2.0 | |
config FB_SM750 | |
tristate "Silicon Motion SM750 framebuffer support" | |
- depends on FB && PCI | |
+ depends on FB && LEGACY_PCI | |
select FB_MODE_HELPERS | |
select FB_CFB_FILLRECT | |
select FB_CFB_COPYAREA | |
diff --git a/drivers/staging/vt6655/Kconfig b/drivers/staging/vt6655/Kconfig | |
index d1cd5de46dcf..dd236f54d3a2 100644 | |
--- a/drivers/staging/vt6655/Kconfig | |
+++ b/drivers/staging/vt6655/Kconfig | |
@@ -1,6 +1,6 @@ | |
# SPDX-License-Identifier: GPL-2.0 | |
config VT6655 | |
tristate "VIA Technologies VT6655 support" | |
- depends on PCI && MAC80211 && m | |
+ depends on LEGACY_PCI && MAC80211 && m | |
help | |
This is a vendor-written driver for VIA VT6655. | |
diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig | |
index cc30ff93e2e4..460326a529d6 100644 | |
--- a/drivers/tty/Kconfig | |
+++ b/drivers/tty/Kconfig | |
@@ -203,7 +203,7 @@ config MOXA_INTELLIO | |
config MOXA_SMARTIO | |
tristate "Moxa SmartIO support v. 2.0" | |
- depends on SERIAL_NONSTANDARD && PCI | |
+ depends on SERIAL_NONSTANDARD && LEGACY_PCI | |
help | |
Say Y here if you have a Moxa SmartIO multiport serial card and/or | |
want to help develop a new version of this driver. | |
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig | |
index fc543ac97c13..607791b7f693 100644 | |
--- a/drivers/tty/serial/Kconfig | |
+++ b/drivers/tty/serial/Kconfig | |
@@ -908,7 +908,7 @@ config SERIAL_VR41XX_CONSOLE | |
config SERIAL_JSM | |
tristate "Digi International NEO and Classic PCI Support" | |
- depends on PCI | |
+ depends on LEGACY_PCI | |
select SERIAL_CORE | |
help | |
This is a driver for Digi International's Neo and Classic series | |
diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c | |
index d630cccd2e6e..422a28ede4de 100644 | |
--- a/drivers/usb/core/hcd-pci.c | |
+++ b/drivers/usb/core/hcd-pci.c | |
@@ -20,7 +20,6 @@ | |
#include "usb.h" | |
- | |
/* PCI-based HCs are common, but plenty of non-PCI HCs are used too */ | |
/* | |
@@ -212,7 +211,8 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id, | |
goto free_irq_vectors; | |
} | |
- hcd->amd_resume_bug = (usb_hcd_amd_remote_wakeup_quirk(dev) && | |
+ hcd->amd_resume_bug = (IS_ENABLED(CONFIG_USB_PCI_AMD) && | |
+ usb_hcd_amd_remote_wakeup_quirk(dev) && | |
driver->flags & (HCD_USB11 | HCD_USB3)) ? 1 : 0; | |
if (driver->flags & HCD_MEMORY) { | |
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig | |
index d1d926f8f9c2..5fb207e2d5e8 100644 | |
--- a/drivers/usb/host/Kconfig | |
+++ b/drivers/usb/host/Kconfig | |
@@ -369,7 +369,7 @@ config USB_ISP116X_HCD | |
config USB_ISP1362_HCD | |
tristate "ISP1362 HCD support" | |
- depends on HAS_IOMEM | |
+ depends on HAS_IOPORT | |
depends on COMPILE_TEST # nothing uses this | |
help | |
Supports the Philips ISP1362 chip as a host controller | |
@@ -605,7 +605,7 @@ endif # USB_OHCI_HCD | |
config USB_UHCI_HCD | |
tristate "UHCI HCD (most Intel and VIA) support" | |
- depends on USB_PCI || USB_UHCI_SUPPORT_NON_PCI_HC | |
+ depends on (USB_PCI && HAS_IOPORT) || USB_UHCI_SUPPORT_NON_PCI_HC | |
help | |
The Universal Host Controller Interface is a standard by Intel for | |
accessing the USB hardware in the PC (which is also called the USB | |
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c | |
index ef08d68b9714..01471902c274 100644 | |
--- a/drivers/usb/host/pci-quirks.c | |
+++ b/drivers/usb/host/pci-quirks.c | |
@@ -60,6 +60,23 @@ | |
#define EHCI_USBLEGCTLSTS 4 /* legacy control/status */ | |
#define EHCI_USBLEGCTLSTS_SOOE (1 << 13) /* SMI on ownership change */ | |
+/* ASMEDIA quirk use */ | |
+#define ASMT_DATA_WRITE0_REG 0xF8 | |
+#define ASMT_DATA_WRITE1_REG 0xFC | |
+#define ASMT_CONTROL_REG 0xE0 | |
+#define ASMT_CONTROL_WRITE_BIT 0x02 | |
+#define ASMT_WRITEREG_CMD 0x10423 | |
+#define ASMT_FLOWCTL_ADDR 0xFA30 | |
+#define ASMT_FLOWCTL_DATA 0xBA | |
+#define ASMT_PSEUDO_DATA 0 | |
+ | |
+/* Intel quirk use */ | |
+#define USB_INTEL_XUSB2PR 0xD0 | |
+#define USB_INTEL_USB2PRM 0xD4 | |
+#define USB_INTEL_USB3_PSSEN 0xD8 | |
+#define USB_INTEL_USB3PRM 0xDC | |
+ | |
+#ifdef CONFIG_USB_PCI_AMD | |
/* AMD quirk use */ | |
#define AB_REG_BAR_LOW 0xe0 | |
#define AB_REG_BAR_HIGH 0xe1 | |
@@ -93,21 +110,6 @@ | |
#define NB_PIF0_PWRDOWN_0 0x01100012 | |
#define NB_PIF0_PWRDOWN_1 0x01100013 | |
-#define USB_INTEL_XUSB2PR 0xD0 | |
-#define USB_INTEL_USB2PRM 0xD4 | |
-#define USB_INTEL_USB3_PSSEN 0xD8 | |
-#define USB_INTEL_USB3PRM 0xDC | |
- | |
-/* ASMEDIA quirk use */ | |
-#define ASMT_DATA_WRITE0_REG 0xF8 | |
-#define ASMT_DATA_WRITE1_REG 0xFC | |
-#define ASMT_CONTROL_REG 0xE0 | |
-#define ASMT_CONTROL_WRITE_BIT 0x02 | |
-#define ASMT_WRITEREG_CMD 0x10423 | |
-#define ASMT_FLOWCTL_ADDR 0xFA30 | |
-#define ASMT_FLOWCTL_DATA 0xBA | |
-#define ASMT_PSEUDO_DATA 0 | |
- | |
/* | |
* amd_chipset_gen values represent AMD different chipset generations | |
*/ | |
@@ -460,50 +462,6 @@ void usb_amd_quirk_pll_disable(void) | |
} | |
EXPORT_SYMBOL_GPL(usb_amd_quirk_pll_disable); | |
-static int usb_asmedia_wait_write(struct pci_dev *pdev) | |
-{ | |
- unsigned long retry_count; | |
- unsigned char value; | |
- | |
- for (retry_count = 1000; retry_count > 0; --retry_count) { | |
- | |
- pci_read_config_byte(pdev, ASMT_CONTROL_REG, &value); | |
- | |
- if (value == 0xff) { | |
- dev_err(&pdev->dev, "%s: check_ready ERROR", __func__); | |
- return -EIO; | |
- } | |
- | |
- if ((value & ASMT_CONTROL_WRITE_BIT) == 0) | |
- return 0; | |
- | |
- udelay(50); | |
- } | |
- | |
- dev_warn(&pdev->dev, "%s: check_write_ready timeout", __func__); | |
- return -ETIMEDOUT; | |
-} | |
- | |
-void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) | |
-{ | |
- if (usb_asmedia_wait_write(pdev) != 0) | |
- return; | |
- | |
- /* send command and address to device */ | |
- pci_write_config_dword(pdev, ASMT_DATA_WRITE0_REG, ASMT_WRITEREG_CMD); | |
- pci_write_config_dword(pdev, ASMT_DATA_WRITE1_REG, ASMT_FLOWCTL_ADDR); | |
- pci_write_config_byte(pdev, ASMT_CONTROL_REG, ASMT_CONTROL_WRITE_BIT); | |
- | |
- if (usb_asmedia_wait_write(pdev) != 0) | |
- return; | |
- | |
- /* send data to device */ | |
- pci_write_config_dword(pdev, ASMT_DATA_WRITE0_REG, ASMT_FLOWCTL_DATA); | |
- pci_write_config_dword(pdev, ASMT_DATA_WRITE1_REG, ASMT_PSEUDO_DATA); | |
- pci_write_config_byte(pdev, ASMT_CONTROL_REG, ASMT_CONTROL_WRITE_BIT); | |
-} | |
-EXPORT_SYMBOL_GPL(usb_asmedia_modifyflowcontrol); | |
- | |
void usb_amd_quirk_pll_enable(void) | |
{ | |
usb_amd_quirk_pll(0); | |
@@ -632,7 +590,53 @@ bool usb_amd_pt_check_port(struct device *device, int port) | |
return !(value & BIT(port_shift)); | |
} | |
EXPORT_SYMBOL_GPL(usb_amd_pt_check_port); | |
+#endif | |
+ | |
+static int usb_asmedia_wait_write(struct pci_dev *pdev) | |
+{ | |
+ unsigned long retry_count; | |
+ unsigned char value; | |
+ | |
+ for (retry_count = 1000; retry_count > 0; --retry_count) { | |
+ | |
+ pci_read_config_byte(pdev, ASMT_CONTROL_REG, &value); | |
+ | |
+ if (value == 0xff) { | |
+ dev_err(&pdev->dev, "%s: check_ready ERROR", __func__); | |
+ return -EIO; | |
+ } | |
+ | |
+ if ((value & ASMT_CONTROL_WRITE_BIT) == 0) | |
+ return 0; | |
+ | |
+ udelay(50); | |
+ } | |
+ | |
+ dev_warn(&pdev->dev, "%s: check_write_ready timeout", __func__); | |
+ return -ETIMEDOUT; | |
+} | |
+ | |
+void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) | |
+{ | |
+ if (usb_asmedia_wait_write(pdev) != 0) | |
+ return; | |
+ | |
+ /* send command and address to device */ | |
+ pci_write_config_dword(pdev, ASMT_DATA_WRITE0_REG, ASMT_WRITEREG_CMD); | |
+ pci_write_config_dword(pdev, ASMT_DATA_WRITE1_REG, ASMT_FLOWCTL_ADDR); | |
+ pci_write_config_byte(pdev, ASMT_CONTROL_REG, ASMT_CONTROL_WRITE_BIT); | |
+ if (usb_asmedia_wait_write(pdev) != 0) | |
+ return; | |
+ | |
+ /* send data to device */ | |
+ pci_write_config_dword(pdev, ASMT_DATA_WRITE0_REG, ASMT_FLOWCTL_DATA); | |
+ pci_write_config_dword(pdev, ASMT_DATA_WRITE1_REG, ASMT_PSEUDO_DATA); | |
+ pci_write_config_byte(pdev, ASMT_CONTROL_REG, ASMT_CONTROL_WRITE_BIT); | |
+} | |
+EXPORT_SYMBOL_GPL(usb_asmedia_modifyflowcontrol); | |
+ | |
+#if IS_ENABLED(CONFIG_USB_UHCI_HCD) && defined(CONFIG_HAS_IOPORT) | |
/* | |
* Make sure the controller is completely inactive, unable to | |
* generate interrupts or do DMA. | |
@@ -713,6 +717,7 @@ int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base) | |
return 1; | |
} | |
EXPORT_SYMBOL_GPL(uhci_check_and_reset_hc); | |
+#endif | |
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask) | |
{ | |
@@ -728,7 +733,7 @@ static void quirk_usb_handoff_uhci(struct pci_dev *pdev) | |
unsigned long base = 0; | |
int i; | |
- if (!pio_enabled(pdev)) | |
+ if (!IS_ENABLED(CONFIG_HAS_IOPORT) || !pio_enabled(pdev)) | |
return; | |
for (i = 0; i < PCI_STD_NUM_BARS; i++) | |
@@ -1273,7 +1278,8 @@ static void quirk_usb_early_handoff(struct pci_dev *pdev) | |
"Can't enable PCI device, BIOS handoff failed.\n"); | |
return; | |
} | |
- if (pdev->class == PCI_CLASS_SERIAL_USB_UHCI) | |
+ if (IS_ENABLED(CONFIG_USB_UHCI_HCD) && | |
+ pdev->class == PCI_CLASS_SERIAL_USB_UHCI) | |
quirk_usb_handoff_uhci(pdev); | |
else if (pdev->class == PCI_CLASS_SERIAL_USB_OHCI) | |
quirk_usb_handoff_ohci(pdev); | |
diff --git a/drivers/usb/host/pci-quirks.h b/drivers/usb/host/pci-quirks.h | |
index e729de21fad7..42eb18be37af 100644 | |
--- a/drivers/usb/host/pci-quirks.h | |
+++ b/drivers/usb/host/pci-quirks.h | |
@@ -2,33 +2,50 @@ | |
#ifndef __LINUX_USB_PCI_QUIRKS_H | |
#define __LINUX_USB_PCI_QUIRKS_H | |
-#ifdef CONFIG_USB_PCI | |
void uhci_reset_hc(struct pci_dev *pdev, unsigned long base); | |
int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base); | |
-int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *pdev); | |
+ | |
+struct pci_dev; | |
+ | |
+#ifdef CONFIG_USB_PCI_AMD | |
bool usb_amd_hang_symptom_quirk(void); | |
bool usb_amd_prefetch_quirk(void); | |
void usb_amd_dev_put(void); | |
bool usb_amd_quirk_pll_check(void); | |
void usb_amd_quirk_pll_disable(void); | |
void usb_amd_quirk_pll_enable(void); | |
-void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev); | |
-void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev); | |
-void usb_disable_xhci_ports(struct pci_dev *xhci_pdev); | |
void sb800_prefetch(struct device *dev, int on); | |
bool usb_amd_pt_check_port(struct device *device, int port); | |
#else | |
-struct pci_dev; | |
+static inline bool usb_amd_hang_symptom_quirk(void) | |
+{ | |
+ return false; | |
+}; | |
+static inline bool usb_amd_prefetch_quirk(void) | |
+{ | |
+ return false; | |
+} | |
+static inline bool usb_amd_quirk_pll_check(void) | |
+{ | |
+ return false; | |
+} | |
static inline void usb_amd_quirk_pll_disable(void) {} | |
static inline void usb_amd_quirk_pll_enable(void) {} | |
-static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {} | |
static inline void usb_amd_dev_put(void) {} | |
-static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {} | |
static inline void sb800_prefetch(struct device *dev, int on) {} | |
static inline bool usb_amd_pt_check_port(struct device *device, int port) | |
{ | |
return false; | |
} | |
+#endif /* CONFIG_USB_PCI_AMD */ | |
+ | |
+#ifdef CONFIG_USB_PCI | |
+void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev); | |
+void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev); | |
+void usb_disable_xhci_ports(struct pci_dev *xhci_pdev); | |
+#else | |
+static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {} | |
+static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {} | |
#endif /* CONFIG_USB_PCI */ | |
#endif /* __LINUX_USB_PCI_QUIRKS_H */ | |
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c | |
index d90b869f5f40..a3b0d3d3b395 100644 | |
--- a/drivers/usb/host/uhci-hcd.c | |
+++ b/drivers/usb/host/uhci-hcd.c | |
@@ -841,7 +841,7 @@ static int uhci_count_ports(struct usb_hcd *hcd) | |
static const char hcd_name[] = "uhci_hcd"; | |
-#ifdef CONFIG_USB_PCI | |
+#if defined(CONFIG_USB_PCI) && defined(CONFIG_HAS_IOPORT) | |
#include "uhci-pci.c" | |
#define PCI_DRIVER uhci_pci_driver | |
#endif | |
diff --git a/drivers/usb/host/uhci-hcd.h b/drivers/usb/host/uhci-hcd.h | |
index 8ae5ccd26753..8e30116b6fd2 100644 | |
--- a/drivers/usb/host/uhci-hcd.h | |
+++ b/drivers/usb/host/uhci-hcd.h | |
@@ -586,12 +586,14 @@ static inline int uhci_aspeed_reg(unsigned int reg) | |
static inline u32 uhci_readl(const struct uhci_hcd *uhci, int reg) | |
{ | |
+#ifdef CONFIG_HAS_IOPORT | |
if (uhci_has_pci_registers(uhci)) | |
return inl(uhci->io_addr + reg); | |
- else if (uhci_is_aspeed(uhci)) | |
+#endif | |
+ if (uhci_is_aspeed(uhci)) | |
return readl(uhci->regs + uhci_aspeed_reg(reg)); | |
#ifdef CONFIG_USB_UHCI_BIG_ENDIAN_MMIO | |
- else if (uhci_big_endian_mmio(uhci)) | |
+ if (uhci_big_endian_mmio(uhci)) | |
return readl_be(uhci->regs + reg); | |
#endif | |
else | |
@@ -600,72 +602,97 @@ static inline u32 uhci_readl(const struct uhci_hcd *uhci, int reg) | |
static inline void uhci_writel(const struct uhci_hcd *uhci, u32 val, int reg) | |
{ | |
- if (uhci_has_pci_registers(uhci)) | |
+#ifdef CONFIG_HAS_IOPORT | |
+ if (uhci_has_pci_registers(uhci)) { | |
outl(val, uhci->io_addr + reg); | |
- else if (uhci_is_aspeed(uhci)) | |
+ return; | |
+ } | |
+#endif | |
+ if (uhci_is_aspeed(uhci)) { | |
writel(val, uhci->regs + uhci_aspeed_reg(reg)); | |
+ return; | |
+ } | |
#ifdef CONFIG_USB_UHCI_BIG_ENDIAN_MMIO | |
- else if (uhci_big_endian_mmio(uhci)) | |
+ if (uhci_big_endian_mmio(uhci)) { | |
writel_be(val, uhci->regs + reg); | |
+ return; | |
+ } | |
#endif | |
- else | |
- writel(val, uhci->regs + reg); | |
+ writel(val, uhci->regs + reg); | |
} | |
static inline u16 uhci_readw(const struct uhci_hcd *uhci, int reg) | |
{ | |
+#ifdef CONFIG_HAS_IOPORT | |
if (uhci_has_pci_registers(uhci)) | |
return inw(uhci->io_addr + reg); | |