Re: [PATCH 2/2] drm/i915: do not setup backlight if not available according to VBT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2014-04-09 at 13:35 +0300, Jani Nikula wrote:
> Some machines use an external EC for controlling the backlight. Info
> about this is present in the VBT. Do not setup native backlight control
> if no PWM backlight is available or supported according to VBT. The
> acpi_backlight interface appears to work for the EC control.
> 
> In most cases there has been no harm done, but it looks like there are
> machines out there that have both an EC and our PWM line connected to
> the same wire. This, obviously, does not end well.
> 
> This should fix the regression caused by
> commit bc0bb9fd1c7810407ab810d204bbaecb255fddde
> Author: Jani Nikula <jani.nikula@xxxxxxxxx>
> Date:   Thu Nov 14 12:14:29 2013 +0200
> 
>     drm/i915: remove QUIRK_NO_PCH_PWM_ENABLE


Works great!  These patches do indeed re-fix backlight control in v3.14,
on both of the two XPS13 models that had needed the NO_PCH_PWM_ENABLE
quirk.

Tested-by: Kamal Mostafa <kamal@xxxxxxxxxxxxx>

Thanks Jani!

 -Kamal


> AFAICT the quirk removed by the above commit effectively resulted in
> i915 not driving the backlight PWM output, thus not messing things up.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76276
> Reference: https://bugzilla.kernel.org/show_bug.cgi?id=47941
> CC: Aaron Lu <aaron.lu@xxxxxxxxx>
> CC: Kamal Mostafa <kamal@xxxxxxxxxxxxx>
> CC: Eric Griffith <EGriffith92@xxxxxxxxx>
> CC: Kent Baxley <kent.baxley@xxxxxxxxxxxxx>
> CC: stable@xxxxxxxxxxxxxxx [v3.14+]
> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx>
> ---
>  drivers/gpu/drm/i915/intel_panel.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index cb058408c70e..0eead16aeda7 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -1065,6 +1065,11 @@ int intel_panel_setup_backlight(struct drm_connector *connector)
>  	unsigned long flags;
>  	int ret;
>  
> +	if (!dev_priv->vbt.backlight.present) {
> +		DRM_DEBUG_KMS("native backlight control not available per VBT\n");
> +		return 0;
> +	}
> +
>  	/* set level and max in panel struct */
>  	spin_lock_irqsave(&dev_priv->backlight_lock, flags);
>  	ret = dev_priv->display.setup_backlight(intel_connector);

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


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]