From: Thierry Reding <treding@xxxxxxxxxx> Hi all, Mikko has been away for a few weeks, so I've been testing and revising the new UABI patches in the meantime. There are very minor changes to the naming of some of the UABI fields, but other than that it's mostly unchanged from v7. One notable change is that mappings can now be read-only, write-only, read-write or none of them (rather than just read-only or read-write), since those combinations are all supported by the IOMMUs and it might be useful to make some mappings write-only. For a full list of changes in v8, see the changelog in patch 6. I've also updated the libdrm_tegra library to work against this version of the UABI. A branch can be found here: https://gitlab.freedesktop.org/tagr/drm/-/commits/drm-tegra-uabi-v8 That contains helper APIs for the concepts introduced in this series and shows how they can be used in various tests that can be run for sanity checking. In addition, Mikko has made updates to the following projects, though they may need to be updated for the minor changes in v8: * vaapi-tegra-driver - https://github.com/cyndis/vaapi-tegra-driver Experimental support for MPEG2 and H264 decoding on T210, T186 and T194. * xf86-video-opentegra - https://github.com/grate-driver/xf86-video-opentegra X11 userspace acceleration driver for Tegra20, Tegra30, and Tegra114. * grate - https://github.com/grate-driver/grate 3D rendering testbed for Tegra20, Tegra30, and Tegra114 I plan on putting this into linux-next soon after v5.14-rc1 so that this can get some soak time. Thierry Mikko Perttunen (14): gpu: host1x: Add DMA fence implementation gpu: host1x: Add no-recovery mode gpu: host1x: Add job release callback gpu: host1x: Add support for syncpoint waits in CDMA pushbuffer drm/tegra: Extract tegra_gem_lookup drm/tegra: Add new UAPI to header drm/tegra: Boot VIC during runtime PM resume drm/tegra: Allocate per-engine channel in core code drm/tegra: Implement new UAPI drm/tegra: Implement syncpoint management UAPI drm/tegra: Implement syncpoint wait UAPI drm/tegra: Implement job submission part of new UAPI drm/tegra: Add job firewall drm/tegra: Bump driver version drivers/gpu/drm/tegra/Makefile | 4 + drivers/gpu/drm/tegra/drm.c | 82 ++-- drivers/gpu/drm/tegra/drm.h | 12 + drivers/gpu/drm/tegra/firewall.c | 254 ++++++++++ drivers/gpu/drm/tegra/gather_bo.c | 81 ++++ drivers/gpu/drm/tegra/gather_bo.h | 22 + drivers/gpu/drm/tegra/gem.c | 13 + drivers/gpu/drm/tegra/gem.h | 2 + drivers/gpu/drm/tegra/submit.c | 527 +++++++++++++++++++++ drivers/gpu/drm/tegra/submit.h | 21 + drivers/gpu/drm/tegra/uapi.c | 387 +++++++++++++++ drivers/gpu/drm/tegra/uapi.h | 58 +++ drivers/gpu/drm/tegra/vic.c | 112 ++--- drivers/gpu/host1x/Makefile | 1 + drivers/gpu/host1x/cdma.c | 58 ++- drivers/gpu/host1x/fence.c | 209 ++++++++ drivers/gpu/host1x/fence.h | 13 + drivers/gpu/host1x/hw/channel_hw.c | 87 +++- drivers/gpu/host1x/hw/debug_hw.c | 9 +- drivers/gpu/host1x/hw/hw_host1x02_uclass.h | 12 + drivers/gpu/host1x/hw/hw_host1x04_uclass.h | 12 + drivers/gpu/host1x/hw/hw_host1x05_uclass.h | 12 + drivers/gpu/host1x/hw/hw_host1x06_uclass.h | 12 + drivers/gpu/host1x/hw/hw_host1x07_uclass.h | 12 + drivers/gpu/host1x/intr.c | 9 + drivers/gpu/host1x/intr.h | 2 + drivers/gpu/host1x/job.c | 77 ++- drivers/gpu/host1x/job.h | 16 + drivers/gpu/host1x/syncpt.c | 2 + drivers/gpu/host1x/syncpt.h | 12 + include/linux/host1x.h | 22 +- include/uapi/drm/tegra_drm.h | 425 ++++++++++++++++- 32 files changed, 2408 insertions(+), 169 deletions(-) create mode 100644 drivers/gpu/drm/tegra/firewall.c create mode 100644 drivers/gpu/drm/tegra/gather_bo.c create mode 100644 drivers/gpu/drm/tegra/gather_bo.h create mode 100644 drivers/gpu/drm/tegra/submit.c create mode 100644 drivers/gpu/drm/tegra/submit.h create mode 100644 drivers/gpu/drm/tegra/uapi.c create mode 100644 drivers/gpu/drm/tegra/uapi.h create mode 100644 drivers/gpu/host1x/fence.c create mode 100644 drivers/gpu/host1x/fence.h -- 2.32.0