Skip to content

backends/drm: don't take crtcs from dpms disabled outputs

Xaver Hugl requested to merge work/fix-suspend-crash into master

Fixes a crash I have with dpms + suspend, which was caused by the udev event for updating outputs being called before the output got enabled again. When DrmGpu::updateOutputs got called it removed the crtc from the inactive output and then disabled the output afterwards. Instead, only remove crtcs if an output is really disabled.

This also allows to generalize the logic for lease outputs, and could in the future allow for faster dpms on/off switching, as the CRTC changing stuff isn't too fast (on the driver / hardware side).

Merge request reports