linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: thierry.reding@gmail.com (Thierry Reding)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 00/12] NVIDIA Tegra memory controller and IOMMU support
Date: Fri,  7 Nov 2014 17:00:51 +0100	[thread overview]
Message-ID: <1415376063-17205-1-git-send-email-thierry.reding@gmail.com> (raw)

From: Thierry Reding <treding@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/Makefile                             |    1 -
 drivers/iommu/tegra-smmu.c                         | 1295 --------------------
 drivers/memory/Kconfig                             |   12 +-
 drivers/memory/Makefile                            |    3 +-
 drivers/memory/tegra/Kconfig                       |   16 +
 drivers/memory/tegra/Makefile                      |    9 +
 drivers/memory/tegra/mc.c                          |  303 +++++
 drivers/memory/tegra/mc.h                          |  129 ++
 drivers/memory/tegra/smmu.c                        |  716 +++++++++++
 drivers/memory/tegra/tegra114.c                    |  948 ++++++++++++++
 drivers/memory/tegra/tegra124.c                    | 1028 ++++++++++++++++
 drivers/memory/tegra/tegra30.c                     |  970 +++++++++++++++
 drivers/memory/tegra30-mc.c                        |  378 ------
 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 +
 34 files changed, 4340 insertions(+), 1729 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/memory-controllers/nvidia,tegra-mc.txt
 create mode 100644 drivers/amba/Kconfig
 delete mode 100644 drivers/iommu/tegra-smmu.c
 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/smmu.c
 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 include/dt-bindings/memory/tegra114-mc.h
 create mode 100644 include/dt-bindings/memory/tegra124-mc.h
 create mode 100644 include/dt-bindings/memory/tegra30-mc.h

-- 
2.1.3

             reply	other threads:[~2014-11-07 16:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-07 16:00 Thierry Reding [this message]
2014-11-07 16:00 ` [PATCH v6 01/12] clk: tegra: Implement memory-controller clock Thierry Reding
2014-11-07 16:00 ` [PATCH v6 02/12] amba: Add Kconfig file Thierry Reding
2014-11-07 16:00 ` [PATCH v6 03/12] ARM: tegra: Move AHB Kconfig to drivers/amba Thierry Reding
2014-11-07 16:00 ` [PATCH v6 04/12] of: Add NVIDIA Tegra memory controller binding Thierry Reding
2014-11-07 16:00 ` [PATCH v6 06/12] ARM: tegra: Add memory controller support for Tegra30 Thierry Reding
2014-11-07 16:00 ` [PATCH v6 07/12] ARM: tegra: Add memory controller support for Tegra114 Thierry Reding
2014-11-07 16:00 ` [PATCH v6 08/12] ARM: tegra: Add memory controller support for Tegra124 Thierry Reding
2014-11-07 16:01 ` [PATCH v6 09/12] ARM: tegra: Enable IOMMU for display controllers on Tegra30 Thierry Reding
2014-11-07 16:01 ` [PATCH v6 10/12] ARM: tegra: Enable IOMMU for display controllers on Tegra114 Thierry Reding
2014-11-07 16:01 ` [PATCH v6 11/12] ARM: tegra: Enable IOMMU for display controllers on Tegra124 Thierry Reding
2014-11-07 16:01 ` [PATCH v6 12/12] memory: tegra: Add Tegra132 support Thierry Reding
2014-11-10  9:53 ` [PATCH v6 00/12] NVIDIA Tegra memory controller and IOMMU support Alexandre Courbot
     [not found] ` <1415376063-17205-6-git-send-email-thierry.reding@gmail.com>
2014-11-12 14:21   ` [PATCH v6 05/12] memory: Add NVIDIA Tegra memory controller support Joerg Roedel
2014-11-12 14:47     ` Thierry Reding
2014-11-12 15:02       ` Joerg Roedel
2014-11-12 15:09         ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1415376063-17205-1-git-send-email-thierry.reding@gmail.com \
    --to=thierry.reding@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).