[PATCH 0/7] Rust abstractions for shmem-backed GEM objects

From: Daniel Almeida
Date: Tue Mar 18 2025 - 15:26:54 EST


Hi all,

This series picks up the work carried out by the Asahi project for
shmem-backed GEM objects. This initial version is meant to kickstart the
discussion on this topic, as the bindings will be clearly needed by Tyr
and other drivers.

It has been tested on both AGX and Tyr successfully.

I did provide a minor fix for a missing #include, but I did not touch
this code otherwise so far. Even the rebase was done by Janne Grunnau.

Applies on top of

commit 0722a3f4f15545a4a25fd124b6955a5b6498e23a
Author: Danilo Krummrich <dakr@xxxxxxxxxx>
Date: Tue Oct 15 17:19:27 2024 +0200

nova: add initial driver stub


---
Asahi Lina (7):
drm/shmem-helper: Add lockdep asserts to vmap/vunmap
drm/gem-shmem: Export VM ops functions
rust: helpers: Add bindings/wrappers for dma_resv_lock
rust: drm: gem: shmem: Add DRM shmem helper abstraction
drm/gem: Add a flag to control whether objects can be exported
rust: drm: gem: Add set_exportable() method
rust: drm: gem: shmem: Add share_dma_resv() function

drivers/gpu/drm/drm_gem.c | 1 +
drivers/gpu/drm/drm_gem_shmem_helper.c | 13 +-
drivers/gpu/drm/drm_prime.c | 5 +
include/drm/drm_gem.h | 8 +
include/drm/drm_gem_shmem_helper.h | 3 +
rust/bindings/bindings_helper.h | 4 +
rust/helpers/dma-resv.c | 13 +
rust/helpers/drm.c | 46 ++++
rust/helpers/helpers.c | 2 +
rust/helpers/scatterlist.c | 13 +
rust/kernel/drm/gem/mod.rs | 15 ++
rust/kernel/drm/gem/shmem.rs | 457 +++++++++++++++++++++++++++++++++
12 files changed, 577 insertions(+), 3 deletions(-)
---
base-commit: 0722a3f4f15545a4a25fd124b6955a5b6498e23a
change-id: 20250318-drm-gem-shmem-8bb647b66b1c

Best regards,
--
Daniel Almeida <daniel.almeida@xxxxxxxxxxxxx>