Drivers such as the Intel IPU3 ImgU driver use the IOVA library to manage
the device's own virtual address space while not implementing the IOMMU
API. Currently the IOVA library is only compiled if the IOMMU support is
enabled, resulting into a failure during linking due to missing symbols.

Fix this by defining IOVA library Kconfig bits independently of IOMMU
support configuration, and descending to the iommu directory
unconditionally during the build.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
---
 drivers/Makefile      | 2 +-
 drivers/iommu/Kconfig | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/Makefile b/drivers/Makefile
index 578f469f72fb..d9c469983592 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -56,7 +56,7 @@ obj-y                         += tty/
 obj-y                          += char/
 
 # iommu/ comes before gpu as gpu are using iommu controllers
-obj-$(CONFIG_IOMMU_SUPPORT)    += iommu/
+obj-y                          += iommu/
 
 # gpu/ comes after char for AGP vs DRM startup and after iommu
 obj-y                          += gpu/
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index d9a25715650e..d2c83e62873d 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -1,3 +1,7 @@
+# The IOVA library may also be used by non-IOMMU_API users
+config IOMMU_IOVA
+       tristate
+
 # IOMMU_API always gets selected by whoever wants it.
 config IOMMU_API
        bool
@@ -81,9 +85,6 @@ config IOMMU_DEFAULT_PASSTHROUGH
 
          If unsure, say N here.
 
-config IOMMU_IOVA
-       tristate
-
 config OF_IOMMU
        def_bool y
        depends on OF && IOMMU_API
-- 
2.11.0

Reply via email to