--- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -2386,8 +2386,12 @@ sna_output->backlight_active_level); } else { /* Only save the current backlight value if we're going from on to off. */ - if (oldmode == DPMSModeOn) - sna_output->backlight_active_level = sna_output_backlight_get(output); + if (oldmode == DPMSModeOn) { + int brightness = sna_output_backlight_get(output); + if (brightness > 0) { + sna_output->backlight_active_level = brightness; + } + } sna_output_backlight_set(output, 0); } } --- a/src/uxa/intel_display.c +++ b/src/uxa/intel_display.c @@ -1095,8 +1095,12 @@ intel_output->backlight_active_level); } else { /* Only save the current backlight value if we're going from on to off. */ - if (oldmode == DPMSModeOn) - intel_output->backlight_active_level = intel_output_backlight_get(output); + if (oldmode == DPMSModeOn) { + int brightness = intel_output_backlight_get(output); + if (brightness > 0) { + intel_output->backlight_active_level = brightness; + } + } intel_output_backlight_set(output, 0); } }