Skip to content

Commit ec3c807

Browse files
committed
drm/asahi: rtkit pin adaptation
Signed-off-by: Janne Grunau <j@jannau.net>
1 parent e7fa729 commit ec3c807

1 file changed

Lines changed: 16 additions & 14 deletions

File tree

drivers/gpu/drm/asahi/gpu.rs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)