# SPDX-License-Identifier: GPL-2.0-only
+menuconfig VFIO
+       tristate "VFIO Non-Privileged userspace driver framework"
+       select IOMMU_API
+       select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
+       help
+         VFIO provides a framework for secure userspace device drivers.
+         See Documentation/driver-api/vfio.rst for more details.
+
+         If you don't know what to do here, say N.
+
+if VFIO
 config VFIO_IOMMU_TYPE1
        tristate
-       depends on VFIO
        default n
 
 config VFIO_IOMMU_SPAPR_TCE
        tristate
-       depends on VFIO && SPAPR_TCE_IOMMU
+       depends on SPAPR_TCE_IOMMU
        default VFIO
 
 config VFIO_SPAPR_EEH
 
 config VFIO_VIRQFD
        tristate
-       depends on VFIO
        select EVENTFD
        default n
 
-menuconfig VFIO
-       tristate "VFIO Non-Privileged userspace driver framework"
-       select IOMMU_API
-       select VFIO_IOMMU_TYPE1 if MMU && (X86 || S390 || ARM || ARM64)
-       help
-         VFIO provides a framework for secure userspace device drivers.
-         See Documentation/driver-api/vfio.rst for more details.
-
-         If you don't know what to do here, say N.
-
 config VFIO_NOIOMMU
        bool "VFIO No-IOMMU support"
-       depends on VFIO
        help
          VFIO is built on the ability to isolate devices using the IOMMU.
          Only with an IOMMU can userspace access to DMA capable devices be
 source "drivers/vfio/platform/Kconfig"
 source "drivers/vfio/mdev/Kconfig"
 source "drivers/vfio/fsl-mc/Kconfig"
+endif
+
 source "virt/lib/Kconfig"
 
 config VFIO_FSL_MC
        tristate "VFIO support for QorIQ DPAA2 fsl-mc bus devices"
-       depends on VFIO && FSL_MC_BUS
+       depends on FSL_MC_BUS
        select EVENTFD
        help
          Driver to enable support for the VFIO QorIQ DPAA2 fsl-mc
 
 
 config VFIO_MDEV
        tristate "Mediated device driver framework"
-       depends on VFIO
        default n
        help
          Provides a framework to virtualize devices.
 
 # SPDX-License-Identifier: GPL-2.0-only
 config VFIO_PCI
        tristate "VFIO support for PCI devices"
-       depends on VFIO && PCI
+       depends on PCI
        depends on MMU
        select VFIO_VIRQFD
        select IRQ_BYPASS_MANAGER
 
          If you don't know what to do here, say N.
 
+if VFIO_PCI
 config VFIO_PCI_VGA
        bool "VFIO PCI support for VGA devices"
-       depends on VFIO_PCI && X86 && VGA_ARB
+       depends on X86 && VGA_ARB
        help
          Support for VGA extension to VFIO PCI.  This exposes an additional
          region on VGA devices for accessing legacy VGA addresses used by
          If you don't know what to do here, say N.
 
 config VFIO_PCI_MMAP
-       depends on VFIO_PCI
        def_bool y if !S390
 
 config VFIO_PCI_INTX
-       depends on VFIO_PCI
        def_bool y if !S390
 
 config VFIO_PCI_IGD
        bool "VFIO PCI extensions for Intel graphics (GVT-d)"
-       depends on VFIO_PCI && X86
+       depends on X86
        default y
        help
          Support for Intel IGD specific extensions to enable direct
          and LPC bridge config space.
 
          To enable Intel IGD assignment through vfio-pci, say Y.
+
+endif
 
 # SPDX-License-Identifier: GPL-2.0-only
 config VFIO_PLATFORM
        tristate "VFIO support for platform devices"
-       depends on VFIO && (ARM || ARM64 || COMPILE_TEST)
+       depends on ARM || ARM64 || COMPILE_TEST
        select VFIO_VIRQFD
        help
          Support for platform devices with VFIO. This is required to make
 
          If you don't know what to do here, say N.
 
+if VFIO_PLATFORM
 config VFIO_AMBA
        tristate "VFIO support for AMBA devices"
-       depends on VFIO_PLATFORM && (ARM_AMBA || COMPILE_TEST)
+       depends on ARM_AMBA || COMPILE_TEST
        help
          Support for ARM AMBA devices with VFIO. This is required to make
          use of ARM AMBA devices present on the system using the VFIO
          If you don't know what to do here, say N.
 
 source "drivers/vfio/platform/reset/Kconfig"
+endif
 
 # SPDX-License-Identifier: GPL-2.0-only
 config VFIO_PLATFORM_CALXEDAXGMAC_RESET
        tristate "VFIO support for calxeda xgmac reset"
-       depends on VFIO_PLATFORM
        help
          Enables the VFIO platform driver to handle reset for Calxeda xgmac
 
 
 config VFIO_PLATFORM_AMDXGBE_RESET
        tristate "VFIO support for AMD XGBE reset"
-       depends on VFIO_PLATFORM
        help
          Enables the VFIO platform driver to handle reset for AMD XGBE
 
 
 config VFIO_PLATFORM_BCMFLEXRM_RESET
        tristate "VFIO support for Broadcom FlexRM reset"
-       depends on VFIO_PLATFORM && (ARCH_BCM_IPROC || COMPILE_TEST)
+       depends on ARCH_BCM_IPROC || COMPILE_TEST
        default ARCH_BCM_IPROC
        help
          Enables the VFIO platform driver to handle reset for Broadcom FlexRM