[PATCH v5 0/4] NVIDIA Tegra video decoder driver

From: Dmitry Osipenko
Date: Mon Dec 11 2017 - 19:26:46 EST


VDE driver provides accelerated video decoding to NVIDIA Tegra SoC's,
it is a result of reverse-engineering efforts. Driver has been tested on
Toshiba AC100 and Acer A500, it should work on any Tegra20 device.

In userspace this driver is utilized by libvdpau-tegra [0] that implements
VDPAU interface, so any video player that supports VDPAU can provide
accelerated video decoding on Tegra20 on Linux.

[0] https://github.com/grate-driver/libvdpau-tegra

Change log:
v5:
- Moved driver to staging/media as per Hans's Verkuil request
- Addressed review comments to v4 from Vladimir Zapolskiy and
Dan Carpenter
- Updated 'TODO', reflecting that this driver require upcoming
support of stateless decoders by V4L2
- Dropped patch that enabled VDE driver in tegra_defconfig for now
as I realized that Tegra's DRM staging config is disabled there
and right now we are relying on it in libvdpau-tegra
- Added myself to MAINTAINERS in the "Introduce driver" patch as per
Vladimir's suggestion

v4:
- Added mmio-sram "IRAM DT node" patch from Vladimir Zapolskiy to
the series, I modified it to cover all Tegra's and not only Tegra20
- Utilized genalloc for the reservation of IRAM region as per
Vladimir's suggestion, VDE driver now selects SRAM driver in Kconfig
- Added defconfig patch to the series
- Described VDE registers in DT per HW unit, excluding BSE-A / UCQ
and holes between the units
- Extended DT compatibility property with Tegra30/114/124/132 in the
binding doc.
- Removed BSE-A interrupt from the DT binding because it's very
likely that Audio Bitstream Engine isn't integrated with VDE
- Removed UCQ interrupt from the DT binding because in TRM it is
represented as a distinct HW block that probably should have
its own driver
- Addressed v3 review comments: factored out DT binding addition
into a standalone patch, moved binding to media/, removed
clocks/resets-names

v3:
- Suppressed compilation warnings reported by 'kbuild test robot'

v2:
- Addressed v1 review comments from Stephen Warren and Dan Carpenter
- Implemented runtime PM
- Miscellaneous code cleanups
- Changed 'TODO'
- CC'd media maintainers for the review as per Greg's K-H request,
v1 can be viewed at https://lkml.org/lkml/2017/9/25/606

Dmitry Osipenko (3):
media: dt: bindings: Add binding for NVIDIA Tegra Video Decoder Engine
staging: media: Introduce NVIDIA Tegra video decoder driver
ARM: dts: tegra20: Add video decoder node

Vladimir Zapolskiy (1):
ARM: dts: tegra20: Add device tree node to describe IRAM

.../devicetree/bindings/media/nvidia,tegra-vde.txt | 55 +
MAINTAINERS | 9 +
arch/arm/boot/dts/tegra20.dtsi | 35 +
drivers/staging/media/Kconfig | 2 +
drivers/staging/media/Makefile | 1 +
drivers/staging/media/tegra-vde/Kconfig | 7 +
drivers/staging/media/tegra-vde/Makefile | 1 +
drivers/staging/media/tegra-vde/TODO | 4 +
drivers/staging/media/tegra-vde/tegra-vde.c | 1213 ++++++++++++++++++++
drivers/staging/media/tegra-vde/uapi.h | 78 ++
10 files changed, 1405 insertions(+)
create mode 100644 Documentation/devicetree/bindings/media/nvidia,tegra-vde.txt
create mode 100644 drivers/staging/media/tegra-vde/Kconfig
create mode 100644 drivers/staging/media/tegra-vde/Makefile
create mode 100644 drivers/staging/media/tegra-vde/TODO
create mode 100644 drivers/staging/media/tegra-vde/tegra-vde.c
create mode 100644 drivers/staging/media/tegra-vde/uapi.h

--
2.15.1