Skip to contentSkip to conversation

IOMMU Updates for Linux v4.6

GIT PULL Joerg Roedel 1 participant 1 message Mar 22, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi Linus,

The following changes since commit b562e44f507e863c6792946e4e1b1449fbbac85d:

Linux 4.5 (2016-03-13 21:28:54 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-updates-v4.6

for you to fetch changes up to 70cf769c5ba283483a42c46f3734202b55dd3041:

Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'arm/mediatek', 'arm/io-pgtable', 'arm/renesas' and 'core' into next (2016-03-21 14:58:47 +0100)

----------------------------------------------------------------

IOMMU Updates for Linux v4.6

This time with:

* Updates for the Exynos IOMMU driver to make use of default domains and to add support for the SYSMMU v5

* New Mediatek IOMMU driver

* Support for the ARMv7 short descriptor format in the io-pgtable code

* Default domain support for the ARM SMMU

* Couple of other small fixes all over the place

----------------------------------------------------------------
Andrzej Hajda (1):
iommu/mediatek: Fix handling of of_count_phandle_with_args result

Anup Patel (1):
of: iommu: Increment DT node refcount in of_iommu_set_ops()

Arnd Bergmann (3):
iommu/exynos: Pointers are nto physical addresses iommu/mediatek: Select ARM_DMA_USE_IOMMU iommu/mediatek: Mark PM functions as __maybe_unused

Dan Carpenter (1):
iommu/mediatek: Check for NULL instead of IS_ERR()

Joerg Roedel (3):
Merge branch 'for-joerg/io-pgtable' of git://git.kernel.org/.../will/linux into arm/io-pgtable
Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/.../will/linux into arm/smmu
Merge branches 'arm/rockchip', 'arm/exynos', 'arm/smmu', 'arm/mediatek', 'arm/io-pgtable', 'arm/renesas' and 'core' into next

Magnus Damm (1):
iommu/ipmmu-vmsa: Add r8a7795 DT binding

Marek Szyprowski (14):
iommu/exynos: Rework iommu group initialization iommu/exynos: Add support for IOMMU_DOMAIN_DMA domain type iommu/exynos: Remove ARM-specific cache flush interface iommu/exynos: Simplify master clock operations iommu/exynos: Refactor code (no direct register access) iommu/exynos: Refactor fault handling code
iommu/exynos: Refactor init config code
iommu/exynos: Unify code for fldp cache invalidation iommu/exynos: Add support for SYSMMU controller with bogus version reg iommu/exynos: Update device tree documentation iommu/exynos: Add support for v5 SYSMMU
iommu/exynos: Add Maintainers entry for Exynos SYSMMU driver iommu/exynos: Support multiple attach_device calls iommu/exynos: Use proper readl/writel register interface

Robin Murphy (9):
iommu/io-pgtable: Add ARMv7 short descriptor support iommu/io-pgtable: Add helper functions for TLB ops iommu/io-pgtable: Avoid redundant TLB syncs iommu/io-pgtable: Rationalise quirk handling iommu/arm-smmu: Treat all device transactions as unprivileged iommu/arm-smmu: Support DMA-API domains iommu/arm-smmu: Allow disabling unmatched stream bypass iommu/dma: Fix NEED_SG_DMA_LENGTH dependency iommu/io-pgtable-armv7s: Fix kmem_cache_alloc() flags

Simon Horman (1):
iommu/ipmmu-vmsa: Use ARCH_RENESAS

Will Deacon (3):
MAINTAINERS: update ARM SMMU entry
iommu/arm-smmu: Don't fail device attach if already attached to a domain iommu/arm-smmu: Treat IOMMU_DOMAIN_DMA as bypass for now

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

Yoshihiro Shimoda (1):
iommu: Fix second argument of trace_map() to report correct paddr

ZhengShunQian (1):
iommu/rockchip: Reconstruct to support multi slaves

 .../devicetree/bindings/iommu/mediatek,iommu.txt   |  68 ++
 .../bindings/iommu/renesas,ipmmu-vmsa.txt          |  15 +-
 .../devicetree/bindings/iommu/samsung,sysmmu.txt   |  22 +-
 .../memory-controllers/mediatek,smi-common.txt     |  24 +
 .../memory-controllers/mediatek,smi-larb.txt       |  25 +
 MAINTAINERS                                        |   8 +
 arch/arm64/boot/dts/mediatek/mt8173.dtsi           |  81 ++
 drivers/iommu/Kconfig                              |  42 +-
 drivers/iommu/Makefile                             |   2 +
 drivers/iommu/arm-smmu-v3.c                        |  50 +-
 drivers/iommu/arm-smmu.c                           |  79 +-
 drivers/iommu/exynos-iommu.c                       | 608 +++++++++------
 drivers/iommu/io-pgtable-arm-v7s.c                 | 846 +++++++++++++++++++++
 drivers/iommu/io-pgtable-arm.c                     |  34 +-
 drivers/iommu/io-pgtable.c                         |   5 +-
 drivers/iommu/io-pgtable.h                         |  53 +-
 drivers/iommu/iommu.c                              |   3 +-
 drivers/iommu/mtk_iommu.c                          | 736 ++++++++++++++++++
 drivers/iommu/of_iommu.c                           |   1 +
 drivers/iommu/rockchip-iommu.c                     | 214 ++++--
 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 ++
 25 files changed, 2953 insertions(+), 414 deletions(-)
 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/io-pgtable-arm-v7s.c
 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

There will be a trivial conflict in arch/arm64/boot/dts/mediatek/mt8173.dtsi when merging. I attach my resolution below anyway for reference.

Please pull.

Thanks,

Joerg

arch/arm64/boot/dts/mediatek/mt8173.dtsi +0 -0
diff --cc arch/arm64/boot/dts/mediatek/mt8173.dtsi
index f4bd3c9,8048811..f3fc041
@@@ -277,11 -278,17 +278,22 @@@
  			reg = <0 0x10200620 0 0x20>;
  		};
  
 +		efuse: efuse@10206000 {
 +			compatible = "mediatek,mt8173-efuse";
 +			reg = <0 0x10206000 0 0x1000>;
 +		};
 +
+ 		iommu: iommu@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@10209000 {
  			compatible = "mediatek,mt8173-apmixedsys";
  			reg = <0 0x10209000 0 0x1000>;