diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-01-28 12:51:00 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2014-01-28 12:51:00 +0000 |
commit | b99c8cbefdd8fec686ad81fbffebb70d43880779 (patch) | |
tree | b43a10dbd11eba147de6166262eb90b803735bfc /src/sna/sna_display.c | |
parent | 47effa1854e331643302146db238e6b092de8a9a (diff) |
sna: Cancel the backlight change if set-property(DPMS) fails
If the kernel reports an error from setting the DPMS property, we need
to undo the local changes and propagate back the error to the caller.
Although the latter is prevented by the RandR API, we can at least
restore the backlight.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/sna/sna_display.c')
-rw-r--r-- | src/sna/sna_display.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index c28f558c..cf3e5761 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -2418,11 +2418,12 @@ sna_output_dpms(xf86OutputPtr output, int dpms) sna_output->dpms_mode, dpms); - if (output->crtc) - drmModeConnectorSetProperty(sna->kgem.fd, - sna_output->id, - sna_output->dpms_id, - dpms); + if (output->crtc && + drmModeConnectorSetProperty(sna->kgem.fd, + sna_output->id, + sna_output->dpms_id, + dpms)) + dpms = sna_output->dpms_mode; if (dpms == DPMSModeOn) sna_output_dpms_backlight(output, |