Bug 815625

Summary: Brightness keys do not work on Lenovo's Chromebook 'Thinkpad X131e'
Product: [openSUSE] openSUSE 12.3 Reporter: Forgotten User u_rYULZW1- <forgotten_u_rYULZW1->
Component: X.OrgAssignee: E-mail List <xorg-maintainer-bugs>
Status: RESOLVED WONTFIX QA Contact: E-mail List <xorg-maintainer-bugs>
Severity: Normal    
Priority: P3 - Medium CC: forgotten_u_rYULZW1-, oliverpabst, suse
Version: FinalFlags: suse: needinfo? (forgotten_u_rYULZW1-)
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE 12.3   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: supportconfig tarball

Description Forgotten User u_rYULZW1- 2013-04-17 09:48:26 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0

The <fn> works with volume keys, suspend key, etc, but unfortunately does not work for brightness <fn>+<F8> and <fn>+<f9>.  I've tried a variety of vanilla kernels on Debian (testing) installation I dual-boot with and the brightness key problem is not present there.  It might be a kernel problem, but I'm guessing it's Xorg.  Plugging/Unplugging the power brightens/dims the screen.  If I hold down <fn>+<F8> the screen eventually dims, in jerky steps, all the way to the lowest setting, but there is no OSD.

Reproducible: Always

Steps to Reproduce:
1. Install from KDE Live CD
2. Boot
3. <fn>+<F8>

Actual Results:  
For a single <fn>+<F8>, nothing happens.
If I hold them down long enough, the brightness goes all the way down.

Expected Results:  
Change brightness a set amount per keypress, with OSD.

xev reports this for the <fn> key:
KeyRelease event, serial 40, synthetic NO, window 0x6000001,
    root 0xc1, subw 0x0, time 25336631, (-984,-14), root:(201,572),
    state 0x0, keycode 151 (keysym 0x1008ff2b, XF86WakeUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Finally, I've been using the legacy BIOS, because I'm familiar with it, and UEFI is spooky and new.  Does OpenSUSE x86_64 work better with UEFI?

Please let me know what else I can do to help debug this.  I've never had these kinds of problems with a Thinkpad.
Comment 1 Stefan Dirsch 2013-04-17 10:42:48 UTC
Thanks. Please attach supportconfig tarball.
Comment 2 Forgotten User u_rYULZW1- 2013-04-17 20:50:13 UTC
Created attachment 535655 [details]
supportconfig tarball
Comment 3 Forgotten User u_rYULZW1- 2013-04-18 20:35:58 UTC
Ok, I found something.  I remembered that Thinkpad brightness keys are implemented in hardware, so have tried working forward and back through the mainline kernel.  The 3.8 series has this bug, so it's not fixed upstream.  So far, linux-3.6.11 (mainline) is the last kernel version where these brightness keys worked.  3.7.10 (mainline) doesn't work, but I haven't worked my way through the 3.7 series to find out where the regression occurred.

Sorry for the mix-up, now it looks like more of a kernel bug.  Will supportconfig still be useful in debugging this?
Comment 4 Forgotten User u_rYULZW1- 2013-04-18 21:28:38 UTC
Brightness keys work in linux-3.6.0, but not in 3.7.0.  It seems like the regression happened somewhere in patch-3.7.
Comment 5 Oliver Pabst 2013-04-23 19:47:09 UTC
The brightness keys on of my Thinkpad x230i are working perfectly fine with KDE, though in GNOME after pressing Fn+F8 or Fn+F9 the OSD shows up but the brightness doesn´t change. If i change the display brightness manually in "System Settings"->"Brightness and Lock", the keys for controlling display brightness are working almost normal, yet the values displayed in the OSD are moving in a range of ~10% to 70%; this behaviour remains until the machine is rebooted.

With regard to this problem there are already bugreports with discussions on Ubuntus Launchpad and on the Kernel Bug Tracker i have knowledge of.

LP: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1098216
KBT: https://bugzilla.kernel.org/show_bug.cgi?id=51231

Unfortunately so far no real solution for the problem exists.
Comment 6 Stefan Dirsch 2013-04-24 08:32:06 UTC
Oliver, this bug is about Lenovo's Chromebook, not x230i. Things to verify are mentioned on

  https://wiki.archlinux.org/index.php/Backlight

For intel GPUs you can also try using 'xbacklight'.
Comment 7 Oliver Pabst 2013-04-24 17:47:30 UTC
Stefan, 
increasing and accordingly decreasing the backlight brightness with xbacklight works so far. But if i set the to 0 or 100 with "xbacklight -set 10" or "xbacklight -set 100", things get buggy.

If i set the the brightness to 10, i can´t increase the brightness further than 10, but can only decrease it to 5 using the function keys.

If i set the brightness to 100, using the function keys to control the display brightness doesn´t change the brightness.

If is set the display brightness to 40, by usong the function keys i can decrease the brightness to 20 and increase it up to 70.


A small explanation why i decided to attach my problem to this bugreport:
In comment 4 and 5 Nicholas mentioned, that he tracked the regression of backlight control to be introduced with kernel 3.7, which accords with the bugreports i linked to. Additionally it seems like a lot of Lenovos latest Thinkpads has broken backlight support since kernel 3.7, though the x131e Chromebook isn´t mentioned in the reports yet.

So i´ll leave it up to you whether i shall open a new bugreport for the x230.
Comment 8 Forgotten User u_rYULZW1- 2013-05-20 23:04:59 UTC
Stefan,

Brightness can be changed with /sys/class/backlight/acpi_video0
and /sys/class/backlight/intel_backlight

xset dpms works
xbacklight works

In the bugzilla.kernel.org Oliver links to, Peter Weber maintains that it affects "all current thinkpads From 2012."  This bug report matches the behaviour I've observed.  The commit that broke things:
https://bugzilla.kernel.org/show_bug.cgi?id=51231#c12
and what the ACPI tables show in response to Windows8/2012 OSI:
https://bugzilla.kernel.org/show_bug.cgi?id=51231#c19

Oliver,

It sounds like your Thinkpad model behaves differently than mine, but just to make sure, could you please hold down your brightness-up or brightness-down keys for more than five seconds?  Mine will change the brightness in a jerky and uncontrollable way, but the brightness will lurch in the right direction.
Comment 9 Oliver Pabst 2013-05-22 14:35:48 UTC
Nicholas,

if i keep the keys brightness-up or brightness-down pressed for several seconds (> 10 seconds), the brightness of the display does not change.
Comment 10 Forgotten User u_rYULZW1- 2013-06-10 19:51:12 UTC
Update:  I'm not sure why I didn't think of this before, but outside of X11 it takes five Fn+F8 keypresses to register one brightness level change.  This is consistent with the Windows8/2012 OSI change in the kernel bug.  Five keypresses per hardware brightness level seems to infer that my Thinkpad actually only supports 20 levels.  

Stephan, to clarify, X11 and/or KDE need to work around the change in kernel behaviour for handling brightness that was introduced in linux-3.7.

Oliver,  Could you please check to see if you can brightness level outside of X11, and if so check count how many keypresses it takes to change one hardware brightness level?
Comment 12 Oliver Pabst 2013-06-11 05:00:37 UTC
Nicholas,

the control keys have no effect on the brightness outside of X as well.
Comment 13 Forgotten User u_rYULZW1- 2013-06-11 21:14:33 UTC
Oliver,

While there might be some overlap between our Thinkpad's issues, yours has something more serious going on.  I'd definitely file a separate bug for your Thinkpad's hardware issue.  It's possible that the x230i is supported with a newer kernel, so I'd try installing and booting the Tumbleweed kernel (linux-3.9.5)  Be careful if you add the repository, so you don't accidentally upgrade everything to Tumbleweed.

In you new bug report, make sure you mention whether or not your brightness keys work with the Tumbleweed kernel.
Comment 14 Forgotten User u_rYULZW1- 2013-07-13 06:27:42 UTC
As a test for a possible upstream fix, I thought I'd try booting the Fedora 19 KDE live cd.  This bug is fixed in that release.  Maybe it can be back-ported?
Comment 15 Stefan Dirsch 2013-07-15 08:22:50 UTC
(In reply to comment #14)
> As a test for a possible upstream fix, I thought I'd try booting the Fedora 19
> KDE live cd.  This bug is fixed in that release.  Maybe it can be back-ported?

If we would know what the fix is, yes. Most likely the fix has happened upstream, and Fedora  guys don't know either what the fix has been ...
Comment 16 Jan Ritzerfeld 2013-12-23 17:00:50 UTC
Here, a ThinkPad T430s running openSUSE 13.1 is still affected by this kernel bug: acpi_osi="!Windows 2012" helps to make Fn-F89 work again. But then KDE ignores the brightness change and, thus, there is no OSD and the brightness slider of the power manager applet is not updated.
Comment 17 Jan Ritzerfeld 2014-12-30 16:45:45 UTC
Works for me now using 13.2 on a T430s.
@Nicholas: Do the brightness keys work on your X131e using 13.2, too?
Comment 18 Stefan Dirsch 2015-01-07 14:37:27 UTC
Product is no longer supported. In case the issue is still reproducable on a maintainerd product (at that momement: openSUSE 13.1 or later), feel free to reopen.