On Wed, Apr 23, 2025 at 10:16:32PM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <a...@arndb.de> > > 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-f12744327...@app.fastmail.com/ > Reviewed-by: Martin K. Petersen <martin.peter...@oracle.com> # SCSI > Acked-by: Alex Deucher <alexander.deuc...@amd.com> > Reviewed-by: Thomas Zimmermann <tzimmerm...@suse.de> > Cc: Bjorn Helgaas <bhelg...@google.com> > Signed-off-by: Arnd Bergmann <a...@arndb.de> > --- > v2: update changelog text > > Bjorn, can you take this through the PCI tree? I thought about splitting > it up by subsystem, but it's really one thing that I'm doing here, and > doing it in one bit makes more sense to me.
Applied to pci/misc for v6.16, thanks! The PCI tree is based on -rc1, so there were a few minor merge conflicts, but they're obvious. > --- > drivers/accel/qaic/Kconfig | 1 - > drivers/firewire/Kconfig | 2 +- > drivers/gpu/drm/Kconfig | 2 +- > drivers/gpu/drm/amd/amdgpu/Kconfig | 3 +-- > drivers/gpu/drm/ast/Kconfig | 2 +- > drivers/gpu/drm/gma500/Kconfig | 2 +- > drivers/gpu/drm/hisilicon/hibmc/Kconfig | 1 - > drivers/gpu/drm/loongson/Kconfig | 2 +- > drivers/gpu/drm/mgag200/Kconfig | 2 +- > drivers/gpu/drm/nouveau/Kconfig | 3 +-- > drivers/gpu/drm/qxl/Kconfig | 2 +- > drivers/gpu/drm/radeon/Kconfig | 2 +- > drivers/gpu/drm/tiny/Kconfig | 2 +- > drivers/gpu/drm/vmwgfx/Kconfig | 2 +- > drivers/gpu/drm/xe/Kconfig | 2 +- > drivers/net/ethernet/broadcom/Kconfig | 1 - > drivers/pci/Kconfig | 1 + > drivers/pci/pci.c | 4 ++-- > drivers/scsi/bnx2fc/Kconfig | 1 - > drivers/scsi/bnx2i/Kconfig | 1 - > drivers/vfio/pci/Kconfig | 2 +- > 21 files changed, 17 insertions(+), 23 deletions(-) > > diff --git a/drivers/accel/qaic/Kconfig b/drivers/accel/qaic/Kconfig > index a9f866230058..5e405a19c157 100644 > --- a/drivers/accel/qaic/Kconfig > +++ b/drivers/accel/qaic/Kconfig > @@ -8,7 +8,6 @@ config DRM_ACCEL_QAIC > depends on DRM_ACCEL > depends on PCI && HAS_IOMEM > depends on MHI_BUS > - depends on MMU > select CRC32 > help > Enables driver for Qualcomm's Cloud AI accelerator PCIe cards that are > diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig > index 905c82e26ce7..a5f5e250223a 100644 > --- a/drivers/firewire/Kconfig > +++ b/drivers/firewire/Kconfig > @@ -83,7 +83,7 @@ config FIREWIRE_KUNIT_SELF_ID_SEQUENCE_HELPER_TEST > > config FIREWIRE_OHCI > tristate "OHCI-1394 controllers" > - depends on PCI && FIREWIRE && MMU > + depends on PCI && FIREWIRE > help > Enable this driver if you have a FireWire controller based > on the OHCI specification. For all practical purposes, this > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index 89d00265d578..831bd384f1fd 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -393,7 +393,7 @@ source "drivers/gpu/drm/imagination/Kconfig" > > config DRM_HYPERV > 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_KMS_HELPER > select DRM_GEM_SHMEM_HELPER > diff --git a/drivers/gpu/drm/amd/amdgpu/Kconfig > b/drivers/gpu/drm/amd/amdgpu/Kconfig > index 7b95221d2f3d..64e603f971b8 100644 > --- a/drivers/gpu/drm/amd/amdgpu/Kconfig > +++ b/drivers/gpu/drm/amd/amdgpu/Kconfig > @@ -2,7 +2,7 @@ > > config DRM_AMDGPU > tristate "AMD GPU" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > depends on !UML > select FW_LOADER > select DRM_CLIENT > @@ -68,7 +68,6 @@ config DRM_AMDGPU_CIK > config DRM_AMDGPU_USERPTR > bool "Always enable userptr write support" > depends on DRM_AMDGPU > - depends on MMU > select HMM_MIRROR > select MMU_NOTIFIER > help > diff --git a/drivers/gpu/drm/ast/Kconfig b/drivers/gpu/drm/ast/Kconfig > index da0663542e8a..242fbccdf844 100644 > --- a/drivers/gpu/drm/ast/Kconfig > +++ b/drivers/gpu/drm/ast/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > config DRM_AST > tristate "AST server chips" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > select DRM_CLIENT_SELECTION > select DRM_GEM_SHMEM_HELPER > select DRM_KMS_HELPER > diff --git a/drivers/gpu/drm/gma500/Kconfig b/drivers/gpu/drm/gma500/Kconfig > index 1613e51eff2d..e4c80e1a6da5 100644 > --- a/drivers/gpu/drm/gma500/Kconfig > +++ b/drivers/gpu/drm/gma500/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > config DRM_GMA500 > 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 > depends on ACPI_VIDEO || !ACPI > depends on I2C > diff --git a/drivers/gpu/drm/hisilicon/hibmc/Kconfig > b/drivers/gpu/drm/hisilicon/hibmc/Kconfig > index 98d77d74999d..d1f3f5793f34 100644 > --- a/drivers/gpu/drm/hisilicon/hibmc/Kconfig > +++ b/drivers/gpu/drm/hisilicon/hibmc/Kconfig > @@ -2,7 +2,6 @@ > config DRM_HISI_HIBMC > tristate "DRM Support for Hisilicon Hibmc" > depends on DRM && PCI > - depends on MMU > select DRM_CLIENT_SELECTION > select DRM_DISPLAY_HELPER > select DRM_DISPLAY_DP_HELPER > diff --git a/drivers/gpu/drm/loongson/Kconfig > b/drivers/gpu/drm/loongson/Kconfig > index 552edfec7afb..d739d51cf54c 100644 > --- a/drivers/gpu/drm/loongson/Kconfig > +++ b/drivers/gpu/drm/loongson/Kconfig > @@ -2,7 +2,7 @@ > > config DRM_LOONGSON > tristate "DRM support for Loongson Graphics" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > depends on LOONGARCH || MIPS || COMPILE_TEST > select DRM_CLIENT_SELECTION > select DRM_KMS_HELPER > diff --git a/drivers/gpu/drm/mgag200/Kconfig b/drivers/gpu/drm/mgag200/Kconfig > index 412dcbea0e2d..a962ae564a75 100644 > --- a/drivers/gpu/drm/mgag200/Kconfig > +++ b/drivers/gpu/drm/mgag200/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > config DRM_MGAG200 > tristate "Matrox G200" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > select DRM_CLIENT_SELECTION > select DRM_GEM_SHMEM_HELPER > select DRM_KMS_HELPER > diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig > index 9ba89b35d1a2..4fae780f7d78 100644 > --- a/drivers/gpu/drm/nouveau/Kconfig > +++ b/drivers/gpu/drm/nouveau/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > config DRM_NOUVEAU > tristate "Nouveau (NVIDIA) cards" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > depends on (ACPI_VIDEO && ACPI_WMI && MXM_WMI) || !(ACPI && X86) > depends on BACKLIGHT_CLASS_DEVICE > select IOMMU_API > @@ -86,7 +86,6 @@ config DRM_NOUVEAU_SVM > bool "(EXPERIMENTAL) Enable SVM (Shared Virtual Memory) support" > depends on DEVICE_PRIVATE > depends on DRM_NOUVEAU > - depends on MMU > depends on STAGING > select HMM_MIRROR > select MMU_NOTIFIER > diff --git a/drivers/gpu/drm/qxl/Kconfig b/drivers/gpu/drm/qxl/Kconfig > index 69427eb8bed2..d8f24bcae34b 100644 > --- a/drivers/gpu/drm/qxl/Kconfig > +++ b/drivers/gpu/drm/qxl/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > config DRM_QXL > tristate "QXL virtual GPU" > - depends on DRM && PCI && MMU && HAS_IOPORT > + depends on DRM && PCI && HAS_IOPORT > select DRM_CLIENT_SELECTION > select DRM_KMS_HELPER > select DRM_TTM > diff --git a/drivers/gpu/drm/radeon/Kconfig b/drivers/gpu/drm/radeon/Kconfig > index f51bace9555d..c479f0c0dd5c 100644 > --- a/drivers/gpu/drm/radeon/Kconfig > +++ b/drivers/gpu/drm/radeon/Kconfig > @@ -2,7 +2,7 @@ > > config DRM_RADEON > tristate "ATI Radeon" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > depends on AGP || !AGP > select FW_LOADER > select DRM_CLIENT_SELECTION > diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig > index 95c1457d7730..c50186a65464 100644 > --- a/drivers/gpu/drm/tiny/Kconfig > +++ b/drivers/gpu/drm/tiny/Kconfig > @@ -37,7 +37,7 @@ config DRM_BOCHS > > config DRM_CIRRUS_QEMU > tristate "Cirrus driver for QEMU emulated device" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > select DRM_CLIENT_SELECTION > select DRM_KMS_HELPER > select DRM_GEM_SHMEM_HELPER > diff --git a/drivers/gpu/drm/vmwgfx/Kconfig b/drivers/gpu/drm/vmwgfx/Kconfig > index 6c3c2922ae8b..aab646b91ca9 100644 > --- a/drivers/gpu/drm/vmwgfx/Kconfig > +++ b/drivers/gpu/drm/vmwgfx/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0 > config DRM_VMWGFX > tristate "DRM driver for VMware Virtual GPU" > - depends on DRM && PCI && MMU > + depends on DRM && PCI > depends on (X86 && HYPERVISOR_GUEST) || ARM64 > select DRM_CLIENT_SELECTION > select DRM_TTM > diff --git a/drivers/gpu/drm/xe/Kconfig b/drivers/gpu/drm/xe/Kconfig > index dd256b355613..bb3f34a29f4e 100644 > --- a/drivers/gpu/drm/xe/Kconfig > +++ b/drivers/gpu/drm/xe/Kconfig > @@ -1,7 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > config DRM_XE > tristate "Intel Xe Graphics" > - depends on DRM && PCI && MMU && (m || (y && KUNIT=y)) > + depends on DRM && PCI && (m || (y && KUNIT=y)) > depends on INTEL_VSEC > select INTERVAL_TREE > # we need shmfs for the swappable backing store, and in particular > diff --git a/drivers/net/ethernet/broadcom/Kconfig > b/drivers/net/ethernet/broadcom/Kconfig > index 46d07b81097f..1bcf406a9e36 100644 > --- a/drivers/net/ethernet/broadcom/Kconfig > +++ b/drivers/net/ethernet/broadcom/Kconfig > @@ -98,7 +98,6 @@ config BNX2 > config CNIC > tristate "QLogic CNIC support" > depends on PCI && (IPV6 || IPV6=n) > - depends on MMU > select BNX2 > select UIO > help > diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig > index da28295b4aac..9c0e4aaf4e8c 100644 > --- a/drivers/pci/Kconfig > +++ b/drivers/pci/Kconfig > @@ -21,6 +21,7 @@ config GENERIC_PCI_IOMAP > menuconfig PCI > bool "PCI support" > depends on HAVE_PCI > + depends on MMU > help > This option enables support for the PCI local bus, including > support for PCI-X and the foundations for PCI Express support. > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index 186858293df5..206f271e869a 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -4257,7 +4257,7 @@ unsigned long __weak pci_address_to_pio(phys_addr_t > address) > #ifndef pci_remap_iospace > 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; > > if (!(res->flags & IORESOURCE_IO)) > @@ -4290,7 +4290,7 @@ EXPORT_SYMBOL(pci_remap_iospace); > */ > 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; > > vunmap_range(vaddr, vaddr + resource_size(res)); > diff --git a/drivers/scsi/bnx2fc/Kconfig b/drivers/scsi/bnx2fc/Kconfig > index ecdc0f0f4f4e..3cf7e08df809 100644 > --- a/drivers/scsi/bnx2fc/Kconfig > +++ b/drivers/scsi/bnx2fc/Kconfig > @@ -5,7 +5,6 @@ config SCSI_BNX2X_FCOE > depends on (IPV6 || IPV6=n) > depends on LIBFC > depends on LIBFCOE > - depends on MMU > select NETDEVICES > select ETHERNET > select NET_VENDOR_BROADCOM > diff --git a/drivers/scsi/bnx2i/Kconfig b/drivers/scsi/bnx2i/Kconfig > index 0cc06c2ce0b8..75ace2302fed 100644 > --- a/drivers/scsi/bnx2i/Kconfig > +++ b/drivers/scsi/bnx2i/Kconfig > @@ -4,7 +4,6 @@ config SCSI_BNX2_ISCSI > depends on NET > depends on PCI > depends on (IPV6 || IPV6=n) > - depends on MMU > select SCSI_ISCSI_ATTRS > select NETDEVICES > select ETHERNET > diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig > index c3bcb6911c53..2b0172f54665 100644 > --- a/drivers/vfio/pci/Kconfig > +++ b/drivers/vfio/pci/Kconfig > @@ -1,6 +1,6 @@ > # SPDX-License-Identifier: GPL-2.0-only > menu "VFIO support for PCI devices" > - depends on PCI && MMU > + depends on PCI > > config VFIO_PCI_CORE > tristate > -- > 2.39.5 >