Skip to content

Commit 77b072a

Browse files
committed
fixup! drm/asahi: Handle channel errors
1 parent dbc82cd commit 77b072a

2 files changed

Lines changed: 28 additions & 16 deletions

File tree

drivers/gpu/drm/asahi/channel.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,10 @@ impl EventChannel::ver {
414414
);
415415
}
416416
None => {
417-
dev_crit!(self.dev, "EventChannel: No GPU manager available!\n")
417+
dev_crit!(
418+
self.dev.as_ref(),
419+
"EventChannel: No GPU manager available!\n"
420+
)
418421
}
419422
},
420423
msg => {

drivers/gpu/drm/asahi/gpu.rs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,17 +1359,17 @@ impl GpuManager for GpuManager::ver {
13591359
event_slot: u32,
13601360
event_value: u32,
13611361
) {
1362-
dev_err!(self.dev, " (\\________/) \n");
1363-
dev_err!(self.dev, " | | \n");
1364-
dev_err!(self.dev, "'.| \\ , / |.'\n");
1365-
dev_err!(self.dev, "--| / (( \\ |--\n");
1366-
dev_err!(self.dev, ".'| _-_- |'.\n");
1367-
dev_err!(self.dev, " |________| \n");
1368-
dev_err!(self.dev, "GPU channel error nya~!!!!!\n");
1369-
dev_err!(self.dev, " Error type: {:?}\n", error_type);
1370-
dev_err!(self.dev, " Pipe type: {}\n", pipe_type);
1371-
dev_err!(self.dev, " Event slot: {}\n", event_slot);
1372-
dev_err!(self.dev, " Event value: {:#x?}\n", event_value);
1362+
dev_err!(self.dev.as_ref(), " (\\________/) \n");
1363+
dev_err!(self.dev.as_ref(), " | | \n");
1364+
dev_err!(self.dev.as_ref(), "'.| \\ , / |.'\n");
1365+
dev_err!(self.dev.as_ref(), "--| / (( \\ |--\n");
1366+
dev_err!(self.dev.as_ref(), ".'| _-_- |'.\n");
1367+
dev_err!(self.dev.as_ref(), " |________| \n");
1368+
dev_err!(self.dev.as_ref(), "GPU channel error nya~!!!!!\n");
1369+
dev_err!(self.dev.as_ref(), " Error type: {:?}\n", error_type);
1370+
dev_err!(self.dev.as_ref(), " Pipe type: {}\n", pipe_type);
1371+
dev_err!(self.dev.as_ref(), " Event slot: {}\n", event_slot);
1372+
dev_err!(self.dev.as_ref(), " Event value: {:#x?}\n", event_value);
13731373

13741374
self.event_manager.mark_error(
13751375
event_slot,
@@ -1380,15 +1380,18 @@ impl GpuManager for GpuManager::ver {
13801380
let wq = match self.event_manager.get_owner(event_slot) {
13811381
Some(wq) => wq,
13821382
None => {
1383-
dev_err!(self.dev, "Workqueue not found for this event slot!\n");
1383+
dev_err!(
1384+
self.dev.as_ref(),
1385+
"Workqueue not found for this event slot!\n"
1386+
);
13841387
return;
13851388
}
13861389
};
13871390

13881391
let wq = match wq.as_any().downcast_ref::<workqueue::WorkQueue::ver>() {
13891392
Some(wq) => wq,
13901393
None => {
1391-
dev_crit!(self.dev, "GpuManager mismatched with WorkQueue!\n");
1394+
dev_crit!(self.dev.as_ref(), "GpuManager mismatched with WorkQueue!\n");
13921395
return;
13931396
}
13941397
};
@@ -1415,12 +1418,18 @@ impl GpuManager for GpuManager::ver {
14151418
.send_message(EP_DOORBELL, MSG_TX_DOORBELL | DOORBELL_DEVCTRL)
14161419
.is_err()
14171420
{
1418-
dev_err!(self.dev, "Failed to send Recover Channel command\n");
1421+
dev_err!(
1422+
self.dev.as_ref(),
1423+
"Failed to send Recover Channel command\n"
1424+
);
14191425
}
14201426
}
14211427

14221428
if txch.device_control.wait_for(token).is_err() {
1423-
dev_err!(self.dev, "Timed out waiting for Recover Channel command\n");
1429+
dev_err!(
1430+
self.dev.as_ref(),
1431+
"Timed out waiting for Recover Channel command\n"
1432+
);
14241433
}
14251434

14261435
if debug_enabled(DebugFlags::VerboseFaults) {

0 commit comments

Comments
 (0)