ARM: tegra: iovmm: Make IOMMU/IOVMM selectable in Kconfig
Hiroshi DOYU [Wed, 11 Jul 2012 13:51:24 +0000 (16:51 +0300)]
This patch enables to replace iovmm*.ko family with
tegra-{smmu,gart}.ko if needed in kernel config. To use IOMMU as
backend engine, Enable TEGRA_IOMMU_{GART,SMMU} under IOMMU in config,
and automatically disable IOVMM.

IOVMM is equivalent to IOMMU_API. TEGRA_IOVMM_GART is equivalent to
TEGRA_IOMMU_GART. TEGRA_IOVMM_SMMU is equivalent to TEGRA_IOMMU_SMMU.

Change-Id: I73408e927eb3f21e1db4e73700aaf415f4949166
Signed-off-by: Hiroshi DOYU <hdoyu@nvidia.com>
Reviewed-on: http://git-master/r/115011
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>

arch/arm/mach-tegra/Kconfig

index d43e6f8..e94c2f0 100644 (file)
@@ -296,7 +296,7 @@ config TEGRA_CORE_DVFS
 
 config TEGRA_IOVMM_GART
        bool "Enable I/O virtual memory manager for GART"
-       depends on ARCH_TEGRA_2x_SOC
+       depends on ARCH_TEGRA_2x_SOC && !TEGRA_IOMMU_GART
        default y
        select TEGRA_IOVMM
        help
@@ -307,7 +307,7 @@ config TEGRA_IOVMM_GART
 
 config TEGRA_IOVMM_SMMU
        bool "Enable I/O virtual memory manager for SMMU"
-       depends on ARCH_TEGRA_3x_SOC
+       depends on ARCH_TEGRA_3x_SOC && !TEGRA_IOMMU_SMMU
        default y
        select TEGRA_IOVMM
        help
@@ -324,6 +324,7 @@ config TEGRA_IOVMM_SMMU_SYSFS
          Enables SMMU register access through /sys/devices/smmu/* files.
 
 config TEGRA_IOVMM
+       depends on TEGRA_IOVMM_GART || TEGRA_IOVMM_SMMU
        bool
 
 config TEGRA_AVP_KERNEL_ON_MMU
@@ -335,7 +336,7 @@ config TEGRA_AVP_KERNEL_ON_MMU
 
 config TEGRA_AVP_KERNEL_ON_SMMU
        bool "Use SMMU to relocate AVP kernel"
-       depends on TEGRA_IOVMM_SMMU
+       depends on TEGRA_IOVMM_SMMU || TEGRA_IOMMU_SMMU
        default y
        help
          Use SMMU to relocate AVP kernel (nvrm_avp.bin).