summaryrefslogtreecommitdiff
path: root/rust/kernel/drm/driver.rs
diff options
context:
space:
mode:
authorAsahi Lina <lina@asahilina.net>2025-04-11 01:55:23 +0200
committerDanilo Krummrich <dakr@kernel.org>2025-04-24 14:00:10 +0200
commit1e4b8896c0f3cb305a32870e1d8624f1155072d5 (patch)
tree842570e25acc47731100c077243a4656e01b4818 /rust/kernel/drm/driver.rs
parent07c9016085f95fe9ad90079753f156859c54f476 (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.rs8
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,