[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