diff mbox

v3.14-rc7: Backlight control broken on Dell XPS13

Message ID 87vbvcrd4j.fsf@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jani Nikula March 17, 2014, 4:41 p.m. UTC
On Mon, 17 Mar 2014, Romain Francoise <romain@orebokech.com> wrote:
> Hi Daniel,
>
> Daniel Vetter <daniel.vetter@ffwll.ch> writes:
>
>> Please never just send a mail to maintainers, always cc mailing lists.
>
> Yes, sorry, I sent this privately because it wasn't a fully-formed bug
> report; I just wanted Jani to confirm that it wasn't intentionally
> broken as of -rc7.
>
>> Have you tested with the patch reverted to confirm that it's indeed
>> this commit and not something else (e.g. in the acpi code)?
>
> I hadn't, but I've now reverted the revert and things work again as in
> v3.13. So as far as I can tell the quirk is still definitely needed.

Here's two patches to try, separately, *without* the quirk:

Patch #1:

Comments

Romain Francoise March 17, 2014, 5:27 p.m. UTC | #1
Jani Nikula <jani.nikula@intel.com> writes:

> Here's two patches to try, separately, *without* the quirk: [...]

Okay, I've tried both and neither works. However, I've noticed that
while the backlight level never changes even though I'm changing it with
Fn+F4/Fn+F5, it *does* get registered somewhere because if I bring it
all the day down and reboot, the brightness is reduced in the next BIOS
POST (loading i915 gets it back to 100%).

Thanks,
-r
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index cb058408c70e..ef26115dbe68 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -659,7 +659,7 @@  static void pch_enable_backlight(struct intel_connector *connector)
 	/* This won't stick until the above enable. */
 	intel_panel_actually_set_backlight(connector, panel->backlight.level);
 
-	pch_ctl2 = panel->backlight.max << 16;
+	pch_ctl2 = panel->backlight.max << 16 | panel->backlight.level;
 	I915_WRITE(BLC_PWM_PCH_CTL2, pch_ctl2);
 
 	pch_ctl1 = 0;

Patch #2:

diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index cb058408c70e..10849104fa1e 100644
--- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -669,6 +669,8 @@  static void pch_enable_backlight(struct intel_connector *connector)
 	I915_WRITE(BLC_PWM_PCH_CTL1, pch_ctl1);
 	POSTING_READ(BLC_PWM_PCH_CTL1);
 	I915_WRITE(BLC_PWM_PCH_CTL1, pch_ctl1 | BLM_PCH_PWM_ENABLE);
+
+	intel_panel_actually_set_backlight(connector, panel->backlight.level);
 }
 
 static void i9xx_enable_backlight(struct intel_connector *connector)