Split NovaDriver into a unit struct for trait implementations and a separate Nova struct for the private driver data.
Signed-off-by: Danilo Krummrich <[email protected]> --- drivers/gpu/drm/nova/driver.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/nova/driver.rs b/drivers/gpu/drm/nova/driver.rs index e4765bc5b3ec..4289df7de01c 100644 --- a/drivers/gpu/drm/nova/driver.rs +++ b/drivers/gpu/drm/nova/driver.rs @@ -15,9 +15,11 @@ use crate::file::File; use crate::gem::NovaObject; -pub(crate) struct NovaDriver { +pub(crate) struct NovaDriver; + +pub(crate) struct Nova { #[expect(unused)] - drm: ARef<drm::Device<Self>>, + drm: ARef<drm::Device<NovaDriver>>, } /// Convienence type alias for the DRM device type for this driver @@ -51,19 +53,19 @@ pub(crate) struct NovaData { impl auxiliary::Driver for NovaDriver { type IdInfo = (); - type Data<'bound> = Self; + type Data<'bound> = Nova; const ID_TABLE: auxiliary::IdTable<Self::IdInfo> = &AUX_TABLE; fn probe<'bound>( adev: &'bound auxiliary::Device<Core<'_>>, _info: &'bound Self::IdInfo, - ) -> impl PinInit<Self, Error> + 'bound { + ) -> impl PinInit<Self::Data<'bound>, Error> + 'bound { let data = try_pin_init!(NovaData { adev: adev.into() }); let drm = drm::Device::<Self>::new(adev.as_ref(), data)?; drm::Registration::new_foreign_owned(&drm, adev.as_ref(), 0)?; - Ok(Self { drm }) + Ok(Nova { drm }) } } -- 2.54.0
