Adopt the driver core lifetime infrastructure for nova. Use the lifetime-bound pci::Bar directly in NovaCore, eliminating the Arc<Devres<Bar0>> indirection. This lets SysmemFlush borrow the Bar and implement Drop for automatic cleanup.
Replace ARef<Device> with plain borrows in SysmemFlush and the GSP sequencer, where the structs are already lifetime-parameterized. Separate the driver type from the driver data to allow the private data to be lifetime-parameterized via the Data GAT. This patch series is based on [1] and drm-rust-next. [1] https://lore.kernel.org/driver-core/[email protected]/ Danilo Krummrich (5): gpu: nova-core: use lifetime for Bar gpu: nova-core: unregister sysmem flush page from Drop gpu: nova-core: replace ARef<Device> with &'bound Device in SysmemFlush gpu: nova-core: gsp: replace ARef<Device> with &'a Device in sequencer gpu: nova: separate driver type from driver data drivers/gpu/drm/nova/driver.rs | 12 ++++---- drivers/gpu/nova-core/driver.rs | 32 +++++++++------------- drivers/gpu/nova-core/fb.rs | 31 ++++++++++----------- drivers/gpu/nova-core/gpu.rs | 38 ++++++++------------------ drivers/gpu/nova-core/gsp/boot.rs | 2 +- drivers/gpu/nova-core/gsp/sequencer.rs | 11 ++++---- 6 files changed, 52 insertions(+), 74 deletions(-) -- 2.54.0
