[Intel-gfx] [intel/acpi] backlight - T61

Zhenyu Wang zhen78 at gmail.com
Thu Dec 4 00:14:55 CET 2008


On 2008.12.01 13:08:23 +0800, Zhang Rui wrote:
> > 
> > However, testing FC10 with the latest upstream kernel,
> > including the i915 changes that appeared today...
> > it seems that GUI mode forgets the brighness when
> > I switch to console mode.  Eg. If I use /sys or
> > hotkeys in GUI mode to reduce brightness to 0,
> > it stays dim when I switch to console mode,
> > but switches back to max brightness when
> > I switch back to GUI mode.
> hah, that's a done by X.
> ZhenYu pointed out that the graphics driver will set the backlight to
> maximum if it is 0 when switching to GUI.
> what if reducing the brightness to a lower but not 0 level?
> it should switch back to the original value, right?
> cc ZhenYU. :)

This depends on the backlight control method used by Xorg
video driver. We have this comment in the driver from Jesse I think,

 /*
  * If we're going from off->on we may need to turn on the backlight.
  * We should use the saved value whenever possible, but on some
  * machines 0 is a valid backlight value (due to an external backlight
  * controller for example), so on them, when turning LVDS back on,
  * they'll always re-maximize the brightness.
  */
if (!(INREG(PP_CONTROL) & POWER_TARGET_ON) &&
	dev_priv->backlight_duty_cycle == 0)
	dev_priv->backlight_duty_cycle = dev_priv->backlight_max;

It looks if we're using kernel backlight method, '0' should be a human
sensible dim level instead of meaningless near-to-black level, right?

So how about this patch against current xf86-video-intel?

---
diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index 239bc89..1799eab 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -400,7 +400,8 @@ i830SetLVDSPanelPower(xf86OutputPtr output, Bool on)
 	 * they'll always re-maximize the brightness.
 	 */
 	if (!(INREG(PP_CONTROL) & POWER_TARGET_ON) &&
-	    dev_priv->backlight_duty_cycle == 0)
+	    dev_priv->backlight_duty_cycle == 0 &&
+	    pI830->backlight_control_method < BCM_KERNEL)
 	    dev_priv->backlight_duty_cycle = dev_priv->backlight_max;
 
 	OUTREG(PP_CONTROL, INREG(PP_CONTROL) | POWER_TARGET_ON);
---

p.s Len, if for intel graphics specific issue, we have another
intel-gfx at lists.freedesktop.org for such discuss. Thanks.




More information about the Intel-gfx mailing list