MT8173 IOMMU SUPPORT
Subsystems (6)
Yong Wu
maintainerv10 cover MT8173 IOMMU SUPPORT
This patch set adds support for m4u(Multimedia Memory Management Unit),
Currently it only support the m4u with 2 levels of pagetable on mt8173.
It's based on Robin Murphy's Short-descriptor v3[1].
Please check the hardware block diagram of Mediatek IOMMU.
m4u (Multimedia Memory Management Unit)
|
SMI Common(Smart Multimedia Interface Common)
|
+----------------+-------
| |
| |
SMI larb0 SMI larb1 ... SoCs have several SMI local arbiter(larb).
(display) (vdec)
| |
| |
+-----+-----+ +----+----+
| | | | | |
| | |... | | | ... There are different ports in each larb.
| | | | | |
OVL0 RDMA0 WDMA0 MC PP VLD As above, The Multimedia HW will go through SMI and M4U while it
access EMI. SMI is a bridge between m4u and the Multimedia HW. It contain smi local arbiter and smi common. It will control whether the Multimedia HW should go though the m4u for translation or bypass it and talk directly with EMI. And also SMI help control the power domain and clocks for each local arbiter.
Normally we specify a local arbiter(larb) for each multimedia HW
like display, video decode, and camera. And there are different ports in each larb. Take a example, There are many ports like MC, PP, VLD in the video decode local arbiter, all these ports are according to the video HW.
[1]: http://thread.gmane.org/gmane.linux.kernel.iommu/12007
v10:
- Add some missing includes file following Guenter's suggestion.
v9: http://lists.linuxfoundation.org/pipermail/iommu/2016-February/015713.html
- rebase onto Robin's Short-descriptor v3.
- add the Acks and other tags for all the patchs.(No change the code.)
v8: http://thread.gmane.org/gmane.linux.kernel.iommu/11974
- rebase onto v4.5-rc1.
- add depends on (ARM || ARM64) for MTK_IOMMU in Kconfig to avoid build fail in other ARCHs.
- delete COHERENCE_EN bit.
- delete a *if* while config iommu information since the iommu is always enabled currently.
v7: http://lists.linuxfoundation.org/pipermail/iommu/2015-December/015214.html
- rebase onto Robin's short v2:
http://lists.linuxfoundation.org/pipermail/iommu/2015-December/015210.html
- Adjust the iommu probe sequence to meet the expectant flow that the iommu core help create the domain.
- use component additional data instead of the interface mtk_smi_config_port.
- reconstruct the SMI help function.
v6: http://lists.linuxfoundation.org/pipermail/iommu/2015-December/015105.html
-rebase onto v4.4-rc1.
-Use Robin's reposting Short-decriptor.
http://lists.linuxfoundation.org/pipermail/iommu/2015-December/015088.html
-Add component for m4u and smi since m4u should depend on smi-larb.
The master device is the m4u device, and the client one is the smi-larb device.
-Change mtk iommu-cells from 2 to 1 since the mapping between larb and port is
fixed. Compare this with v2, we redefine MTK_M4U_ID following this register REG_MMU_INT_ID.
-About SMI: Add some help funcion and rename some function and struction for
more readable.
These three above are according to Daniel Kurtz's suggestion.
v5: http://lists.linuxfoundation.org/pipermail/iommu/2015-October/014586.html
-rebase onto v4.3-rc1.
-About MTK iommu: don't return the same domain while domain_alloc, change the
domain's flow according to the M4U HW.
-About Short-descriptor: Improve many error-handles, NO_PERMS quirk, and
add TLBI_MAP quirk following Will's Suggestion; Add io-pgtable don't use dma_to_phys; Add a loop in arm_short_unmap since iommu_unmap don't care the physical address align.
-About SMI driver: Add a help funcion for some similar code. Add PROPRE_DEFER
for power-domain as MTK SCPSYS is module_init currently.
v4: http://lists.linuxfoundation.org/pipermail/iommu/2015-August/013903.html
-use only one iommu domain here based on the Robin's DMA-v5:
http://lists.linuxfoundation.org/pipermail/iommu/2015-July/013900.html
-remove flush_pgtable.
-change writel to writel_relaxed.
-about Short-descriptor: move dma_map_single into io-pgtable-arm-short.
Improve the flow of free pgtable and add NO_XN+NO_PERMS quirk following Will's suggestion.
-Change two sytle issues in dtsi according to Daniel's suggestion.
v3: http://lists.linuxfoundation.org/pipermail/iommu/2015-July/013632.html
-rebased onto v4.2-rc1
-improve iommu flow based on the Robin's DMA v3:
http://lists.linuxfoundation.org/pipermail/iommu/2015-July/013597.html
-change mtk iommu-cells from 1 to 2.
-about Short-descriptor: add split function; add self-test; add some other bits like nG,
XN according to the spec; add SUPERSECTION and MTK quirk; move io_pgtable_ops_to_pgtable out from LPAE to the header file.
-about SMI: move from driver/soc/mediatek to driver/memory; change the clocks from
clk[2] to clk_apb and clk_smi; add pm.
-add iommu suspend/resume to backup/restore register.
v2: http://lists.linuxfoundation.org/pipermail/iommu/2015-May/013028.html
-add arm short descriptor support.
-seperate smi common from smi and change the clock-names according
to smi HW.
-delete the hardcode of the port-names in mt8173.
replace this with larb-portes-nr in dtsi.
-fix some coding style issues.
v1: http://lists.infradead.org/pipermail/linux-mediatek/2015-March/000058.html
-initial version.
Yong Wu (5):
dt-bindings: iommu: Add binding for mediatek IOMMU
dt-bindings: mediatek: Add smi dts binding
memory: mediatek: Add SMI driver iommu/mediatek: Add mt8173 IOMMU driver
dts: mt8173: Add iommu/smi nodes for mt8173
.../devicetree/bindings/iommu/mediatek,iommu.txt | 68 ++ .../memory-controllers/mediatek,smi-common.txt | 24 + .../memory-controllers/mediatek,smi-larb.txt | 25 + arch/arm64/boot/dts/mediatek/mt8173.dtsi | 81 +++ drivers/iommu/Kconfig | 16 + drivers/iommu/Makefile | 1 + drivers/iommu/mtk_iommu.c | 737 +++++++++++++++++++++ drivers/memory/Kconfig | 8 + drivers/memory/Makefile | 1 + drivers/memory/mtk-smi.c | 273 ++++++++ include/dt-bindings/memory/mt8173-larb-port.h | 111 ++++ include/soc/mediatek/smi.h | 58 ++ 12 files changed, 1403 insertions(+) create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt create mode 100644 drivers/iommu/mtk_iommu.c create mode 100644 drivers/memory/mtk-smi.c create mode 100644 include/dt-bindings/memory/mt8173-larb-port.h create mode 100644 include/soc/mediatek/smi.h
Signature · 1 line
1.8.1.1.dirty
Yong Wu
maintainerPATCH v10 1/5 dt-bindings: iommu: Add binding for mediatek IOMMU
This patch add mediatek iommu dts binding document.
--- .../devicetree/bindings/iommu/mediatek,iommu.txt | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
Documentation/devicetree/bindings/iommu/mediatek,iommu.txt new file +68 -0
@@ -0,0 +1,68 @@ +* Mediatek IOMMU Architecture Implementation + + Some Mediatek SOCs contain a Multimedia Memory Management Unit (M4U) which +uses the ARM Short-Descriptor translation table format for address translation. + + About the M4U Hardware Block Diagram, please check below: + + EMI (External Memory Interface) + | + m4u (Multimedia Memory Management Unit) + | + SMI Common(Smart Multimedia Interface Common) + | + +----------------+------- + | | + | | + SMI larb0 SMI larb1 ... SoCs have several SMI local arbiter(larb). + (display) (vdec) + | | + | | + +-----+-----+ +----+----+ + | | | | | | + | | |... | | | ... There are different ports in each larb. + | | | | | | +OVL0 RDMA0 WDMA0 MC PP VLD + + As above, The Multimedia HW will go through SMI and M4U while it +access EMI. SMI is a bridge between m4u and the Multimedia HW. It contain +smi local arbiter and smi common. It will control whether the Multimedia +HW should go though the m4u for translation or bypass it and talk +directly with EMI. And also SMI help control the power domain and clocks for +each local arbiter. + Normally we specify a local arbiter(larb) for each multimedia HW +like display, video decode, and camera. And there are different ports +in each larb. Take a example, There are many ports like MC, PP, VLD in the +video decode local arbiter, all these ports are according to the video HW. + +Required properties: +- compatible : must be "mediatek,mt8173-m4u". +- reg : m4u register base and size. +- interrupts : the interrupt of m4u. +- clocks : must contain one entry for each clock-names. +- clock-names : must be "bclk", It is the block clock of m4u. +- mediatek,larbs : List of phandle to the local arbiters in the current Socs. + Refer to bindings/memory-controllers/mediatek,smi-larb.txt. It must sort + according to the local arbiter index, like larb0, larb1, larb2... +- iommu-cells : must be 1. This is the mtk_m4u_id according to the HW. + Specifies the mtk_m4u_id as defined in + dt-binding/memory/mt8173-larb-port.h. + +Example: + iommu: iommu at 10205000 { + compatible = "mediatek,mt8173-m4u"; + reg = <0 0x10205000 0 0x1000>; + interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>; + clocks = <&infracfg CLK_INFRA_M4U>; + clock-names = "bclk"; + mediatek,larbs = <&larb0 &larb1 &larb2 &larb3 &larb4 &larb5>; + #iommu-cells = <1>; + }; + +Example for a client device: + display { + compatible = "mediatek,mt8173-disp"; + iommus = <&iommu M4U_PORT_DISP_OVL0>, + <&iommu M4U_PORT_DISP_RDMA0>; + ... + };
Signature · 1 line
1.8.1.1.dirty
Yong Wu
maintainerPATCH v10 2/5 dt-bindings: mediatek: Add smi dts binding
In reply to Yong WuThis patch add smi binding document and smi local arbiter header file.
--- .../memory-controllers/mediatek,smi-common.txt | 24 +++++ .../memory-controllers/mediatek,smi-larb.txt | 25 +++++ include/dt-bindings/memory/mt8173-larb-port.h | 111 +++++++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt create mode 100644 include/dt-bindings/memory/mt8173-larb-port.h
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt new file +24 -0
@@ -0,0 +1,24 @@ +SMI (Smart Multimedia Interface) Common + +The hardware block diagram please check bindings/iommu/mediatek,iommu.txt + +Required properties: +- compatible : must be "mediatek,mt8173-smi-common" +- reg : the register and size of the SMI block. +- power-domains : a phandle to the power domain of this local arbiter. +- clocks : Must contain an entry for each entry in clock-names. +- clock-names : must contain 2 entries, as follows: + - "apb" : Advanced Peripheral Bus clock, It's the clock for setting + the register. + - "smi" : It's the clock for transfer data and command. + They may be the same if both source clocks are the same. + +Example: + smi_common: smi at 14022000 { + compatible = "mediatek,mt8173-smi-common"; + reg = <0 0x14022000 0 0x1000>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_SMI_COMMON>, + <&mmsys CLK_MM_SMI_COMMON>; + clock-names = "apb", "smi"; + };
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt new file +25 -0
@@ -0,0 +1,25 @@ +SMI (Smart Multimedia Interface) Local Arbiter + +The hardware block diagram please check bindings/iommu/mediatek,iommu.txt + +Required properties: +- compatible : must be "mediatek,mt8173-smi-larb" +- reg : the register and size of this local arbiter. +- mediatek,smi : a phandle to the smi_common node. +- power-domains : a phandle to the power domain of this local arbiter. +- clocks : Must contain an entry for each entry in clock-names. +- clock-names: must contain 2 entries, as follows: + - "apb" : Advanced Peripheral Bus clock, It's the clock for setting + the register. + - "smi" : It's the clock for transfer data and command. + +Example: + larb1: larb at 16010000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x16010000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>; + clocks = <&vdecsys CLK_VDEC_CKEN>, + <&vdecsys CLK_VDEC_LARB_CKEN>; + clock-names = "apb", "smi"; + };
include/dt-bindings/memory/mt8173-larb-port.h new file +111 -0
111 lines not on this page · raw message
Signature · 1 line
1.8.1.1.dirty
Yong Wu
maintainerPATCH v10 3/5 memory: mediatek: Add SMI driver
In reply to Yong WuThis patch add SMI(Smart Multimedia Interface) driver. This driver is responsible to enable/disable iommu and control the power domain and clocks of each local arbiter.
--- drivers/memory/Kconfig | 8 ++ drivers/memory/Makefile | 1 + drivers/memory/mtk-smi.c | 273 +++++++++++++++++++++++++++++++++++++++++++++ include/soc/mediatek/smi.h | 58 ++++++++++ 4 files changed, 340 insertions(+) create mode 100644 drivers/memory/mtk-smi.c create mode 100644 include/soc/mediatek/smi.h
drivers/memory/Kconfig +8 -0
@@ -114,6 +114,14 @@ config JZ4780_NEMC the Ingenic JZ4780. This controller is used to handle external memory devices such as NAND and SRAM. +config MTK_SMI + bool + depends on ARCH_MEDIATEK || COMPILE_TEST + help + This driver is for the Memory Controller module in MediaTek SoCs, + mainly help enable/disable iommu and control the power domain and + clocks for each local arbiter. + source "drivers/memory/tegra/Kconfig" endif
drivers/memory/Makefile +1 -0
@@ -15,5 +15,6 @@ obj-$(CONFIG_FSL_IFC) += fsl_ifc.o obj-$(CONFIG_MVEBU_DEVBUS) += mvebu-devbus.o obj-$(CONFIG_TEGRA20_MC) += tegra20-mc.o obj-$(CONFIG_JZ4780_NEMC) += jz4780-nemc.o +obj-$(CONFIG_MTK_SMI) += mtk-smi.o obj-$(CONFIG_TEGRA_MC) += tegra/
drivers/memory/mtk-smi.c new file +273 -0
273 lines not on this page · raw message
include/soc/mediatek/smi.h new file +58 -0
58 lines not on this page · raw message
Signature · 1 line
1.8.1.1.dirty
Yong Wu
maintainerPATCH v10 4/5 iommu/mediatek: Add mt8173 IOMMU driver
In reply to Yong WuThis patch adds support for mediatek m4u (MultiMedia Memory Management Unit).
--- drivers/iommu/Kconfig | 16 + drivers/iommu/Makefile | 1 + drivers/iommu/mtk_iommu.c | 737 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 754 insertions(+) create mode 100644 drivers/iommu/mtk_iommu.c
drivers/iommu/Kconfig +16 -0
@@ -318,4 +318,20 @@ config S390_IOMMU help Support for the IOMMU API for s390 PCI devices. +config MTK_IOMMU + bool "MTK IOMMU Support" + depends on ARM || ARM64 + depends on ARCH_MEDIATEK || COMPILE_TEST + select IOMMU_API + select IOMMU_DMA + select IOMMU_IO_PGTABLE_ARMV7S + select MEMORY + select MTK_SMI + help + Support for the M4U on certain Mediatek SOCs. M4U is MultiMedia + Memory Management Unit. This option enables remapping of DMA memory + accesses for the multimedia subsystem. + + If unsure, say N here. + endif # IOMMU_SUPPORT
drivers/iommu/Makefile +1 -0
@@ -16,6 +16,7 @@ obj-$(CONFIG_INTEL_IOMMU) += intel-iommu.o obj-$(CONFIG_INTEL_IOMMU_SVM) += intel-svm.o obj-$(CONFIG_IPMMU_VMSA) += ipmmu-vmsa.o obj-$(CONFIG_IRQ_REMAP) += intel_irq_remapping.o irq_remapping.o +obj-$(CONFIG_MTK_IOMMU) += mtk_iommu.o obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o obj-$(CONFIG_ROCKCHIP_IOMMU) += rockchip-iommu.o
drivers/iommu/mtk_iommu.c new file +737 -0
737 lines not on this page · raw message
Signature · 1 line
1.8.1.1.dirty
Yong Wu
maintainerPATCH v10 5/5 dts: mt8173: Add iommu/smi nodes for mt8173
In reply to Yong WuThis patch add the iommu/larbs nodes for mt8173
--- arch/arm64/boot/dts/mediatek/mt8173.dtsi | 81 ++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+)
arch/arm64/boot/dts/mediatek/mt8173.dtsi +81 -0
@@ -14,6 +14,7 @@ #include <dt-bindings/clock/mt8173-clk.h> #include <dt-bindings/interrupt-controller/irq.h> #include <dt-bindings/interrupt-controller/arm-gic.h> +#include <dt-bindings/memory/mt8173-larb-port.h> #include <dt-bindings/phy/phy.h> #include <dt-bindings/power/mt8173-power.h> #include <dt-bindings/reset/mt8173-resets.h>
@@ -277,6 +278,17 @@ reg = <0 0x10200620 0 0x20>; }; + iommu: iommu at 10205000 { + compatible = "mediatek,mt8173-m4u"; + reg = <0 0x10205000 0 0x1000>; + interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>; + clocks = <&infracfg CLK_INFRA_M4U>; + clock-names = "bclk"; + mediatek,larbs = <&larb0 &larb1 &larb2 + &larb3 &larb4 &larb5>; + #iommu-cells = <1>; + }; + apmixedsys: clock-controller at 10209000 { compatible = "mediatek,mt8173-apmixedsys"; reg = <0 0x10209000 0 0x1000>;
@@ -589,29 +601,98 @@ status = "disabled"; }; + larb0: larb at 14021000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x14021000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_SMI_LARB0>, + <&mmsys CLK_MM_SMI_LARB0>; + clock-names = "apb", "smi"; + }; + + smi_common: smi at 14022000 { + compatible = "mediatek,mt8173-smi-common"; + reg = <0 0x14022000 0 0x1000>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_SMI_COMMON>, + <&mmsys CLK_MM_SMI_COMMON>; + clock-names = "apb", "smi"; + }; + + larb4: larb at 14027000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x14027000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_MM>; + clocks = <&mmsys CLK_MM_SMI_LARB4>, + <&mmsys CLK_MM_SMI_LARB4>; + clock-names = "apb", "smi"; + }; + imgsys: clock-controller at 15000000 { compatible = "mediatek,mt8173-imgsys", "syscon"; reg = <0 0x15000000 0 0x1000>; #clock-cells = <1>; }; + larb2: larb at 15001000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x15001000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_ISP>; + clocks = <&imgsys CLK_IMG_LARB2_SMI>, + <&imgsys CLK_IMG_LARB2_SMI>; + clock-names = "apb", "smi"; + }; + vdecsys: clock-controller at 16000000 { compatible = "mediatek,mt8173-vdecsys", "syscon"; reg = <0 0x16000000 0 0x1000>; #clock-cells = <1>; }; + larb1: larb at 16010000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x16010000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>; + clocks = <&vdecsys CLK_VDEC_CKEN>, + <&vdecsys CLK_VDEC_LARB_CKEN>; + clock-names = "apb", "smi"; + }; + vencsys: clock-controller at 18000000 { compatible = "mediatek,mt8173-vencsys", "syscon"; reg = <0 0x18000000 0 0x1000>; #clock-cells = <1>; }; + larb3: larb at 18001000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x18001000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC>; + clocks = <&vencsys CLK_VENC_CKE1>, + <&vencsys CLK_VENC_CKE0>; + clock-names = "apb", "smi"; + }; + vencltsys: clock-controller at 19000000 { compatible = "mediatek,mt8173-vencltsys", "syscon"; reg = <0 0x19000000 0 0x1000>; #clock-cells = <1>; }; + + larb5: larb at 19001000 { + compatible = "mediatek,mt8173-smi-larb"; + reg = <0 0x19001000 0 0x1000>; + mediatek,smi = <&smi_common>; + power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC_LT>; + clocks = <&vencltsys CLK_VENCLT_CKE1>, + <&vencltsys CLK_VENCLT_CKE0>; + clock-names = "apb", "smi"; + }; }; };
Signature · 1 line
1.8.1.1.dirty
Quoted 19 lines · Yong Wu
Yong Wu (5):
dt-bindings: iommu: Add binding for mediatek IOMMU
dt-bindings: mediatek: Add smi dts binding
memory: mediatek: Add SMI driver iommu/mediatek: Add mt8173 IOMMU driver
dts: mt8173: Add iommu/smi nodes for mt8173.../devicetree/bindings/iommu/mediatek,iommu.txt | 68 ++ .../memory-controllers/mediatek,smi-common.txt | 24 + .../memory-controllers/mediatek,smi-larb.txt | 25 + arch/arm64/boot/dts/mediatek/mt8173.dtsi | 81 +++ drivers/iommu/Kconfig | 16 + drivers/iommu/Makefile | 1 + drivers/iommu/mtk_iommu.c | 737 +++++++++++++++++++++ drivers/memory/Kconfig | 8 + drivers/memory/Makefile | 1 + drivers/memory/mtk-smi.c | 273 ++++++++ include/dt-bindings/memory/mt8173-larb-port.h | 111 ++++ include/soc/mediatek/smi.h | 58 ++
Quoted 8 lines
12 files changed, 1403 insertions(+) create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt create mode 100644 drivers/iommu/mtk_iommu.c create mode 100644 drivers/memory/mtk-smi.c create mode 100644 include/dt-bindings/memory/mt8173-larb-port.h create mode 100644 include/soc/mediatek/smi.h
Applied all, thanks.
Hi Joerg,
Am Donnerstag, den 25.02.2016, 16:50 +0100 schrieb Joerg Roedel:
Quoted 29 lines · Yong Wu
Quoted 19 lines
Yong Wu (5):
dt-bindings: iommu: Add binding for mediatek IOMMU
dt-bindings: mediatek: Add smi dts binding
memory: mediatek: Add SMI driver iommu/mediatek: Add mt8173 IOMMU driver
dts: mt8173: Add iommu/smi nodes for mt8173.../devicetree/bindings/iommu/mediatek,iommu.txt | 68 ++ .../memory-controllers/mediatek,smi-common.txt | 24 + .../memory-controllers/mediatek,smi-larb.txt | 25 + arch/arm64/boot/dts/mediatek/mt8173.dtsi | 81 +++ drivers/iommu/Kconfig | 16 + drivers/iommu/Makefile | 1 + drivers/iommu/mtk_iommu.c | 737 +++++++++++++++++++++ drivers/memory/Kconfig | 8 + drivers/memory/Makefile | 1 + drivers/memory/mtk-smi.c | 273 ++++++++ include/dt-bindings/memory/mt8173-larb-port.h | 111 ++++ include/soc/mediatek/smi.h | 58 ++Quoted 8 lines
12 files changed, 1403 insertions(+) create mode 100644 Documentation/devicetree/bindings/iommu/mediatek,iommu.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt create mode 100644 Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt create mode 100644 drivers/iommu/mtk_iommu.c create mode 100644 drivers/memory/mtk-smi.c create mode 100644 include/dt-bindings/memory/mt8173-larb-port.h create mode 100644 include/soc/mediatek/smi.h
Quoted 1 line
Applied all, thanks.
Do you have a stable branch that I could base the mediatek-drm patches on and that I may include in a pull request to be merged via drm-next?
regards
Philipp
Joerg Roedel
maintainerHi Philipp,
Quoted 2 lines · Philipp Zabel
Do you have a stable branch that I could base the mediatek-drm patches on and that I may include in a pull request to be merged via drm-next?
You can base it on the arm/mediatek branch of the iommu tree. I'll push it out in the next minutes.
Joerg
Am Freitag, den 26.02.2016, 12:06 +0100 schrieb Joerg Roedel:
Quoted 8 lines
Hi Philipp,
Quoted 2 lines · Philipp Zabel
Do you have a stable branch that I could base the mediatek-drm patches on and that I may include in a pull request to be merged via drm-next?
You can base it on the arm/mediatek branch of the iommu tree. I'll push it out in the next minutes.
Excellent, thank you.
regards
Philipp
Matthias Brugger
maintainerHi Arnd and Olof,
Quoted 9 lines · Joerg Roedel
Hi Philipp,
Quoted 2 lines · Philipp Zabel
Do you have a stable branch that I could base the mediatek-drm patches on and that I may include in a pull request to be merged via drm-next?
You can base it on the arm/mediatek branch of the iommu tree. I'll push it out in the next minutes.
I realized that Joerg accidentally merged the dts parts as well through his branch.
As expected this patches conflict when merging the arm-soc tree.
Shall Joerg drops the patches and you take it through your branch, or I queue them for the next release cycle?
Regards,
Matthias
Quoted 12 lines · On Wednesday 02 March 2016 11:48:43 Matthias Brugger wrote:
Quoted 9 lines · Joerg Roedel
Hi Philipp,
Quoted 2 lines · Philipp Zabel
Do you have a stable branch that I could base the mediatek-drm patches on and that I may include in a pull request to be merged via drm-next?
You can base it on the arm/mediatek branch of the iommu tree. I'll push it out in the next minutes.
Quoted 7 lines
I realized that Joerg accidentally merged the dts parts as well through his branch.
As expected this patches conflict when merging the arm-soc tree.
Shall Joerg drops the patches and you take it through your branch, or I queue them for the next release cycle?
I think this time, we can live with the conflict, it's easy enough to resolve when Linus pulls both branches.
Arnd