[PATCH v4 00/15] Memory controller hot reset

2018-04-09 Thread Dmitry Osipenko
Tegra's memory controller has a "memory hot reset" functionality that
blocks all memory transactions for the memory client, which is required
for a proper HW resetting. HW could be in process of performing DMA while
being reset and this could lead to a system hang or memory corruption, so
here comes the memory hot reset that blocks all interactions of HW with
memory so that it could be reset safely.

Changelog:

V4:
Fixed compilation warning about unused function for the case where
Tegra20 SoC isn't enabled in Kconfig, corrected typos in commit
messages.

V3:
Addressed review comments to V2 from Thierry Reding. MC now
uses generic reset controller API instead of a custom one,
hence DT changes are now involved and so Rob Herring is CC'd
for a review.

Added couple minor cleanup/correction patches.

V2:
Basically a re-send of V1 with some minor changes.


Dmitry Osipenko (14):
  dt-bindings: arm: tegra: Remove duplicated Tegra30+ MC binding
  dt-bindings: memory: tegra: Document #reset-cells property of the
Tegra30 MC
  dt-bindings: arm: tegra: Document #reset-cells property of the Tegra20
MC
  dt-bindings: memory: tegra: Add hot resets definitions
  memory: tegra: Do not handle spurious interrupts
  memory: tegra: Setup interrupts mask before requesting IRQ
  memory: tegra: Apply interrupts mask per SoC
  memory: tegra: Remove unused headers inclusions
  memory: tegra: Squash tegra20-mc into common tegra-mc driver
  memory: tegra: Introduce memory client hot reset
  memory: tegra: Add Tegra124 memory controller hot resets
  memory: tegra: Add Tegra114 memory controller hot resets
  memory: tegra: Add Tegra30 memory controller hot resets
  memory: tegra: Add Tegra20 memory controller hot resets

Thierry Reding (1):
  memory: tegra: Add Tegra210 memory controller hot resets

 .../bindings/arm/tegra/nvidia,tegra20-mc.txt   |  12 +-
 .../bindings/arm/tegra/nvidia,tegra30-mc.txt   |  18 --
 .../memory-controllers/nvidia,tegra30-mc.txt   |   5 +
 drivers/memory/Kconfig |  10 -
 drivers/memory/Makefile|   1 -
 drivers/memory/tegra/Makefile  |   1 +
 drivers/memory/tegra/mc.c  | 358 +++--
 drivers/memory/tegra/mc.h  |  22 ++
 drivers/memory/tegra/tegra114.c|  35 ++
 drivers/memory/tegra/tegra124.c|  48 +++
 drivers/memory/tegra/tegra20.c | 296 +
 drivers/memory/tegra/tegra210.c|  53 ++-
 drivers/memory/tegra/tegra30.c |  35 ++
 drivers/memory/tegra20-mc.c| 254 ---
 include/dt-bindings/memory/tegra114-mc.h   |  19 ++
 include/dt-bindings/memory/tegra124-mc.h   |  25 ++
 include/dt-bindings/memory/tegra20-mc.h|  21 ++
 include/dt-bindings/memory/tegra210-mc.h   |  31 ++
 include/dt-bindings/memory/tegra30-mc.h|  19 ++
 include/soc/tegra/mc.h |  37 ++-
 20 files changed, 978 insertions(+), 322 deletions(-)
 delete mode 100644 
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt
 create mode 100644 drivers/memory/tegra/tegra20.c
 delete mode 100644 drivers/memory/tegra20-mc.c
 create mode 100644 include/dt-bindings/memory/tegra20-mc.h

-- 
2.16.3



[PATCH v4 00/15] Memory controller hot reset

2018-04-09 Thread Dmitry Osipenko
Tegra's memory controller has a "memory hot reset" functionality that
blocks all memory transactions for the memory client, which is required
for a proper HW resetting. HW could be in process of performing DMA while
being reset and this could lead to a system hang or memory corruption, so
here comes the memory hot reset that blocks all interactions of HW with
memory so that it could be reset safely.

Changelog:

V4:
Fixed compilation warning about unused function for the case where
Tegra20 SoC isn't enabled in Kconfig, corrected typos in commit
messages.

V3:
Addressed review comments to V2 from Thierry Reding. MC now
uses generic reset controller API instead of a custom one,
hence DT changes are now involved and so Rob Herring is CC'd
for a review.

Added couple minor cleanup/correction patches.

V2:
Basically a re-send of V1 with some minor changes.


Dmitry Osipenko (14):
  dt-bindings: arm: tegra: Remove duplicated Tegra30+ MC binding
  dt-bindings: memory: tegra: Document #reset-cells property of the
Tegra30 MC
  dt-bindings: arm: tegra: Document #reset-cells property of the Tegra20
MC
  dt-bindings: memory: tegra: Add hot resets definitions
  memory: tegra: Do not handle spurious interrupts
  memory: tegra: Setup interrupts mask before requesting IRQ
  memory: tegra: Apply interrupts mask per SoC
  memory: tegra: Remove unused headers inclusions
  memory: tegra: Squash tegra20-mc into common tegra-mc driver
  memory: tegra: Introduce memory client hot reset
  memory: tegra: Add Tegra124 memory controller hot resets
  memory: tegra: Add Tegra114 memory controller hot resets
  memory: tegra: Add Tegra30 memory controller hot resets
  memory: tegra: Add Tegra20 memory controller hot resets

Thierry Reding (1):
  memory: tegra: Add Tegra210 memory controller hot resets

 .../bindings/arm/tegra/nvidia,tegra20-mc.txt   |  12 +-
 .../bindings/arm/tegra/nvidia,tegra30-mc.txt   |  18 --
 .../memory-controllers/nvidia,tegra30-mc.txt   |   5 +
 drivers/memory/Kconfig |  10 -
 drivers/memory/Makefile|   1 -
 drivers/memory/tegra/Makefile  |   1 +
 drivers/memory/tegra/mc.c  | 358 +++--
 drivers/memory/tegra/mc.h  |  22 ++
 drivers/memory/tegra/tegra114.c|  35 ++
 drivers/memory/tegra/tegra124.c|  48 +++
 drivers/memory/tegra/tegra20.c | 296 +
 drivers/memory/tegra/tegra210.c|  53 ++-
 drivers/memory/tegra/tegra30.c |  35 ++
 drivers/memory/tegra20-mc.c| 254 ---
 include/dt-bindings/memory/tegra114-mc.h   |  19 ++
 include/dt-bindings/memory/tegra124-mc.h   |  25 ++
 include/dt-bindings/memory/tegra20-mc.h|  21 ++
 include/dt-bindings/memory/tegra210-mc.h   |  31 ++
 include/dt-bindings/memory/tegra30-mc.h|  19 ++
 include/soc/tegra/mc.h |  37 ++-
 20 files changed, 978 insertions(+), 322 deletions(-)
 delete mode 100644 
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra30-mc.txt
 create mode 100644 drivers/memory/tegra/tegra20.c
 delete mode 100644 drivers/memory/tegra20-mc.c
 create mode 100644 include/dt-bindings/memory/tegra20-mc.h

-- 
2.16.3