1. 04 Dec, 2014 10 commits
    • Arnd Bergmann's avatar
      Merge tag 'tegra-for-3.19-dt' of... · 1d5f497d
      Arnd Bergmann authored
      Merge tag 'tegra-for-3.19-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt2
      
      Pull "ARM: tegra: Device tree changes for v3.19" from Thierry Reding:
      
      The bulk of these changes add memory controller nodes for Tegra30,
      Tegra114 and Tegra124. The memory controller implements an IOMMU that
      the display controllers are attached to. This allows them to scan out
      physically non-contiguous framebuffers and removes one of the primary
      users of CMA.
      
      The only other change adds a new MIPI pad control bank to the pin
      controller on Tegra124. The corresponding driver patch for this went
      into v3.18 as:
      
              3ccc11f6 pinctrl: tegra: Add MIPI pad control
      
      * tag 'tegra-for-3.19-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
        ARM: tegra: Enable IOMMU for display controllers on Tegra124
        ARM: tegra: Enable IOMMU for display controllers on Tegra114
        ARM: tegra: Enable IOMMU for display controllers on Tegra30
        ARM: tegra: Add memory controller support for Tegra124
        ARM: tegra: Add memory controller support for Tegra114
        ARM: tegra: Add memory controller support for Tegra30
        ARM: tegra: Add APB_MISC_GP as a MIPI pad control bank
      
      These additional commits are merged as dependencies:
      
        memory: Add NVIDIA Tegra memory controller support
        of: Add NVIDIA Tegra memory controller binding
        ARM: tegra: Move AHB Kconfig to drivers/amba
        amba: Add Kconfig file
        clk: tegra: Implement memory-controller clock
        powerpc/iommu: Rename iommu_[un]map_sg functions
        iommu: Improve error handling when setting bus iommu
        iommu: Do more input validation in iommu_map_sg()
        iommu: Add iommu_map_sg() function
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      1d5f497d
    • Thierry Reding's avatar
      ARM: tegra: Enable IOMMU for display controllers on Tegra124 · 5b605d44
      Thierry Reding authored
      Add iommus properties to the device tree nodes for the two display
      controllers found on Tegra124. This will allow the display controllers
      to map physically non-contiguous buffers to I/O virtual contiguous
      address spaces so that they can be used for scan-out.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      5b605d44
    • Thierry Reding's avatar
      ARM: tegra: Enable IOMMU for display controllers on Tegra114 · 32215e71
      Thierry Reding authored
      Add iommus properties to the device tree nodes for the two display
      controllers found on Tegra114. This will allow the display controllers
      to map physically non-contiguous buffers to I/O virtual contiguous
      address spaces so that they can be used for scan-out.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      32215e71
    • Thierry Reding's avatar
      ARM: tegra: Enable IOMMU for display controllers on Tegra30 · 6d9adf6f
      Thierry Reding authored
      Add iommus properties to the device tree nodes for the two display
      controllers found on Tegra30. This will allow the display controllers to
      map physically non-contiguous buffers to I/O virtual contiguous address
      spaces so that they can be used for scan-out.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      6d9adf6f
    • Thierry Reding's avatar
      ARM: tegra: Add memory controller support for Tegra124 · b26ea06b
      Thierry Reding authored
      Add the memory controller and wire up the interrupt that is used to
      report errors. Provide a reference to the memory controller clock and
      mark the device as being an IOMMU by adding an #iommu-cells property.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      b26ea06b
    • Thierry Reding's avatar
      ARM: tegra: Add memory controller support for Tegra114 · c6f70a4d
      Thierry Reding authored
      Add the device tree node for the memory controller found on Tegra114
      SoCs. The memory controller integrates an IOMMU (called SMMU) as well as
      various knobs to tweak memory accesses by the various clients.
      
      The old IOMMU device tree node is collapsed into the memory controller
      node to more accurately describe the hardware. While this change is
      incompatible, the IOMMU driver has never had any users so the change is
      not going to cause any breakage.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      c6f70a4d
    • Thierry Reding's avatar
      ARM: tegra: Add memory controller support for Tegra30 · a9fe468f
      Thierry Reding authored
      Collapses the old memory-controller and IOMMU device tree nodes into a
      single node to more accurately describe the hardware.
      
      While this is an incompatible change there are no users of the IOMMU on
      Tegra, even though a driver has existed for some time.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      a9fe468f
    • Sean Paul's avatar
      ARM: tegra: Add APB_MISC_GP as a MIPI pad control bank · 49727d30
      Sean Paul authored
      This patch adds the APB_MISC_GP_MIPI_PAD_CTRL_0 as a pin-control bank on
      Tegra124 so the new MIPI pad control group can be muxed between CSI and
      DSI_B.
      Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
      Acked-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      49727d30
    • Thierry Reding's avatar
      f538c509
    • Thierry Reding's avatar
      memory: Add NVIDIA Tegra memory controller support · 89184651
      Thierry Reding authored
      The memory controller on NVIDIA Tegra exposes various knobs that can be
      used to tune the behaviour of the clients attached to it.
      
      Currently this driver sets up the latency allowance registers to the HW
      defaults. Eventually an API should be exported by this driver (via a
      custom API or a generic subsystem) to allow clients to register latency
      requirements.
      
      This driver also registers an IOMMU (SMMU) that's implemented by the
      memory controller. It is supported on Tegra30, Tegra114 and Tegra124
      currently. Tegra20 has a GART instead.
      
      The Tegra SMMU operates on memory clients and SWGROUPs. A memory client
      is a unidirectional, special-purpose DMA master. A SWGROUP represents a
      set of memory clients that form a logical functional unit corresponding
      to a single device. Typically a device has two clients: one client for
      read transactions and one client for write transactions, but there are
      also devices that have only read clients, but many of them (such as the
      display controllers).
      
      Because there is no 1:1 relationship between memory clients and devices
      the driver keeps a table of memory clients and the SWGROUPs that they
      belong to per SoC. Note that this is an exception and due to the fact
      that the SMMU is tightly integrated with the rest of the Tegra SoC. The
      use of these tables is discouraged in drivers for generic IOMMU devices
      such as the ARM SMMU because the same IOMMU could be used in any number
      of SoCs and keeping such tables for each SoC would not scale.
      Acked-by: default avatarJoerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      89184651
  2. 28 Nov, 2014 3 commits
  3. 26 Nov, 2014 8 commits
  4. 22 Nov, 2014 14 commits
  5. 20 Nov, 2014 5 commits