On Mon, Oct 23, 2023 at 04:02:11PM +0200, Arnd Bergmann wrote: > On Mon, Oct 23, 2023, at 15:23, Jason Gunthorpe wrote: > > On Mon, Oct 23, 2023 at 02:55:13PM +0200, Arnd Bergmann wrote: > >> On Mon, Oct 23, 2023, at 14:37, Joao Martins wrote: > >> > >> Are there any useful configurations with IOMMU_API but > >> not IOMMU_SUPPORT though? My first approach was actually > > > > IOMMU_SUPPORT is just the menu option in kconfig, it doesn't actually > > do anything functional as far as I can tell > > > > But you can have IOMMU_API turned on without IOMMU_SUPPORT still on > > power > > > > I think the right thing is to combine IOMMU_SUPPORT and IOMMU_API into > > the same thing. > > I've had a closer look now and I think the way it is currently > designed to be used makes some sense: IOMMU implementations almost > universally depend on both a CPU architecture and CONFIG_IOMMU_SUPPORT, > but select IOMMU_API. So if you enable IOMMU_SUPPORT on an > architecture that has no IOMMU implementations, none of the drivers > are visible and nothing happens. Similarly, almost all drivers > using the IOMMU interface depend on IOMMU_API, so they can only > be built if at least one IOMMU driver is configured. Maybe, but I don't think we need such micro-optimization. If someone selects 'enable IOMMU support' and doesn't turn on any drivers then they should still get the core API. That is how a lot of the kconfig stuff typically works in the kernel. Similarly, if they don't select 'enable IOMMU support' then they definitely shouldn't quitely get the core API turned on! > diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig > index 4a79704b164f7..2902b89a48f17 100644 > --- a/drivers/gpu/drm/nouveau/Kconfig > +++ b/drivers/gpu/drm/nouveau/Kconfig > @@ -4,7 +4,7 @@ config DRM_NOUVEAU > depends on DRM && PCI && MMU > depends on (ACPI_VIDEO && ACPI_WMI && MXM_WMI) || !(ACPI && X86) > depends on BACKLIGHT_CLASS_DEVICE > - select IOMMU_API > + depends on IOMMU_API > select FW_LOADER > select DRM_DISPLAY_DP_HELPER > select DRM_DISPLAY_HDMI_HELPER Like here, nouveau should still be compilable even if no iommu driver was selected, and it should compile on arches without iommu drivers at all. Jason