Bug 363261

Summary: Brightness keys ("Fn+Home" and "Fn+End") don't work on a ThinkPad
Product: [Fedora] Fedora Reporter: petrosyan
Component: kernelAssignee: Bill Nottingham <notting>
Status: CLOSED CURRENTRELEASE QA Contact: Bill Nottingham <notting>
Severity: medium Docs Contact:
Priority: medium    
Version: 9CC: adam.hough, adrin.jalali, brilong, dcantrell, hedayatv, jarod, jesse_kahtava, katzj, kernel-maint, mhroncok, redhat-bugzilla, rvokal, thomas, thrift.it, urban, zkabelac
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-11-26 08:15:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description petrosyan 2007-11-02 02:43:10 UTC
Description of problem:
"Fn+Home" and "Fn+End" key combinations are supposed to increase and decrease
screen's brightness respectively on ThinkPad laptops. Even though gnome shows a
graphical brightness status bar changing on the screen in reality screen's
brightness always stays the same.

Additional info:
These keys work as expected on Ubuntu 7.10

Comment 1 Jeremy Katz 2007-11-02 02:46:48 UTC
What graphics driver are you using on your laptop? 

Comment 2 Bill Nottingham 2007-11-02 02:56:25 UTC
Also, what sort of Thinkpad - they work fine on my T60.

Comment 3 petrosyan 2007-11-02 03:42:22 UTC
"intel" graphics driver
Thinkpad X61

Comment 4 petrosyan 2007-11-15 03:21:12 UTC
Here is the hardware profile for this Thinkpad:
http://smolt.fedoraproject.org/show?UUID=810e7126-1c69-4aff-b8b1-9db0fa8aa15a

Comment 5 Kevin R. Page 2007-11-29 17:54:30 UTC
I have the same issue with a fresh install of F8 on a Thinkpad X61s. By default,
Fn+Home/Fn+End cause an OSD to pop up, but don't change the backlight level [1].

Having seen the quirks page:
http://people.freedesktop.org/~hughsient/quirk/quirk-backlight-index.html

and getting more than one laptop_panel:
$ lshal | grep laptop_panel
  info.capabilities = {'laptop_panel'} (string list)
  info.category = 'laptop_panel'  (string)
  laptop_panel.access_method = 'general'  (string)
  laptop_panel.brightness_in_hardware = true  (bool)
  laptop_panel.num_levels = 101  (0x65)  (int)
  info.capabilities = {'laptop_panel'} (string list)
  info.category = 'laptop_panel'  (string)
  laptop_panel.access_method = 'general'  (string)
  laptop_panel.brightness_in_hardware = true  (bool)
  laptop_panel.num_levels = 101  (0x65)  (int)
  info.capabilities = {'laptop_panel'} (string list)
  info.category = 'laptop_panel'  (string)
  laptop_panel.access_method = 'general'  (string)
  laptop_panel.brightness_in_hardware = true  (bool)
  laptop_panel.num_levels = 8  (0x8)  (int)

I rmmoded video and blacklisted it. Which gives:

$ lshal | grep laptop_panel
  info.capabilities = {'laptop_panel'} (string list)
  info.category = 'laptop_panel'  (string)
  laptop_panel.access_method = 'general'  (string)
  laptop_panel.brightness_in_hardware = true  (bool)
  laptop_panel.num_levels = 8  (0x8)  (int)

The brigthness still isn't changed, and I don't get the OSD popup anymore either.

My volume keys don't work either - this may be a separate bug? These seem to
work for others - is there a keyboard layout issue going on? I have a UK
keyboard, in "XkbModel" "pc105", "XkbLayout" "gb" in xorg.conf - though I've
lost track of how all this is glued together these days.


[1] these  also wrap - i.e. the OSD has 7 notches but you can go up (or down) 14
notches, so the progress bar hits max, falls back to 0 and starts going up again
etc.

Comment 6 petrosyan 2007-11-29 20:59:10 UTC
I also get more than one laptop_panel when running '$ lshal | grep laptop_panel'
Removing video module disables OSD popup for me too.
OSD popup also wraps around for me too.
Volume keys work for me (except the mute key). You need to add "inet" keyboard.
I have 
Option      "XkbLayout" "us+inet"
in xorg.conf
Maybe you could do "gb+inet"
"inte" defines the volume keys. By default Fedora 8 add "+inet" for "U.S.
English" keyboard layouts.
You can also do Option      "XkbLayout" "us+inet(thinkpad)"
And that would add two additional keys, XF86Back and XF86Forward. However
Firefox is not bound to those keys.

Comment 7 Kevin R. Page 2007-11-30 19:46:34 UTC
Furthermore, if I add the Gnome brightness panel applet it sets the brightness
up and down fine - so it's clearly whatever captures the button presses that's
broken. It slides through 8 different brightness levels.

(XkbLayout gb+inet(thinkpad) worked for the volume keys, thanks!)

Comment 8 petrosyan 2007-11-30 19:53:16 UTC
Also epiphany recognizes "Back" and "Forward" buttons correctly, but Firefox
unfortunately does not recognize XF86Back and XF86Forward keysyms.

Comment 9 petrosyan 2007-11-30 19:55:50 UTC
Does the "mute" key work correctly? (bug #383841)

Comment 10 Kevin R. Page 2007-12-04 14:46:29 UTC
> Does the "mute" key work correctly? (bug #383841)

No, but I think that's a separate issue best left to bug #383841.

Comment 11 Thomas Vander Stichele 2008-01-12 08:34:10 UTC
On my T61, mute and volume buttons work fine.  Brightness keys have the same
problem as for original poster.

Comment 12 petrosyan 2008-03-11 21:29:40 UTC
*** Bug 434715 has been marked as a duplicate of this bug. ***

Comment 13 petrosyan 2008-03-11 21:31:49 UTC
from Bug 434715:
Brightness control buttons FN+Home/End doesn't seem to work, when pressing gnome
or tpb displays brightness "progress bar" but brightness goes max and in dmesg
i've find:
thinkpad_acpi: unknown LID-related HKEY event: 0x5010

Decrasing brightness works with: echo 5 > /proc/acpi/ibm/cmos

Comment 14 petrosyan 2008-03-11 21:43:13 UTC
*** Bug 413031 has been marked as a duplicate of this bug. ***

Comment 15 petrosyan 2008-03-11 21:44:21 UTC
from bug 413031:

Try adding:

  acpi_osi="Linux"

to the kernel boot parameters...

Comment 16 petrosyan 2008-03-12 00:02:33 UTC
adding
  acpi_osi="Linux"
to the kernel boot parameters did not fix the problem.

Comment 17 Brian Long 2008-03-12 12:27:01 UTC
I have a T61p with Nvidia graphics (binary driver) and the latest couple of
kernel updates fixed the FN-Home and FN-End brightness.  In the early F8
kernels, the pop-up showing the brightness level would scroll and wrap around
(and brightness would not change).  In the latest 2 or 3 F8 kernels, it's been
working well.

Comment 18 Adam Hough 2008-03-17 16:05:24 UTC
I think that this https://bugzilla.redhat.com/show_bug.cgi?id=391601 entry might
be related to this bug.

I had similar issues with my T60 but after turning off acpid my brightness keys
worked ass expected.

Comment 19 Kevin R. Page 2008-04-10 16:44:25 UTC
An update for my X61s (Intel graphics) running an up to date Fedora 8: the
brightness keys still don't work, though the behaviour is different from my
report in comment #5.

I'm running with kernel option acpi_osi="Linux".

I no longer blacklist the video module; if I do, I don't get any brightness
control and lshal doesn't show any laptop_panel. With video loaded, I get two
laptop_panel from lshal - which seems like one too many? So the advice on the
quirks page doesn't seem to fit any more?

When I press the brightness buttons the on screen bar appears; this now
increments and decrements the correct number of times (without wrapping).

The brightness doesn't actually change except at max and min: on the way up it
stays the same then jumps to maximum brightness when the slider maxes out; on
the way down brightness stays the same then jumps down to minimum when the
slider bottoms out.

That's with acpid disabled; with acpid enabled when it hits the bottom of the
slider brightness jumps to low as before, but keep pressing the down button and
each time you do there's a brief flash of full brightness (before returning to low).

The panel brightness applet seems to work, as before.

Comment 20 Michael Thrift 2008-04-24 18:41:35 UTC
I can also confirm this behavior.  ThinkPad T61 running the following:

Distro: Fedora 8
Kernel: Linux 2.6.24.4-64.fc8 #1 SMP Sat Mar 29 09:54:46 EDT 2008 i686 i686 i386
GNU/Linux
Video Card: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller
(Intel 8100)

Updates are current.  If I 'echo "up|down" > /proc/acpi/ibm/brightness' it
works, and I have mapped some kde global shortcuts to a couple of scripts that
do just that so I gain some functionality.  However, Fn+[any Fn key] does not
perform the expected action or anything at all in most cases.  Related to
brightness specifically, Fn+[Home|End] causes the screen brightness to jump to
max, and breaks the echo [up|down] > /proc...  To recover the echo method, I
have to unload video and thinkpad_acpi modules and reload them.

I have tried disabling acpi to no avail, and I have also tried running
acpi_osi="Linux" with no help either.  I am going to try blacklisting video, but
I am not confident that this will do anything either.

My laptop came loaded with Suse, and all of the buttons functioned as expected.
 At the Grub screen, the brighten/dim Fn keys work.

Just wanted to share my case in hopes of reaching a resolution.

Regards,
Mike.

Comment 21 petrosyan 2008-05-21 03:56:31 UTC
This bug is still present in Fedora 9.

Comment 22 petrosyan 2008-07-22 14:02:46 UTC
*** Bug 438070 has been marked as a duplicate of this bug. ***

Comment 23 petrosyan 2008-07-24 04:17:34 UTC
*** Bug 359951 has been marked as a duplicate of this bug. ***

Comment 24 Hedayat Vatankhah 2008-07-28 13:06:27 UTC
I have the same problem on Fedora 9 (Thinkpad x61). The problem is that in
/proc/acpi/video I have 2 directories: VID and VID1. Fn+Home and Fn+End keys
change the value in VID/LCD0/brightness which has no effect (Except at the ends
which will change the brightness to 100 and 0). But the brightness panel applet
works because it changes the value in VID1/LCD0/brightness. (If I run echo 50 >
/proc/acpi/video/VID1/LCD0/brightness the brightness will change but when I use
VID instead of VID1 nothing happens.). If I remove video module, these
directories will disappear and the Fn+Home/End keys doesn't work at all. 


Comment 25 Jarod Wilson 2008-07-30 03:38:43 UTC
Finally WORKSFORME with a reasonably current rawhide now running on my T61.

Comment 26 Brian Long 2008-07-30 12:15:11 UTC
WORKSFORME as well on the T61p running the latest errata kernel
2.6.25.11-97.fc9.i686.

Comment 27 Hedayat Vatankhah 2008-08-03 14:40:59 UTC
Doesn't work for me using 2.6.25.11-97.fc9.i686. Maybe it's related to another package(s)?!

Comment 28 Paul Walmsley 2008-08-06 05:05:38 UTC
This thread/patch seems pertinent (but note Henrique's comments):

http://lkml.org/lkml/2008/8/5/326

Comment 29 petrosyan 2008-08-12 22:08:02 UTC
this bug has been fixed in kernel-2.6.27-0.244.rc2.git1.fc10.x86_64
I am going to leave this bug open until 2.6.27 kernel gets ported to Fedora 9.

Comment 30 petrosyan 2008-11-26 08:15:25 UTC
This bug has been fixed in Fedora 10

Comment 31 Jesse Kahtava 2011-11-17 05:17:35 UTC
This bug exists with Fedora 16 on a Thinkpad t61 with Nvidia Quadro NVS 140M (NV86). Same issue. Brightness control Fn keys pop up the OSD, but don't actually do anything. Echoing values between 0-15 to /sys/class/backlight/acpi_video0 works as expected.

Comment 32 Jesse Kahtava 2011-12-25 15:56:18 UTC
Working as of a recent update. Nice.

Comment 33 Miro Hrončok 2012-03-10 17:48:15 UTC
I can reproduce this bug with nVidia, same behavior as reported by Jesse Kahtava in [31]. Update did not work.

Comment 34 Miro Hrončok 2012-03-10 18:33:04 UTC
Reported here: https://bugzilla.redhat.com/show_bug.cgi?id=802071

Comment 35 Adrin Jalali 2012-10-13 20:21:38 UTC
Same here. The brightness does not work although OSD shows up.

Using binary kmod and latest updates up to date (F17).

Comment 36 Adrin Jalali 2012-10-13 20:40:16 UTC
Also reported here: https://bugzilla.redhat.com/show_bug.cgi?id=802071

I found something here:
http://forums.fedoraforum.org/showthread.php?t=276516

to add 
Option "RegistryDwords" "EnableBrightnessControl=1"
to the xorg.conf. It fixed my problem anyway (after a reboot).