On Wednesday, December 03, 2008 3:14 pm Zhenyu Wang wrote:
> 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
> [EMAIL PROTECTED] for such discuss. Thanks.

I'd be a little happier with a != BCM_KERNEL, but other than that it seems 
fine.

-- 
Jesse Barnes, Intel Open Source Technology Center

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to