diff options
author | Asahi Lina <lina@asahilina.net> | 2025-04-11 01:55:23 +0200 |
---|---|---|
committer | Danilo Krummrich <dakr@kernel.org> | 2025-04-24 14:00:10 +0200 |
commit | 1e4b8896c0f3cb305a32870e1d8624f1155072d5 (patch) | |
tree | 842570e25acc47731100c077243a4656e01b4818 /rust/kernel/drm/driver.rs | |
parent | 07c9016085f95fe9ad90079753f156859c54f476 (diff) |
rust: drm: add device abstraction
Implement the abstraction for a `struct drm_device`.
A `drm::Device` creates a static const `struct drm_driver` filled with
the data from the `drm::Driver` trait implementation of the actual
driver creating the `drm::Device`.
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Asahi Lina <lina@asahilina.net>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://lore.kernel.org/r/20250410235546.43736-5-dakr@kernel.org
[ Rewrite of drm::Device
* full rewrite of the drm::Device abstraction using the subclassing
pattern
* original source archive: http://archive.today/5NxBo
- Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/kernel/drm/driver.rs')
-rw-r--r-- | rust/kernel/drm/driver.rs | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/rust/kernel/drm/driver.rs b/rust/kernel/drm/driver.rs index c85cf5e4cd7c..26a5d66cc4c5 100644 --- a/rust/kernel/drm/driver.rs +++ b/rust/kernel/drm/driver.rs @@ -8,7 +8,6 @@ use crate::{bindings, drm, str::CStr}; use macros::vtable; /// Driver use the GEM memory manager. This should be set for all modern drivers. -#[expect(unused)] pub(crate) const FEAT_GEM: u32 = bindings::drm_driver_feature_DRIVER_GEM; /// Information data for a DRM Driver. @@ -27,14 +26,12 @@ pub struct DriverInfo { /// Internal memory management operation set, normally created by memory managers (e.g. GEM). pub struct AllocOps { - #[expect(unused)] pub(crate) gem_create_object: Option< unsafe extern "C" fn( dev: *mut bindings::drm_device, size: usize, ) -> *mut bindings::drm_gem_object, >, - #[expect(unused)] pub(crate) prime_handle_to_fd: Option< unsafe extern "C" fn( dev: *mut bindings::drm_device, @@ -44,7 +41,6 @@ pub struct AllocOps { prime_fd: *mut core::ffi::c_int, ) -> core::ffi::c_int, >, - #[expect(unused)] pub(crate) prime_fd_to_handle: Option< unsafe extern "C" fn( dev: *mut bindings::drm_device, @@ -53,14 +49,12 @@ pub struct AllocOps { handle: *mut u32, ) -> core::ffi::c_int, >, - #[expect(unused)] pub(crate) gem_prime_import: Option< unsafe extern "C" fn( dev: *mut bindings::drm_device, dma_buf: *mut bindings::dma_buf, ) -> *mut bindings::drm_gem_object, >, - #[expect(unused)] pub(crate) gem_prime_import_sg_table: Option< unsafe extern "C" fn( dev: *mut bindings::drm_device, @@ -68,7 +62,6 @@ pub struct AllocOps { sgt: *mut bindings::sg_table, ) -> *mut bindings::drm_gem_object, >, - #[expect(unused)] pub(crate) dumb_create: Option< unsafe extern "C" fn( file_priv: *mut bindings::drm_file, @@ -76,7 +69,6 @@ pub struct AllocOps { args: *mut bindings::drm_mode_create_dumb, ) -> core::ffi::c_int, >, - #[expect(unused)] pub(crate) dumb_map_offset: Option< unsafe extern "C" fn( file_priv: *mut bindings::drm_file, |