[PATCH v7 00/12] NVIDIA Tegra memory controller and IOMMU support
From: Thierry Reding tred...@nvidia.com This is the sixth installment in the Tegra IOMMU and memory controller support series. This version addresses the final outstanding comments from Olof about using proper Kconfig symbols to track the dependencies. It also splits up the driver into one part that implements the memory controller only and a second part that implements the SMMU. This plays nicely with the new Kconfig options introduced. Patch 1 is a preparatory patch that exposes the memory controller clock. Patches 2 and 3 is a pair of precursory patches needed to make this all work on 64-bit ARM in the future. The device tree binding for the Tegra memory controller is added in patch 4 and patch 5 is the bulk of the series that move the existing memory controller and IOMMU drivers into the new unified driver that supports Tegra30, Tegra114 and Tegra124. Patches 6, 7 and 8 add the DT nodes for the memory controller/IOMMU on Tegra30, Tegra114 and Tegra124. IOMMU support is enabled for the display controllers in patches 9, 10 and 11. This will allow the display controllers to have their memory accesses translated by the SMMU, which will enable non-contiguous buffers to be used for scan-out. Finally patch 12 also adds support for Tegra132. It is kept separate because none of the other Tegra132 patches have been merged yet, but I've included it here for completeness. Because the patches are rather intertwined, I'd like to merge them all via the Tegra tree. For that I'll need Acked-bys from Mike, Russell and Joerg on patches 1, 2 and 3, and 5, respectively. Thierry Thierry Reding (12): clk: tegra: Implement memory-controller clock amba: Add Kconfig file ARM: tegra: Move AHB Kconfig to drivers/amba of: Add NVIDIA Tegra memory controller binding memory: Add NVIDIA Tegra memory controller support ARM: tegra: Add memory controller support for Tegra30 ARM: tegra: Add memory controller support for Tegra114 ARM: tegra: Add memory controller support for Tegra124 ARM: tegra: Enable IOMMU for display controllers on Tegra30 ARM: tegra: Enable IOMMU for display controllers on Tegra114 ARM: tegra: Enable IOMMU for display controllers on Tegra124 memory: tegra: Add Tegra132 support .../memory-controllers/nvidia,tegra-mc.txt | 36 + arch/arm/Kconfig |3 - arch/arm/boot/dts/tegra114.dtsi| 23 +- arch/arm/boot/dts/tegra124.dtsi| 16 + arch/arm/boot/dts/tegra30.dtsi | 25 +- arch/arm/mach-tegra/Kconfig|9 +- arch/arm64/Kconfig |3 - drivers/Kconfig|2 + drivers/amba/Kconfig | 14 + drivers/clk/tegra/clk-divider.c| 13 + drivers/clk/tegra/clk-tegra114.c |7 +- drivers/clk/tegra/clk-tegra124.c |7 +- drivers/clk/tegra/clk-tegra20.c|8 +- drivers/clk/tegra/clk-tegra30.c|7 +- drivers/clk/tegra/clk.h|2 + drivers/iommu/Kconfig | 12 +- drivers/iommu/tegra-smmu.c | 1601 +++- drivers/memory/Kconfig | 12 +- drivers/memory/Makefile|3 +- drivers/memory/tegra/Kconfig |7 + drivers/memory/tegra/Makefile |8 + drivers/memory/tegra/mc.c | 304 drivers/memory/tegra/mc.h | 57 + drivers/memory/tegra/tegra114.c| 948 drivers/memory/tegra/tegra124.c| 1028 + drivers/memory/tegra/tegra30.c | 970 drivers/memory/tegra30-mc.c| 377 - include/dt-bindings/clock/tegra114-car.h |2 +- include/dt-bindings/clock/tegra124-car.h |2 +- include/dt-bindings/clock/tegra20-car.h|2 +- include/dt-bindings/memory/tegra114-mc.h | 25 + include/dt-bindings/memory/tegra124-mc.h | 31 + include/dt-bindings/memory/tegra30-mc.h| 24 + include/soc/tegra/mc.h | 107 ++ 34 files changed, 4170 insertions(+), 1525 deletions(-) create mode 100644 Documentation/devicetree/bindings/memory-controllers/nvidia,tegra-mc.txt create mode 100644 drivers/amba/Kconfig create mode 100644 drivers/memory/tegra/Kconfig create mode 100644 drivers/memory/tegra/Makefile create mode 100644 drivers/memory/tegra/mc.c create mode 100644 drivers/memory/tegra/mc.h create mode 100644 drivers/memory/tegra/tegra114.c create mode 100644 drivers/memory/tegra/tegra124.c create mode 100644 drivers/memory/tegra/tegra30.c delete mode 100644 drivers/memory/tegra30-mc.c create mode 100644
Re: [PATCH v7 00/12] NVIDIA Tegra memory controller and IOMMU support
On Thursday 13 November 2014 10:32:25 Thierry Reding wrote: From: Thierry Reding tred...@nvidia.com This is the sixth installment in the Tegra IOMMU and memory controller support series. This version addresses the final outstanding comments from Olof about using proper Kconfig symbols to track the dependencies. It also splits up the driver into one part that implements the memory controller only and a second part that implements the SMMU. This plays nicely with the new Kconfig options introduced. Patch 1 is a preparatory patch that exposes the memory controller clock. Patches 2 and 3 is a pair of precursory patches needed to make this all work on 64-bit ARM in the future. The device tree binding for the Tegra memory controller is added in patch 4 and patch 5 is the bulk of the series that move the existing memory controller and IOMMU drivers into the new unified driver that supports Tegra30, Tegra114 and Tegra124. I just noticed that patch 5 has never made it into my inbox in any of the submissions. Did it get filtered by the mailing list? Arnd ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v7 00/12] NVIDIA Tegra memory controller and IOMMU support
On Thu, Nov 13, 2014 at 11:12:20AM +0100, Arnd Bergmann wrote: On Thursday 13 November 2014 10:32:25 Thierry Reding wrote: From: Thierry Reding tred...@nvidia.com This is the sixth installment in the Tegra IOMMU and memory controller support series. This version addresses the final outstanding comments from Olof about using proper Kconfig symbols to track the dependencies. It also splits up the driver into one part that implements the memory controller only and a second part that implements the SMMU. This plays nicely with the new Kconfig options introduced. Patch 1 is a preparatory patch that exposes the memory controller clock. Patches 2 and 3 is a pair of precursory patches needed to make this all work on 64-bit ARM in the future. The device tree binding for the Tegra memory controller is added in patch 4 and patch 5 is the bulk of the series that move the existing memory controller and IOMMU drivers into the new unified driver that supports Tegra30, Tegra114 and Tegra124. I just noticed that patch 5 has never made it into my inbox in any of the submissions. Did it get filtered by the mailing list? Yes, linux-arm-kernel says it needs moderator approval. Do you want me to bounce it to you directly? Thierry pgpbHpncY7ssB.pgp Description: PGP signature ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v7 00/12] NVIDIA Tegra memory controller and IOMMU support
On 11/13/2014 12:12 PM, Arnd Bergmann wrote: On Thursday 13 November 2014 10:32:25 Thierry Reding wrote: From: Thierry Reding tred...@nvidia.com This is the sixth installment in the Tegra IOMMU and memory controller support series. This version addresses the final outstanding comments from Olof about using proper Kconfig symbols to track the dependencies. It also splits up the driver into one part that implements the memory controller only and a second part that implements the SMMU. This plays nicely with the new Kconfig options introduced. Patch 1 is a preparatory patch that exposes the memory controller clock. Patches 2 and 3 is a pair of precursory patches needed to make this all work on 64-bit ARM in the future. The device tree binding for the Tegra memory controller is added in patch 4 and patch 5 is the bulk of the series that move the existing memory controller and IOMMU drivers into the new unified driver that supports Tegra30, Tegra114 and Tegra124. I just noticed that patch 5 has never made it into my inbox in any of the submissions. Did it get filtered by the mailing list? I have received patch 5 just fine through linux-tegra. The patch is rather long though, so something filtering it wouldn't be that surprising. Arnd Mikko ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu