Re: [PATCH] i915: Fix bug where screen brightness is not restored

From: Kamal Mostafa
Date: Tue Nov 15 2011 - 14:58:47 EST


On Mon, 2011-11-14 at 18:42 -0800, Alex Davis wrote:
> From: Alex Davis<alex14641@xxxxxxxxx>
>
> This patch fixes an issue where the screen would remain dark when
>
> a key was pressed when the laptop lid was reopened or after the
> laptop had gone into power-save mode.

[cross-posting to intel-gfx]

Keith, also note that Alex and I did respond to your request to test the
already committed patch "drm/i915/panel: Always record the backlight
level again (but cleverly)". We both determined that patch does *not*
fix the problem. Alex's patch below does fix it.

Matthew, any comment on the question that I fielded?:

>> Why does intel_panel_disable_backlight even want to set the
>> brightness to 0 anyway?... Its only caller is just about to turn
>> off power to the panel. Is that call to
>> intel_panel_{,actually_}set_backlight(dev, 0) really necessary
>> or useful on *any* systems?

-Kamal


> It seems that there are a number of people with different machines
> that have this problem:
>
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/872652
> https://launchpad.net/~kamalmostafa/+archive/stuck-backlight
> and https://bugs.freedesktop.org/show_bug.cgi?id=41926
>
> This patch is against Linux 3.1
>
> Putting printk's in ./drivers/gpu/drm/i915/intel_panel.c showed that
> intel_get_brightness was being called after the panel was disabled,
> which caused a 0 to be saved as the value to restore the brightness.
> intel_panel_disable_backlight merely sets the brightness to 0. Commenting
> out this call allows the correct brightness value to be saved.
>
> Signed-off-by: Alex Davis <alex14641@xxxxxxxxx>
> Tested-by: Kamal Mostafa <kamal@xxxxxxxxxxxxx>
> -----
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index a9e0c7b..6f56676 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -262,8 +262,6 @@ void intel_panel_disable_backlight(struct drm_device *dev)
> dev_priv->backlight_level = intel_panel_get_backlight(dev);
> dev_priv->backlight_enabled = false;
> }
> -
> - intel_panel_set_backlight(dev, 0);
> }
>
> void intel_panel_enable_backlight(struct drm_device *dev)
>
>
>
> I code, therefore I am
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

Attachment: signature.asc
Description: This is a digitally signed message part