On 14.12.2016 14:30, Daniel Vetter wrote:
On Wed, Dec 14, 2016 at 01:16:10PM +0200, Mikko Perttunen wrote:
This series adds IOMMU support to Host1x and TegraDRM
and adds support for the VIC (Video Image Compositor)
host1x client. The series is available as a git repository at
git://github.com/cyndis/linux.git; branch vic-2.
A userspace test case for VIC can be found at
https://github.com/cyndis/drm/tree/work/tegra.
The testcase is in tests/tegra and is called submit_vic.
The testcase/TRM include full headers and documentation
to program the unit. The unit by itself, however, does not
readily map to existing userspace library interfaces, so
implementations for those are not provided.
Afaik libva has an entire pile of post-processing support. Pretty sure
other video transcode libraries have similar interfaces, so should all be
possible to implement this.
We don't have any actual video transcoding support though, so unless
it's possible to just implement a part of libva and defer the rest to
some CPU implementation, I don't see how this is useful. I suppose I
could implement a GStreamer plugin for colorspace conversion or
resizing, since those are very modular.
Until that exists I really think that the VIC part (and only that, since
tk1/tx1 in general seems to work with nouveau and all that) should stay
out of tree.
Ok. I'll try to whip up something.
-Daniel
Thanks,
Mikko.
The in-kernel firewall is not implemented for VIC;
therefore, either the IOMMU must be enabled or the firewall
disabled for the test to pass.
Tested with Jetson TX1 (T210). Probably works also
with Jetson TK1 (T124). Note that due to hardware changes
the testcase also needs to be changed to run properly
on T124: this can be done by removing the topmost
commit of the aforementioned test repository.
Thanks,
Mikko.
Arto Merilainen (2):
drm/tegra: Add falcon helper library
drm/tegra: Add VIC support
Mikko Perttunen (5):
drm/tegra: Add Tegra DRM allocation API
gpu: host1x: Add IOMMU support
dt-bindings: Add bindings for the Tegra VIC
arm64: tegra: Enable VIC on T210
arm64: tegra: Enable IOMMU for Host1x on Tegra210
.../display/tegra/nvidia,tegra20-host1x.txt | 13 +
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 19 +-
drivers/gpu/drm/tegra/Makefile | 4 +-
drivers/gpu/drm/tegra/drm.c | 114 +++++-
drivers/gpu/drm/tegra/drm.h | 12 +
drivers/gpu/drm/tegra/falcon.c | 259 ++++++++++++++
drivers/gpu/drm/tegra/falcon.h | 127 +++++++
drivers/gpu/drm/tegra/vic.c | 396 +++++++++++++++++++++
drivers/gpu/drm/tegra/vic.h | 31 ++
drivers/gpu/host1x/cdma.c | 74 +++-
drivers/gpu/host1x/cdma.h | 6 +-
drivers/gpu/host1x/dev.c | 40 ++-
drivers/gpu/host1x/dev.h | 6 +
drivers/gpu/host1x/hw/cdma_hw.c | 16 +-
drivers/gpu/host1x/job.c | 72 +++-
drivers/gpu/host1x/job.h | 1 +
include/linux/host1x.h | 1 +
17 files changed, 1143 insertions(+), 48 deletions(-)
create mode 100644 drivers/gpu/drm/tegra/falcon.c
create mode 100644 drivers/gpu/drm/tegra/falcon.h
create mode 100644 drivers/gpu/drm/tegra/vic.c
create mode 100644 drivers/gpu/drm/tegra/vic.h
--
2.10.2
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html