Skip to content

backends/drm: fix enabled+inactive check

Xaver Hugl requested to merge work/zamundaaa/dpms-suspend into master

When dpms disabled outputs get set active, they require a modeset. If after that they are set inactive again without resetting the pipelines first, they no longer require a modeset but still have the pending properties that would enable a crtc - but without a framebuffer set.

To prevent this, first test the current setup as it is, and only then see if the pipelines would work if enabled again.

This is a situation that happens almost always when outputs are dpms disabled and the system goes to standby; the awoke() signal that turns the outputs on gets processed only after a change event from udev. Because of that, this should be backported to 5.24

Merge request reports