@@ -23,8 +23,6 @@ use crate::{
2323 types:: { ARef , AlwaysRefCounted , Opaque } ,
2424} ;
2525
26- use crate :: drm:: gem:: BaseDriverObject ;
27- use crate :: drm:: gem:: IntoGEMObject ;
2826use core:: cell:: UnsafeCell ;
2927use core:: marker:: { PhantomData , PhantomPinned } ;
3028use core:: mem:: ManuallyDrop ;
@@ -140,6 +138,9 @@ impl<T: Default> DriverGpuVmBo for T {
140138 }
141139}
142140
141+ /// A convenience type for the driver's GEM object.
142+ type Object < T > = <<T as DriverGpuVm >:: Driver as drm:: driver:: Driver >:: Object ;
143+
143144#[ repr( transparent) ]
144145pub struct OpMap < T : DriverGpuVm > ( bindings:: drm_gpuva_op_map , PhantomData < T > ) ;
145146#[ repr( transparent) ]
@@ -160,9 +161,9 @@ impl<T: DriverGpuVm> OpMap<T> {
160161 pub fn flags ( & self ) -> GpuVaFlags {
161162 GpuVaFlags ( self . 0 . flags )
162163 }
163- pub fn object ( & self ) -> & << T :: Driver as drm :: Driver > :: Object as BaseDriverObject > :: Object {
164+ pub fn object ( & self ) -> & Object < T > {
164165 let p = unsafe {
165- <<< T :: Driver as drm :: Driver > :: Object as BaseDriverObject > :: Object as IntoGEMObject >:: from_raw ( self . 0 . gem . obj )
166+ <Object :: < T > as IntoGEMObject >:: from_raw ( self . 0 . gem . obj )
166167 } ;
167168 // SAFETY: The GEM object has an active reference for the lifetime of this op
168169 & * p
@@ -495,7 +496,7 @@ impl<T: DriverGpuVm> GpuVm<T> {
495496 name : & ' static CStr ,
496497 flags : bindings:: drm_gpuvm_flags ,
497498 dev : & device:: Device < T :: Driver > ,
498- r_obj : ARef < << T :: Driver as drm :: Driver > :: Object as BaseDriverObject > :: Object > ,
499+ r_obj : ARef < Object < T > > ,
499500 range : Range < u64 > ,
500501 reserve_range : Range < u64 > ,
501502 inner : impl PinInit < T , E > ,
@@ -548,7 +549,7 @@ impl<T: DriverGpuVm> GpuVm<T> {
548549
549550 pub fn exec_lock < ' a , ' b > (
550551 & ' a self ,
551- obj : Option < & ' b << T :: Driver as drm :: Driver > :: Object as BaseDriverObject > :: Object > ,
552+ obj : Option < & ' b Object < T > > ,
552553 interruptible : bool ,
553554 ) -> Result < LockedGpuVm < ' a , ' b , T > > {
554555 // Do not try to lock the object if it is internal (since it is already locked).
@@ -672,7 +673,7 @@ unsafe impl<T: DriverGpuVm> AlwaysRefCounted for GpuVm<T> {
672673pub struct LockedGpuVm < ' a , ' b , T : DriverGpuVm > {
673674 gpuvm : & ' a GpuVm < T > ,
674675 vm_exec : KBox < bindings:: drm_gpuvm_exec > ,
675- obj : Option < & ' b << T :: Driver as drm :: Driver > :: Object as BaseDriverObject > :: Object > ,
676+ obj : Option < & ' b Object < T > > ,
676677}
677678
678679impl < T : DriverGpuVm > LockedGpuVm < ' _ , ' _ , T > {
0 commit comments