@@ -1118,7 +1118,7 @@ impl GpuManager::ver {
11181118 mod_dev_dbg ! ( self . dev, "GPU: run_job: ring doorbell\n " ) ;
11191119
11201120 let mut guard = self . rtkit . lock ( ) ;
1121- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1121+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
11221122 rtk. send_message (
11231123 EP_DOORBELL ,
11241124 MSG_TX_DOORBELL | pipe_type as u64 | ( ( index as u64 ) << 2 ) ,
@@ -1189,7 +1189,7 @@ impl GpuManager::ver {
11891189
11901190 {
11911191 let mut guard = self . rtkit . lock ( ) ;
1192- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1192+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
11931193 rtk. send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_DEVCTRL ) ?;
11941194 }
11951195
@@ -1252,13 +1252,15 @@ impl GpuManager for GpuManager::ver {
12521252
12531253 let initdata = self . initdata . gpu_va ( ) . get ( ) ;
12541254 let mut guard = self . rtkit . lock ( ) ;
1255- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1256-
1257- rtk. boot ( ) ?;
1258- rtk. start_endpoint ( EP_FIRMWARE ) ?;
1259- rtk. start_endpoint ( EP_DOORBELL ) ?;
1260- rtk. send_message ( EP_FIRMWARE , MSG_INIT | ( initdata & INIT_DATA_MASK ) ) ?;
1261- rtk. send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_DEVCTRL ) ?;
1255+ let mut rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
1256+
1257+ rtk. as_mut ( ) . boot ( ) ?;
1258+ rtk. as_mut ( ) . start_endpoint ( EP_FIRMWARE ) ?;
1259+ rtk. as_mut ( ) . start_endpoint ( EP_DOORBELL ) ?;
1260+ rtk. as_mut ( )
1261+ . send_message ( EP_FIRMWARE , MSG_INIT | ( initdata & INIT_DATA_MASK ) ) ?;
1262+ rtk. as_mut ( )
1263+ . send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_DEVCTRL ) ?;
12621264 core:: mem:: drop ( guard) ;
12631265
12641266 self . kick_firmware ( ) ?;
@@ -1364,7 +1366,7 @@ impl GpuManager for GpuManager::ver {
13641366 }
13651367
13661368 let mut guard = self . rtkit . lock ( ) ;
1367- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1369+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
13681370 rtk. send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_KICKFW ) ?;
13691371
13701372 Ok ( ( ) )
@@ -1405,7 +1407,7 @@ impl GpuManager for GpuManager::ver {
14051407 let token = txch. device_control . send ( & dc) ;
14061408 {
14071409 let mut guard = self . rtkit . lock ( ) ;
1408- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1410+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
14091411 rtk. send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_DEVCTRL ) ?;
14101412 }
14111413
@@ -1515,7 +1517,7 @@ impl GpuManager for GpuManager::ver {
15151517 let token = txch. device_control . send ( & dc) ;
15161518 {
15171519 let mut guard = self . rtkit . lock ( ) ;
1518- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1520+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
15191521 if rtk
15201522 . send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_DEVCTRL )
15211523 . is_err ( )
@@ -1562,7 +1564,7 @@ impl GpuManager for GpuManager::ver {
15621564 txch. device_control . send ( & dc) ;
15631565 {
15641566 let mut guard = self . rtkit . lock ( ) ;
1565- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1567+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
15661568 if rtk
15671569 . send_message ( EP_DOORBELL , MSG_TX_DOORBELL | DOORBELL_DEVCTRL )
15681570 . is_err ( )
@@ -1581,7 +1583,7 @@ impl GpuManager for GpuManager::ver {
15811583 let token = fwctl. send ( & msg) ;
15821584 {
15831585 let mut guard = self . rtkit . lock ( ) ;
1584- let rtk = guard. as_mut ( ) . unwrap ( ) ;
1586+ let rtk = guard. as_mut ( ) . as_pin_mut ( ) . unwrap ( ) ;
15851587 rtk. send_message ( EP_DOORBELL , MSG_FWCTL ) ?;
15861588 }
15871589 fwctl. wait_for ( token) ?;
0 commit comments