-
Notifications
You must be signed in to change notification settings - Fork 0
drm/apple: don't latch ->crashed when the poweroff clear swap times out #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: aurora-wip
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -936,7 +936,15 @@ void DCP_FW_NAME(iomfb_poweroff)(struct apple_dcp *dcp) | |
| swap_id = cookie->swap_id; | ||
| kref_put(&cookie->refcount, release_swap_cookie); | ||
| if (ret <= 0) { | ||
| dcp->crashed = true; | ||
| /* | ||
| * An unplugged display leaves this swap unacknowledged. That | ||
| * is not a crash, and ->crashed rejects every later commit on | ||
| * this CRTC until reboot. Return rather than continuing the | ||
| * teardown: that path fails the dptx HPD deassert and the | ||
| * display never comes back. | ||
| */ | ||
| dev_warn(dcp->dev, | ||
| "poweroff: clear swap did not complete in 50 ms\n"); | ||
|
Comment on lines
+946
to
+947
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This branch is described as an expected result of routinely unplugging an external display, but it emits an unconditional warning each time. That makes normal hot-unplug activity look like a driver fault and adds avoidable kernel-log noise. Use an informational or debug-level message, or rate-limit the diagnostic. Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time! |
||
| return; | ||
| } | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A clear-swap timeout can also occur when the DCP silently stops responding. RTKit only calls
dcp_rtk_crashed()after an explicit crashlog message, so a silent wedge does not setdcp->crashed. This change treats every timeout as benign, allowing later atomic checks and readiness waits to keep sending work to unresponsive firmware instead of failing fast, which can cause repeated command timeouts. Only suppress the crash latch when the timeout can be attributed to a disconnected output.