aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-07-22 19:39:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-22 19:39:42 -0400
commit6d16d6d9bb6f93e6f8506cfb3e91795d6443d54f (patch)
tree92a1c9e4b645fa6d1fffedaeb56141b66f847320
parent431bf99d26157d56689e5de65bd27ce9f077fc3f (diff)
parentb395fb36d59e17b9335805c10fa30fc51c8a94c6 (diff)
Merge branch 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: iommu/core: Fix build with INTR_REMAP=y && CONFIG_DMAR=n iommu/amd: Don't use MSI address range for DMA addresses iommu/amd: Move missing parts to drivers/iommu iommu: Move iommu Kconfig entries to submenu x86/ia64: intel-iommu: move to drivers/iommu/ x86: amd_iommu: move to drivers/iommu/ msm: iommu: move to drivers/iommu/ drivers: iommu: move to a dedicated folder x86/amd-iommu: Store device alias as dev_data pointer x86/amd-iommu: Search for existind dev_data before allocting a new one x86/amd-iommu: Allow dev_data->alias to be NULL x86/amd-iommu: Use only dev_data in low-level domain attach/detach functions x86/amd-iommu: Use only dev_data for dte and iotlb flushing routines x86/amd-iommu: Store ATS state in dev_data x86/amd-iommu: Store devid in dev_data x86/amd-iommu: Introduce global dev_data_list x86/amd-iommu: Remove redundant device_flush_dte() calls iommu-api: Add missing header file Fix up trivial conflicts (independent additions close to each other) in drivers/Makefile and include/linux/pci.h
-rw-r--r--arch/arm/mach-msm/Kconfig19
-rw-r--r--arch/arm/mach-msm/Makefile2
-rw-r--r--arch/ia64/Kconfig24
-rw-r--r--arch/x86/Kconfig79
-rw-r--r--arch/x86/kernel/Makefile1
-rw-r--r--drivers/Kconfig2
-rw-r--r--drivers/Makefile1
-rw-r--r--drivers/base/Makefile1
-rw-r--r--drivers/iommu/Kconfig110
-rw-r--r--drivers/iommu/Makefile5
-rw-r--r--drivers/iommu/amd_iommu.c (renamed from arch/x86/kernel/amd_iommu.c)314
-rw-r--r--drivers/iommu/amd_iommu_init.c (renamed from arch/x86/kernel/amd_iommu_init.c)8
-rw-r--r--drivers/iommu/amd_iommu_proto.h (renamed from arch/x86/include/asm/amd_iommu_proto.h)2
-rw-r--r--drivers/iommu/amd_iommu_types.h (renamed from arch/x86/include/asm/amd_iommu_types.h)9
-rw-r--r--drivers/iommu/dmar.c (renamed from drivers/pci/dmar.c)0
-rw-r--r--drivers/iommu/intel-iommu.c (renamed from drivers/pci/intel-iommu.c)1
-rw-r--r--drivers/iommu/intr_remapping.c (renamed from drivers/pci/intr_remapping.c)1
-rw-r--r--drivers/iommu/intr_remapping.h (renamed from drivers/pci/intr_remapping.h)0
-rw-r--r--drivers/iommu/iommu.c (renamed from drivers/base/iommu.c)0
-rw-r--r--drivers/iommu/iova.c (renamed from drivers/pci/iova.c)0
-rw-r--r--drivers/iommu/msm_iommu.c (renamed from arch/arm/mach-msm/iommu.c)0
-rw-r--r--drivers/iommu/msm_iommu_dev.c (renamed from arch/arm/mach-msm/iommu_dev.c)0
-rw-r--r--drivers/pci/Makefile5
-rw-r--r--drivers/pci/pci.h2
-rw-r--r--include/linux/amd-iommu.h (renamed from arch/x86/include/asm/amd_iommu.h)0
-rw-r--r--include/linux/iommu.h2
-rw-r--r--include/linux/pci.h11
27 files changed, 332 insertions, 267 deletions
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index 1516896e8d17..888e92502e15 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -148,22 +148,6 @@ config MACH_MSM8960_RUMI3
148 148
149endmenu 149endmenu
150 150
151config MSM_IOMMU
152 bool "MSM IOMMU Support"
153 depends on ARCH_MSM8X60 || ARCH_MSM8960
154 select IOMMU_API
155 default n
156 help
157 Support for the IOMMUs found on certain Qualcomm SOCs.
158 These IOMMUs allow virtualization of the address space used by most
159 cores within the multimedia subsystem.
160
161 If unsure, say N here.
162
163config IOMMU_PGTABLES_L2
164 def_bool y
165 depends on MSM_IOMMU && MMU && SMP && CPU_DCACHE_DISABLE=n
166
167config MSM_DEBUG_UART 151config MSM_DEBUG_UART
168 int 152 int
169 default 1 if MSM_DEBUG_UART1 153 default 1 if MSM_DEBUG_UART1
@@ -205,9 +189,6 @@ config MSM_GPIOMUX
205config MSM_V2_TLMM 189config MSM_V2_TLMM
206 bool 190 bool
207 191
208config IOMMU_API
209 bool
210
211config MSM_SCM 192config MSM_SCM
212 bool 193 bool
213endif 194endif
diff --git a/arch/arm/mach-msm/Makefile b/arch/arm/mach-msm/Makefile
index 9519fd28a025..b70658c5ae00 100644
--- a/arch/arm/mach-msm/Makefile
+++ b/arch/arm/mach-msm/Makefile
@@ -3,7 +3,7 @@ obj-y += clock.o
3obj-$(CONFIG_DEBUG_FS) += clock-debug.o 3obj-$(CONFIG_DEBUG_FS) += clock-debug.o
4 4
5obj-$(CONFIG_MSM_VIC) += irq-vic.o 5obj-$(CONFIG_MSM_VIC) += irq-vic.o
6obj-$(CONFIG_MSM_IOMMU) += iommu.o iommu_dev.o devices-iommu.o 6obj-$(CONFIG_MSM_IOMMU) += devices-iommu.o
7 7
8obj-$(CONFIG_ARCH_MSM7X00A) += dma.o irq.o acpuclock-arm11.o 8obj-$(CONFIG_ARCH_MSM7X00A) += dma.o irq.o acpuclock-arm11.o
9obj-$(CONFIG_ARCH_MSM7X30) += dma.o 9obj-$(CONFIG_ARCH_MSM7X30) += dma.o
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 38280ef4a2af..7336ba653b8f 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -627,27 +627,6 @@ source "drivers/pci/hotplug/Kconfig"
627 627
628source "drivers/pcmcia/Kconfig" 628source "drivers/pcmcia/Kconfig"
629 629
630config DMAR
631 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
632 depends on IA64_GENERIC && ACPI && EXPERIMENTAL
633 help
634 DMA remapping (DMAR) devices support enables independent address
635 translations for Direct Memory Access (DMA) from devices.
636 These DMA remapping devices are reported via ACPI tables
637 and include PCI device scope covered by these DMA
638 remapping devices.
639
640config DMAR_DEFAULT_ON
641 def_bool y
642 prompt "Enable DMA Remapping Devices by default"
643 depends on DMAR
644 help
645 Selecting this option will enable a DMAR device at boot time if
646 one is found. If this option is not selected, DMAR support can
647 be enabled by passing intel_iommu=on to the kernel. It is
648 recommended you say N here while the DMAR code remains
649 experimental.
650
651endmenu 630endmenu
652 631
653endif 632endif
@@ -681,6 +660,3 @@ source "lib/Kconfig"
681 660
682config IOMMU_HELPER 661config IOMMU_HELPER
683 def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB) 662 def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
684
685config IOMMU_API
686 def_bool (DMAR)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 37357a599dca..7d45601b27e8 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -680,33 +680,6 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT
680 Calgary anyway, pass 'iommu=calgary' on the kernel command line. 680 Calgary anyway, pass 'iommu=calgary' on the kernel command line.
681 If unsure, say Y. 681 If unsure, say Y.
682 682
683config AMD_IOMMU
684 bool "AMD IOMMU support"
685 select SWIOTLB
686 select PCI_MSI
687 select PCI_IOV
688 depends on X86_64 && PCI && ACPI
689 ---help---
690 With this option you can enable support for AMD IOMMU hardware in
691 your system. An IOMMU is a hardware component which provides
692 remapping of DMA memory accesses from devices. With an AMD IOMMU you
693 can isolate the the DMA memory of different devices and protect the
694 system from misbehaving device drivers or hardware.
695
696 You can find out if your system has an AMD IOMMU if you look into
697 your BIOS for an option to enable it or if you have an IVRS ACPI
698 table.
699
700config AMD_IOMMU_STATS
701 bool "Export AMD IOMMU statistics to debugfs"
702 depends on AMD_IOMMU
703 select DEBUG_FS
704 ---help---
705 This option enables code in the AMD IOMMU driver to collect various
706 statistics about whats happening in the driver and exports that
707 information to userspace via debugfs.
708 If unsure, say N.
709
710# need this always selected by IOMMU for the VIA workaround 683# need this always selected by IOMMU for the VIA workaround
711config SWIOTLB 684config SWIOTLB
712 def_bool y if X86_64 685 def_bool y if X86_64
@@ -720,9 +693,6 @@ config SWIOTLB
720config IOMMU_HELPER 693config IOMMU_HELPER
721 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) 694 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
722 695
723config IOMMU_API
724 def_bool (AMD_IOMMU || DMAR)
725
726config MAXSMP 696config MAXSMP
727 bool "Enable Maximum number of SMP Processors and NUMA Nodes" 697 bool "Enable Maximum number of SMP Processors and NUMA Nodes"
728 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL 698 depends on X86_64 && SMP && DEBUG_KERNEL && EXPERIMENTAL
@@ -1942,55 +1912,6 @@ config PCI_CNB20LE_QUIRK
1942 1912
1943 You should say N unless you know you need this. 1913 You should say N unless you know you need this.
1944 1914
1945config DMAR
1946 bool "Support for DMA Remapping Devices (EXPERIMENTAL)"
1947 depends on PCI_MSI && ACPI && EXPERIMENTAL
1948 help
1949 DMA remapping (DMAR) devices support enables independent address