Merge remote-tracking branch 'origin/dev/k3.3-rc1-iommu' into android-tegra-nv-3.1
Rohan Somvanshi [Wed, 1 Feb 2012 10:33:06 +0000 (15:33 +0530)]
Change-Id: I9001bb291779f107bbcb593d48f9f0f734074d0e

1  2 
drivers/iommu/Kconfig
drivers/iommu/Makefile

diff --combined drivers/iommu/Kconfig
@@@ -34,7 -34,9 +34,9 @@@ config AMD_IOMM
        bool "AMD IOMMU support"
        select SWIOTLB
        select PCI_MSI
-       select PCI_IOV
+       select PCI_ATS
+       select PCI_PRI
+       select PCI_PASID
        select IOMMU_API
        depends on X86_64 && PCI && ACPI
        ---help---
@@@ -58,11 -60,24 +60,24 @@@ config AMD_IOMMU_STAT
          information to userspace via debugfs.
          If unsure, say N.
  
+ config AMD_IOMMU_V2
+       tristate "AMD IOMMU Version 2 driver (EXPERIMENTAL)"
+       depends on AMD_IOMMU && PROFILING && EXPERIMENTAL
+       select MMU_NOTIFIER
+       ---help---
+         This option enables support for the AMD IOMMUv2 features of the IOMMU
+         hardware. Select this option if you want to use devices that support
+         the the PCI PRI and PASID interface.
  # Intel IOMMU support
- config DMAR
-       bool "Support for DMA Remapping Devices"
+ config DMAR_TABLE
+       bool
+ config INTEL_IOMMU
+       bool "Support for Intel IOMMU using DMA Remapping Devices"
        depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC)
        select IOMMU_API
+       select DMAR_TABLE
        help
          DMA remapping (DMAR) devices support enables independent address
          translations for Direct Memory Access (DMA) from devices.
          and include PCI device scope covered by these DMA
          remapping devices.
  
- config DMAR_DEFAULT_ON
+ config INTEL_IOMMU_DEFAULT_ON
        def_bool y
-       prompt "Enable DMA Remapping Devices by default"
-       depends on DMAR
+       prompt "Enable Intel DMA Remapping Devices by default"
+       depends on INTEL_IOMMU
        help
          Selecting this option will enable a DMAR device at boot time if
          one is found. If this option is not selected, DMAR support can
          be enabled by passing intel_iommu=on to the kernel.
  
- config DMAR_BROKEN_GFX_WA
+ config INTEL_IOMMU_BROKEN_GFX_WA
        bool "Workaround broken graphics drivers (going away soon)"
-       depends on DMAR && BROKEN && X86
+       depends on INTEL_IOMMU && BROKEN && X86
        ---help---
          Current Graphics drivers tend to use physical address
          for DMA and avoid using DMA APIs. Setting this config
          to use physical addresses for DMA, at least until this
          option is removed in the 2.6.32 kernel.
  
- config DMAR_FLOPPY_WA
+ config INTEL_IOMMU_FLOPPY_WA
        def_bool y
-       depends on DMAR && X86
+       depends on INTEL_IOMMU && X86
        ---help---
          Floppy disk drivers are known to bypass DMA API calls
          thereby failing to work when IOMMU is enabled. This
          workaround will setup a 1:1 mapping for the first
          16MiB to make floppy (an ISA device) work.
  
- config INTR_REMAP
+ config IRQ_REMAP
        bool "Support for Interrupt Remapping (EXPERIMENTAL)"
        depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
+       select DMAR_TABLE
        ---help---
          Supports Interrupt remapping for IO-APIC and MSI devices.
          To use x2apic mode in the CPU's which support x2APIC enhancements or
          to support platforms with CPU's having > 8 bit APIC ID, say Y.
  
+ # OMAP IOMMU support
+ config OMAP_IOMMU
+       bool "OMAP IOMMU Support"
+       depends on ARCH_OMAP
+       select IOMMU_API
+ config OMAP_IOVMM
+       tristate "OMAP IO Virtual Memory Manager Support"
+       depends on OMAP_IOMMU
+ config OMAP_IOMMU_DEBUG
+        tristate "Export OMAP IOMMU/IOVMM internals in DebugFS"
+        depends on OMAP_IOVMM && DEBUG_FS
+        help
+          Select this to see extensive information about
+          the internal state of OMAP IOMMU/IOVMM in debugfs.
+          Say N unless you know you need this.
  config TEGRA_IOMMU_SMMU
        bool "Tegra SMMU IOMMU Support"
        depends on ARCH_TEGRA
          space through the SMMU (System Memory Management Unit)
          hardware included on Tegra SoCs.
  
 +config TEGRA_IOMMU_GART
 +      bool "Tegra GART IOMMU Support"
 +      depends on ARCH_TEGRA_2x_SOC
 +      select IOMMU_API
 +      help
 +        Enables support for remapping discontiguous physical memory
 +        shared with the operating system into contiguous I/O virtual
 +        space through the GART (Graphics Address Relocation Table)
 +        hardware included on Tegra SoCs.
 +
  endif # IOMMU_SUPPORT
diff --combined drivers/iommu/Makefile
@@@ -1,7 -1,11 +1,12 @@@
  obj-$(CONFIG_IOMMU_API) += iommu.o
  obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o msm_iommu_dev.o
  obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o
- obj-$(CONFIG_DMAR) += dmar.o iova.o intel-iommu.o
- obj-$(CONFIG_INTR_REMAP) += dmar.o intr_remapping.o
+ obj-$(CONFIG_AMD_IOMMU_V2) += amd_iommu_v2.o
+ obj-$(CONFIG_DMAR_TABLE) += dmar.o
+ obj-$(CONFIG_INTEL_IOMMU) += iova.o intel-iommu.o
+ obj-$(CONFIG_IRQ_REMAP) += intr_remapping.o
+ obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o
+ obj-$(CONFIG_OMAP_IOVMM) += omap-iovmm.o
+ obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o
 +obj-$(CONFIG_TEGRA_IOMMU_GART) += tegra-gart.o
  obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o