forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branches 'arm/exynos', 'arm/renesas', 'arm/rockchip', 'arm/omap…
…', 'arm/mediatek', 'arm/tegra', 'arm/qcom', 'arm/smmu', 'ppc/pamu', 'x86/vt-d', 'x86/amd', 's390' and 'core' into next
- Loading branch information
Showing
41 changed files
with
2,881 additions
and
1,233 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
* QCOM IOMMU v1 Implementation | ||
|
||
Qualcomm "B" family devices which are not compatible with arm-smmu have | ||
a similar looking IOMMU but without access to the global register space, | ||
and optionally requiring additional configuration to route context irqs | ||
to non-secure vs secure interrupt line. | ||
|
||
** Required properties: | ||
|
||
- compatible : Should be one of: | ||
|
||
"qcom,msm8916-iommu" | ||
|
||
Followed by "qcom,msm-iommu-v1". | ||
|
||
- clock-names : Should be a pair of "iface" (required for IOMMUs | ||
register group access) and "bus" (required for | ||
the IOMMUs underlying bus access). | ||
|
||
- clocks : Phandles for respective clocks described by | ||
clock-names. | ||
|
||
- #address-cells : must be 1. | ||
|
||
- #size-cells : must be 1. | ||
|
||
- #iommu-cells : Must be 1. Index identifies the context-bank #. | ||
|
||
- ranges : Base address and size of the iommu context banks. | ||
|
||
- qcom,iommu-secure-id : secure-id. | ||
|
||
- List of sub-nodes, one per translation context bank. Each sub-node | ||
has the following required properties: | ||
|
||
- compatible : Should be one of: | ||
- "qcom,msm-iommu-v1-ns" : non-secure context bank | ||
- "qcom,msm-iommu-v1-sec" : secure context bank | ||
- reg : Base address and size of context bank within the iommu | ||
- interrupts : The context fault irq. | ||
|
||
** Optional properties: | ||
|
||
- reg : Base address and size of the SMMU local base, should | ||
be only specified if the iommu requires configuration | ||
for routing of context bank irq's to secure vs non- | ||
secure lines. (Ie. if the iommu contains secure | ||
context banks) | ||
|
||
|
||
** Examples: | ||
|
||
apps_iommu: iommu@1e20000 { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
#iommu-cells = <1>; | ||
compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; | ||
ranges = <0 0x1e20000 0x40000>; | ||
reg = <0x1ef0000 0x3000>; | ||
clocks = <&gcc GCC_SMMU_CFG_CLK>, | ||
<&gcc GCC_APSS_TCU_CLK>; | ||
clock-names = "iface", "bus"; | ||
qcom,iommu-secure-id = <17>; | ||
|
||
// mdp_0: | ||
iommu-ctx@4000 { | ||
compatible = "qcom,msm-iommu-v1-ns"; | ||
reg = <0x4000 0x1000>; | ||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
}; | ||
|
||
// venus_ns: | ||
iommu-ctx@5000 { | ||
compatible = "qcom,msm-iommu-v1-sec"; | ||
reg = <0x5000 0x1000>; | ||
interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>; | ||
}; | ||
}; | ||
|
||
gpu_iommu: iommu@1f08000 { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
#iommu-cells = <1>; | ||
compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1"; | ||
ranges = <0 0x1f08000 0x10000>; | ||
clocks = <&gcc GCC_SMMU_CFG_CLK>, | ||
<&gcc GCC_GFX_TCU_CLK>; | ||
clock-names = "iface", "bus"; | ||
qcom,iommu-secure-id = <18>; | ||
|
||
// gfx3d_user: | ||
iommu-ctx@1000 { | ||
compatible = "qcom,msm-iommu-v1-ns"; | ||
reg = <0x1000 0x1000>; | ||
interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>; | ||
}; | ||
|
||
// gfx3d_priv: | ||
iommu-ctx@2000 { | ||
compatible = "qcom,msm-iommu-v1-ns"; | ||
reg = <0x2000 0x1000>; | ||
interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>; | ||
}; | ||
}; | ||
|
||
... | ||
|
||
venus: video-codec@1d00000 { | ||
... | ||
iommus = <&apps_iommu 5>; | ||
}; | ||
|
||
mdp: mdp@1a01000 { | ||
... | ||
iommus = <&apps_iommu 4>; | ||
}; | ||
|
||
gpu@01c00000 { | ||
... | ||
iommus = <&gpu_iommu 1>, <&gpu_iommu 2>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10940,6 +10940,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel.g | |
S: Supported | ||
F: arch/hexagon/ | ||
|
||
QUALCOMM IOMMU | ||
M: Rob Clark <[email protected]> | ||
L: [email protected] | ||
L: [email protected] | ||
S: Maintained | ||
F: drivers/iommu/qcom_iommu.c | ||
|
||
QUALCOMM VENUS VIDEO ACCELERATOR DRIVER | ||
M: Stanimir Varbanov <[email protected]> | ||
L: [email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.