From: Deborah Brouwer Date: Tue, 28 Apr 2026 19:19:32 +0000 (-0700) Subject: drm/tyr: add shmem backing for GEM objects X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=610e892bdb57043c7769982c2bff0260b6007b75;p=thirdparty%2Fkernel%2Flinux.git drm/tyr: add shmem backing for GEM objects Add support for GEM buffer objects backed by shared memory. This introduces the BoCreateArgs structure for passing creation parameters including flags, and adds a flags field to BoData. Co-developed-by: Boris Brezillon Signed-off-by: Boris Brezillon Signed-off-by: Deborah Brouwer Link: https://patch.msgid.link/20260428-fw-boot-prerequisites-v1-5-c69af9abe1af@collabora.com Signed-off-by: Alice Ryhl --- diff --git a/drivers/gpu/drm/tyr/gem.rs b/drivers/gpu/drm/tyr/gem.rs index 66c427a16c315..1640a161754b2 100644 --- a/drivers/gpu/drm/tyr/gem.rs +++ b/drivers/gpu/drm/tyr/gem.rs @@ -1,4 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 or MIT +//! GEM buffer object management for the Tyr driver. +//! +//! This module provides buffer object (BO) management functionality using +//! DRM's GEM subsystem with shmem backing. use kernel::{ drm::gem, @@ -10,15 +14,23 @@ use crate::driver::{ TyrDrmDriver, // }; -/// GEM Object inner driver data +/// Tyr's DriverObject type for GEM objects. #[pin_data] -pub(crate) struct BoData {} +pub(crate) struct BoData { + flags: u32, +} + +/// Provides a way to pass arguments when creating BoData +/// as required by the gem::DriverObject trait. +pub(crate) struct BoCreateArgs { + flags: u32, +} impl gem::DriverObject for BoData { type Driver = TyrDrmDriver; - type Args = (); + type Args = BoCreateArgs; - fn new(_dev: &TyrDrmDevice, _size: usize, _args: ()) -> impl PinInit { - try_pin_init!(BoData {}) + fn new(_dev: &TyrDrmDevice, _size: usize, args: BoCreateArgs) -> impl PinInit { + try_pin_init!(Self { flags: args.flags }) } }