From: Thierry Reding treding@nvidia.com
Hi,
This series adds support for the video protection region (VPR) used on Tegra SoC devices. It's a special region of memory that is protected from accesses by the CPU and used to store DRM protected content (both decrypted stream data as well as decoded video frames).
Patches 1 and 2 add DT binding documentation for the VPR and add the VPR to the list of memory-region items for display and host1x.
Patch 3 introduces new APIs needed by the Tegra VPR implementation that allow CMA areas to be dynamically created at runtime rather than using the fixed, system-wide list. This is used in this driver specifically because it can use an arbitrary number of these areas (though they are currently limited to 4).
Patch 4 adds some infrastructure for DMA heap implementations to provide information through debugfs.
The Tegra VPR implementation is added in patch 5. See its commit message for more details about the specifics of this implementation.
Finally, patches 6-9 add the VPR placeholder node on Tegra234 and hook it up to the host1x and GPU nodes so that they can make use of this region.
Thierry
Thierry Reding (9): dt-bindings: reserved-memory: Document Tegra VPR dt-bindings: display: tegra: Document memory regions mm/cma: Allow dynamically creating CMA areas dma-buf: heaps: Add debugfs support dma-buf: heaps: Add support for Tegra VPR arm64: tegra: Add VPR placeholder node on Tegra234 arm64: tegra: Add GPU node on Tegra234 arm64: tegra: Hook up VPR to host1x arm64: tegra: Hook up VPR to the GPU
.../display/tegra/nvidia,tegra186-dc.yaml | 10 + .../display/tegra/nvidia,tegra20-dc.yaml | 10 +- .../display/tegra/nvidia,tegra20-host1x.yaml | 7 + .../nvidia,tegra-video-protection-region.yaml | 55 ++ arch/arm64/boot/dts/nvidia/tegra234.dtsi | 57 ++ drivers/dma-buf/dma-heap.c | 56 ++ drivers/dma-buf/heaps/Kconfig | 7 + drivers/dma-buf/heaps/Makefile | 1 + drivers/dma-buf/heaps/tegra-vpr.c | 831 ++++++++++++++++++ include/linux/cma.h | 16 + include/linux/dma-heap.h | 2 + include/trace/events/tegra_vpr.h | 57 ++ mm/cma.c | 89 +- 13 files changed, 1175 insertions(+), 23 deletions(-) create mode 100644 Documentation/devicetree/bindings/reserved-memory/nvidia,tegra-video-protection-region.yaml create mode 100644 drivers/dma-buf/heaps/tegra-vpr.c create mode 100644 include/trace/events/tegra_vpr.h