drm/i915: Fix DPMS and suspend interaction for intel_panel.c

Chris Wilson chris at chris-wilson.co.uk
Fri Mar 11 00:07:38 PST 2011


On Fri, 11 Mar 2011 02:35:45 +0100 (CET), "Indan Zupancic" <indan at nul.nu> wrote:
> drm/i915: Fix DPMS and suspend interaction for intel_panel.c
> 
> When suspending intel_panel_disable_backlight() is never called,
> but intel_panel_enable_backlight() is called at resume. With the
> effect that if the brightness was ever changed after screen
> blanking, the wrong brightness gets restored at resume time.
> 
> Nothing guarantees that those calls will be balanced, so having
> backlight_enabled makes no sense, as the real state can change
> without the panel code noticing. So keep things as stateless as
> possible.

The problem is wider than described since the BIOS/ACPI may modify the
registers without notifying the driver, and we fail to honour any user
requests whilst the panel is off. Also, there is the greater of problem
that the PWM registers simply have no effect on many machines, and we
need to make an ACPI call to adjust the backlight.  However, this
behaviour has been there since the inception, we can wait until the next
merge cycle.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the dri-devel mailing list