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 >> >