diff options
| author | Timur Tabi <ttabi@nvidia.com> | 2026-03-19 16:26:56 -0500 |
|---|---|---|
| committer | Danilo Krummrich <dakr@kernel.org> | 2026-03-25 01:24:26 +0100 |
| commit | ea0c83806f790de0b3441ddebbbcfd82196d6cce (patch) | |
| tree | 520c3188f171aa2844bb6ab83f28224422f1a799 /drivers/gpu | |
| parent | 01681851393642e10b5cc3f35eb6a1916ee4aff1 (diff) | |
| download | linux-ea0c83806f790de0b3441ddebbbcfd82196d6cce.tar.gz linux-ea0c83806f790de0b3441ddebbbcfd82196d6cce.zip | |
gpu: nova-core: Replace module_pci_driver! with explicit module init
Replace the module_pci_driver! macro with an explicit module
initialization using the standard module! macro and InPlaceModule
trait implementation. No functional change intended, with the
exception that the driver now prints a message when loaded.
This change is necessary so that we can create a top-level "nova_core"
debugfs entry when the driver is loaded.
Signed-off-by: Timur Tabi <ttabi@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Alexandre Courbot <acourbot@nvidia.com>
Tested-by: John Hubbard <jhubbard@nvidia.com>
Tested-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260319212658.2541610-5-ttabi@nvidia.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/nova-core/nova_core.rs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/drivers/gpu/nova-core/nova_core.rs b/drivers/gpu/nova-core/nova_core.rs index b5caf1044697..0114a59825aa 100644 --- a/drivers/gpu/nova-core/nova_core.rs +++ b/drivers/gpu/nova-core/nova_core.rs @@ -2,6 +2,13 @@ //! Nova Core GPU Driver +use kernel::{ + driver::Registration, + pci, + prelude::*, + InPlaceModule, // +}; + #[macro_use] mod bitfield; @@ -20,8 +27,22 @@ mod vbios; pub(crate) const MODULE_NAME: &core::ffi::CStr = <LocalModule as kernel::ModuleMetadata>::NAME; -kernel::module_pci_driver! { - type: driver::NovaCore, +#[pin_data] +struct NovaCoreModule { + #[pin] + _driver: Registration<pci::Adapter<driver::NovaCore>>, +} + +impl InPlaceModule for NovaCoreModule { + fn init(module: &'static kernel::ThisModule) -> impl PinInit<Self, Error> { + try_pin_init!(Self { + _driver <- Registration::new(MODULE_NAME, module), + }) + } +} + +module! { + type: NovaCoreModule, name: "NovaCore", authors: ["Danilo Krummrich"], description: "Nova Core GPU driver", |
