diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-12 14:29:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-12 14:29:26 -0400 |
commit | e5d0c874391a500be7643d3eef9fb07171eee129 (patch) | |
tree | e584dda865c5628fbb8e59a50096a0f4c21bf2bd /arch/powerpc | |
parent | d5adf7e2db897f9d4a00be59262875ae5d9574f4 (diff) | |
parent | d6a60fc1a8187004792a01643d8af1d06a465026 (diff) |
Merge tag 'iommu-updates-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
Pull IOMMU Updates from Joerg Roedel:
"This round the updates contain:
- A new driver for the Freescale PAMU IOMMU from Varun Sethi.
This driver has cooked for a while and required changes to the
IOMMU-API and infrastructure that were already merged before.
- Updates for the ARM-SMMU driver from Will Deacon
- Various fixes, the most important one is probably a fix from Alex
Williamson for a memory leak in the VT-d page-table freeing code
In summary not all that much. The biggest part in the diffstat is the
new PAMU driver"
* tag 'iommu-updates-v3.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
intel-iommu: Fix leaks in pagetable freeing
iommu/amd: Fix resource leak in iommu_init_device()
iommu/amd: Clean up unnecessary MSI/MSI-X capability find
iommu/arm-smmu: Simplify VMID and ASID allocation
iommu/arm-smmu: Don't use VMIDs for stage-1 translations
iommu/arm-smmu: Tighten up global fault reporting
iommu/arm-smmu: Remove broken big-endian check
iommu/fsl: Remove unnecessary 'fsl-pamu' prefixes
iommu/fsl: Fix whitespace problems noticed by git-am
iommu/fsl: Freescale PAMU driver and iommu implementation.
iommu/fsl: Add additional iommu attributes required by the PAMU driver.
powerpc: Add iommu domain pointer to device archdata
iommu/exynos: Remove dead code (set_prefbuf)
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/include/asm/device.h | 3 | ||||
-rw-r--r-- | arch/powerpc/include/asm/fsl_pamu_stash.h | 39 | ||||
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.h | 5 |
3 files changed, 47 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/device.h b/arch/powerpc/include/asm/device.h index 77e97dd0c15d..38faeded7d59 100644 --- a/arch/powerpc/include/asm/device.h +++ b/arch/powerpc/include/asm/device.h | |||
@@ -28,6 +28,9 @@ struct dev_archdata { | |||
28 | void *iommu_table_base; | 28 | void *iommu_table_base; |
29 | } dma_data; | 29 | } dma_data; |
30 | 30 | ||
31 | #ifdef CONFIG_IOMMU_API | ||
32 | void *iommu_domain; | ||
33 | #endif | ||
31 | #ifdef CONFIG_SWIOTLB | 34 | #ifdef CONFIG_SWIOTLB |
32 | dma_addr_t max_direct_dma_addr; | 35 | dma_addr_t max_direct_dma_addr; |
33 | #endif | 36 | #endif |
diff --git a/arch/powerpc/include/asm/fsl_pamu_stash.h b/arch/powerpc/include/asm/fsl_pamu_stash.h new file mode 100644 index 000000000000..caa1b21c25cd --- /dev/null +++ b/arch/powerpc/include/asm/fsl_pamu_stash.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify | ||
3 | * it under the terms of the GNU General Public License, version 2, as | ||
4 | * published by the Free Software Foundation. | ||
5 | * | ||
6 | * This program is distributed in the hope that it will be useful, | ||
7 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
8 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
9 | * GNU General Public License for more details. | ||
10 | * | ||
11 | * You should have received a copy of the GNU General Public License | ||
12 | * along with this program; if not, write to the Free Software | ||
13 | * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
14 | * | ||
15 | * Copyright (C) 2013 Freescale Semiconductor, Inc. | ||
16 | * | ||
17 | */ | ||
18 | |||
19 | #ifndef __FSL_PAMU_STASH_H | ||
20 | #define __FSL_PAMU_STASH_H | ||
21 | |||
22 | /* cache stash targets */ | ||
23 | enum pamu_stash_target { | ||
24 | PAMU_ATTR_CACHE_L1 = 1, | ||
25 | PAMU_ATTR_CACHE_L2, | ||
26 | PAMU_ATTR_CACHE_L3, | ||
27 | }; | ||
28 | |||
29 | /* | ||
30 | * This attribute allows configuring stashig specific parameters | ||
31 | * in the PAMU hardware. | ||
32 | */ | ||
33 | |||
34 | struct pamu_stash_attribute { | ||
35 | u32 cpu; /* cpu number */ | ||
36 | u32 cache; /* cache to stash to: L1,L2,L3 */ | ||
37 | }; | ||
38 | |||
39 | #endif /* __FSL_PAMU_STASH_H */ | ||
diff --git a/arch/powerpc/sysdev/fsl_pci.h b/arch/powerpc/sysdev/fsl_pci.h index defc422a375f..8d455df58471 100644 --- a/arch/powerpc/sysdev/fsl_pci.h +++ b/arch/powerpc/sysdev/fsl_pci.h | |||
@@ -16,6 +16,11 @@ | |||
16 | 16 | ||
17 | struct platform_device; | 17 | struct platform_device; |
18 | 18 | ||
19 | |||
20 | /* FSL PCI controller BRR1 register */ | ||
21 | #define PCI_FSL_BRR1 0xbf8 | ||
22 | #define PCI_FSL_BRR1_VER 0xffff | ||
23 | |||
19 | #define PCIE_LTSSM 0x0404 /* PCIE Link Training and Status */ | 24 | #define PCIE_LTSSM 0x0404 /* PCIE Link Training and Status */ |
20 | #define PCIE_LTSSM_L0 0x16 /* L0 state */ | 25 | #define PCIE_LTSSM_L0 0x16 /* L0 state */ |
21 | #define PCIE_IP_REV_2_2 0x02080202 /* PCIE IP block version Rev2.2 */ | 26 | #define PCIE_IP_REV_2_2 0x02080202 /* PCIE IP block version Rev2.2 */ |