[Intel-gfx] [PATCH] drm/i915: do not disable backlight on vgaswitcheroo switch off
Jani Nikula
jani.nikula at intel.com
Wed Aug 7 08:26:34 CEST 2013
On Thu, 25 Jul 2013, Jani Nikula <jani.nikula at intel.com> wrote:
> On muxed systems, the other vgaswitcheroo client may depend on i915 to
> handle the backlight. We began switching off the backlight since
>
> commit a261b246ebd552fd5d5a8ed84cc931bb821c427f
> Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> Date: Thu Jul 26 19:21:47 2012 +0200
>
> drm/i915: disable all crtcs at suspend time
>
> breaking backlight on discreet graphics in (some) muxed systems.
>
> Keep the backlight on when the state is changed through vgaswitcheroo.
>
> Note: The alternative would be to add a quirk table to achieve the same
> based on system identifiers, but AFAICS it would asymptotically approach
> effectively the same as this patch as more IDs are added, but with the
> maintenance burden of the quirk table.
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=55311
Tested-by: Fede <fedevx at yahoo.com>
Tested-by: Aximab <laurent.debian at gmail.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59785
Tested-by: sfievet <sebastien.fievet at free.fr>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
> drivers/gpu/drm/i915/intel_panel.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 67e2c1f..1062154 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -515,6 +515,17 @@ void intel_panel_disable_backlight(struct drm_device *dev)
> struct drm_i915_private *dev_priv = dev->dev_private;
> unsigned long flags;
>
> + /*
> + * Do not disable backlight on the vgaswitcheroo path. When switching
> + * away from i915, the other client may depend on i915 to handle the
> + * backlight. This will leave the backlight on unnecessarily when
> + * another client is not activated.
> + */
> + if (dev->switch_power_state == DRM_SWITCH_POWER_CHANGING) {
> + DRM_DEBUG_DRIVER("Skipping backlight disable on vga switch\n");
> + return;
> + }
> +
> spin_lock_irqsave(&dev_priv->backlight.lock, flags);
>
> dev_priv->backlight.enabled = false;
> --
> 1.7.9.5
>
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list