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