PCI: Add CONFIG_MMU dependency

It turns out that there are no platforms that have PCI but don't have an
MMU, so adding a Kconfig dependency on CONFIG_PCI simplifies build testing
kernels for those platforms a lot, and avoids a lot of inadvertent build
regressions.

Add a dependency for CONFIG_PCI and remove all the ones for PCI specific
device drivers that are currently marked not having it.

There are a few platforms that have an optional MMU, but they usually
cannot have PCI at all. The one exception is Coldfire MCF54xx, but this is
mainly for historic reasons, and anyone using those chips should really use
the MMU these days.

Link: https://lore.kernel.org/lkml/a41f1b20-a76c-43d8-8c36-f12744327a54@app.fastmail.com/
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> # SCSI
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Link: https://patch.msgid.link/20250423202215.3315550-1-arnd@kernel.org
This commit is contained in:
Arnd Bergmann 2025-04-23 22:16:32 +02:00 committed by Bjorn Helgaas
parent a2c6c1c23b
commit 8fe743b5eb
21 changed files with 17 additions and 23 deletions

View file

@ -8,7 +8,6 @@ config DRM_ACCEL_QAIC
depends on DRM_ACCEL depends on DRM_ACCEL
depends on PCI && HAS_IOMEM depends on PCI && HAS_IOMEM
depends on MHI_BUS depends on MHI_BUS
depends on MMU
select CRC32 select CRC32
help help
Enables driver for Qualcomm's Cloud AI accelerator PCIe cards that are Enables driver for Qualcomm's Cloud AI accelerator PCIe cards that are

View file

@ -83,7 +83,7 @@ config FIREWIRE_KUNIT_SELF_ID_SEQUENCE_HELPER_TEST
config FIREWIRE_OHCI config FIREWIRE_OHCI
tristate "OHCI-1394 controllers" tristate "OHCI-1394 controllers"
depends on PCI && FIREWIRE && MMU depends on PCI && FIREWIRE
help help
Enable this driver if you have a FireWire controller based Enable this driver if you have a FireWire controller based
on the OHCI specification. For all practical purposes, this on the OHCI specification. For all practical purposes, this

View file

@ -462,7 +462,7 @@ source "drivers/gpu/drm/imagination/Kconfig"
config DRM_HYPERV config DRM_HYPERV
tristate "DRM Support for Hyper-V synthetic video device" tristate "DRM Support for Hyper-V synthetic video device"
depends on DRM && PCI && MMU && HYPERV depends on DRM && PCI && HYPERV
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_GEM_SHMEM_HELPER select DRM_GEM_SHMEM_HELPER

View file

@ -2,7 +2,7 @@
config DRM_AMDGPU config DRM_AMDGPU
tristate "AMD GPU" tristate "AMD GPU"
depends on DRM && PCI && MMU depends on DRM && PCI
depends on !UML depends on !UML
select FW_LOADER select FW_LOADER
select DRM_CLIENT select DRM_CLIENT
@ -68,7 +68,6 @@ config DRM_AMDGPU_CIK
config DRM_AMDGPU_USERPTR config DRM_AMDGPU_USERPTR
bool "Always enable userptr write support" bool "Always enable userptr write support"
depends on DRM_AMDGPU depends on DRM_AMDGPU
depends on MMU
select HMM_MIRROR select HMM_MIRROR
select MMU_NOTIFIER select MMU_NOTIFIER
help help

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_AST config DRM_AST
tristate "AST server chips" tristate "AST server chips"
depends on DRM && PCI && MMU depends on DRM && PCI
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_GEM_SHMEM_HELPER select DRM_GEM_SHMEM_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_GMA500 config DRM_GMA500
tristate "Intel GMA500/600/3600/3650 KMS Framebuffer" tristate "Intel GMA500/600/3600/3650 KMS Framebuffer"
depends on DRM && PCI && X86 && MMU && HAS_IOPORT depends on DRM && PCI && X86 && HAS_IOPORT
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_KMS_HELPER select DRM_KMS_HELPER
select FB_IOMEM_HELPERS if DRM_FBDEV_EMULATION select FB_IOMEM_HELPERS if DRM_FBDEV_EMULATION

View file

@ -2,7 +2,6 @@
config DRM_HISI_HIBMC config DRM_HISI_HIBMC
tristate "DRM Support for Hisilicon Hibmc" tristate "DRM Support for Hisilicon Hibmc"
depends on DRM && PCI depends on DRM && PCI
depends on MMU
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_DISPLAY_HELPER select DRM_DISPLAY_HELPER
select DRM_DISPLAY_DP_HELPER select DRM_DISPLAY_DP_HELPER

View file

@ -2,7 +2,7 @@
config DRM_LOONGSON config DRM_LOONGSON
tristate "DRM support for Loongson Graphics" tristate "DRM support for Loongson Graphics"
depends on DRM && PCI && MMU depends on DRM && PCI
depends on LOONGARCH || MIPS || COMPILE_TEST depends on LOONGARCH || MIPS || COMPILE_TEST
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_KMS_HELPER select DRM_KMS_HELPER

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_MGAG200 config DRM_MGAG200
tristate "Matrox G200" tristate "Matrox G200"
depends on DRM && PCI && MMU depends on DRM && PCI
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_GEM_SHMEM_HELPER select DRM_GEM_SHMEM_HELPER
select DRM_KMS_HELPER select DRM_KMS_HELPER

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_NOUVEAU config DRM_NOUVEAU
tristate "Nouveau (NVIDIA) cards" tristate "Nouveau (NVIDIA) cards"
depends on DRM && PCI && MMU depends on DRM && PCI
select IOMMU_API select IOMMU_API
select FW_LOADER select FW_LOADER
select FW_CACHE if PM_SLEEP select FW_CACHE if PM_SLEEP
@ -94,7 +94,6 @@ config DRM_NOUVEAU_SVM
bool "(EXPERIMENTAL) Enable SVM (Shared Virtual Memory) support" bool "(EXPERIMENTAL) Enable SVM (Shared Virtual Memory) support"
depends on DEVICE_PRIVATE depends on DEVICE_PRIVATE
depends on DRM_NOUVEAU depends on DRM_NOUVEAU
depends on MMU
depends on STAGING depends on STAGING
select HMM_MIRROR select HMM_MIRROR
select MMU_NOTIFIER select MMU_NOTIFIER

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_QXL config DRM_QXL
tristate "QXL virtual GPU" tristate "QXL virtual GPU"
depends on DRM && PCI && MMU && HAS_IOPORT depends on DRM && PCI && HAS_IOPORT
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_TTM select DRM_TTM

View file

@ -2,7 +2,7 @@
config DRM_RADEON config DRM_RADEON
tristate "ATI Radeon" tristate "ATI Radeon"
depends on DRM && PCI && MMU depends on DRM && PCI
depends on AGP || !AGP depends on AGP || !AGP
select FW_LOADER select FW_LOADER
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION

View file

@ -37,7 +37,7 @@ config DRM_BOCHS
config DRM_CIRRUS_QEMU config DRM_CIRRUS_QEMU
tristate "Cirrus driver for QEMU emulated device" tristate "Cirrus driver for QEMU emulated device"
depends on DRM && PCI && MMU depends on DRM && PCI
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_KMS_HELPER select DRM_KMS_HELPER
select DRM_GEM_SHMEM_HELPER select DRM_GEM_SHMEM_HELPER

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
config DRM_VMWGFX config DRM_VMWGFX
tristate "DRM driver for VMware Virtual GPU" tristate "DRM driver for VMware Virtual GPU"
depends on DRM && PCI && MMU depends on DRM && PCI
depends on (X86 && HYPERVISOR_GUEST) || ARM64 depends on (X86 && HYPERVISOR_GUEST) || ARM64
select DRM_CLIENT_SELECTION select DRM_CLIENT_SELECTION
select DRM_TTM select DRM_TTM

View file

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
config DRM_XE config DRM_XE
tristate "Intel Xe Graphics" tristate "Intel Xe Graphics"
depends on DRM && PCI && MMU && (m || (y && KUNIT=y)) depends on DRM && PCI && (m || (y && KUNIT=y))
select INTERVAL_TREE select INTERVAL_TREE
# we need shmfs for the swappable backing store, and in particular # we need shmfs for the swappable backing store, and in particular
# the shmem_readpage() which depends upon tmpfs # the shmem_readpage() which depends upon tmpfs

View file

@ -96,7 +96,6 @@ config BNX2
config CNIC config CNIC
tristate "QLogic CNIC support" tristate "QLogic CNIC support"
depends on PCI && (IPV6 || IPV6=n) depends on PCI && (IPV6 || IPV6=n)
depends on MMU
select BNX2 select BNX2
select UIO select UIO
help help

View file

@ -21,6 +21,7 @@ config GENERIC_PCI_IOMAP
menuconfig PCI menuconfig PCI
bool "PCI support" bool "PCI support"
depends on HAVE_PCI depends on HAVE_PCI
depends on MMU
help help
This option enables support for the PCI local bus, including This option enables support for the PCI local bus, including
support for PCI-X and the foundations for PCI Express support. support for PCI-X and the foundations for PCI Express support.

View file

@ -4257,7 +4257,7 @@ unsigned long __weak pci_address_to_pio(phys_addr_t address)
#ifndef pci_remap_iospace #ifndef pci_remap_iospace
int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr) int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
{ {
#if defined(PCI_IOBASE) && defined(CONFIG_MMU) #if defined(PCI_IOBASE)
unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start; unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;
if (!(res->flags & IORESOURCE_IO)) if (!(res->flags & IORESOURCE_IO))
@ -4290,7 +4290,7 @@ EXPORT_SYMBOL(pci_remap_iospace);
*/ */
void pci_unmap_iospace(struct resource *res) void pci_unmap_iospace(struct resource *res)
{ {
#if defined(PCI_IOBASE) && defined(CONFIG_MMU) #if defined(PCI_IOBASE)
unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start; unsigned long vaddr = (unsigned long)PCI_IOBASE + res->start;
vunmap_range(vaddr, vaddr + resource_size(res)); vunmap_range(vaddr, vaddr + resource_size(res));

View file

@ -5,7 +5,6 @@ config SCSI_BNX2X_FCOE
depends on (IPV6 || IPV6=n) depends on (IPV6 || IPV6=n)
depends on LIBFC depends on LIBFC
depends on LIBFCOE depends on LIBFCOE
depends on MMU
select NETDEVICES select NETDEVICES
select ETHERNET select ETHERNET
select NET_VENDOR_BROADCOM select NET_VENDOR_BROADCOM

View file

@ -4,7 +4,6 @@ config SCSI_BNX2_ISCSI
depends on NET depends on NET
depends on PCI depends on PCI
depends on (IPV6 || IPV6=n) depends on (IPV6 || IPV6=n)
depends on MMU
select SCSI_ISCSI_ATTRS select SCSI_ISCSI_ATTRS
select NETDEVICES select NETDEVICES
select ETHERNET select ETHERNET

View file

@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menu "VFIO support for PCI devices" menu "VFIO support for PCI devices"
depends on PCI && MMU depends on PCI
config VFIO_PCI_CORE config VFIO_PCI_CORE
tristate tristate