Bug 39322

Summary: Can't change my laptop's brightness with ATI card and radeon
Product: ACPI Reporter: bugzilla
Component: Power-OtherAssignee: Lan Tianyu (tianyu.lan)
Status: CLOSED INSUFFICIENT_DATA    
Severity: normal CC: bugs, lenb, rui.zhang, tianyu.lan
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.38.2 - 2.6.39.3 Subsystem:
Regression: No Bisected commit-id:
Attachments: Acpidump output
Output of "grep . /sys/firmware/acpi/interrupts/*" before pressing Fn + brightness up/down
Output of "grep . /sys/firmware/acpi/interrupts/*" after pressing Fn + brightness up/down
Output of "grep . /sys/firmware/acpi/interrupts/*" before pressing Fn + brightness up/down with 2.6.37.5.
Output of "grep . /sys/firmware/acpi/interrupts/*" after pressing Fn + brightness up/down with 2.6.37.5.
Output of "grep . /sys/firmware/acpi/interrupts/*" before pressing Fn + brightness up/down with 2.6.37.5.
Output of "grep . /sys/firmware/acpi/interrupts/*" after pressing Fn + brightness up/down with 2.6.37.5.
DSDT.hex
dmesg output after doing Fn + brightness up/down (with debug on and with kernel 2.6.37.6)
dmesg output after doing echo <number> /sys/class/backlight/acpi_video0/brightness (with debug on and with kernel 2.6.37.6)
dmesg output after doing echo <number> /sys/class/backlight/acpi_video0/brightness (with debug on and with kernel 2.6.37.6)
dmesg output after doing Fn + brightness up/down (with debug on and with kernel 2.6.39.3)
dmesg output after doing echo <number> > /sys/class/backlight/acpi_video0/brightness (with debug on and with kernel 2.6.39.3)

Description bugzilla 2011-07-13 18:44:00 UTC
Since the 2.6.38.2 kernel, I can't change my laptop's brightness. It worked in 2.6.37.6 version. I'm using ArchLinux.

I try to change it by using three ways : 
 - Fn + brightness up/down keys : nothing happens
 - echo <number> > /sys/class/backlight/acpi_video0/brightness : it doesn't work (but the file exists)
 - xbacklight command : it prints "No outputs have backlight property"

I have updated my kernel and I have tried to change the acpi_osi and acpi_backlight boot options, but it didn't work. I have posted a message on ArchLinux BBS (https://bbs.archlinux.org/viewtopic.php?pid=960197), but nobody could help me. I have filled a bug report on archlinux Bugs (https://bugs.archlinux.org/task/25117), but someone told me to fill a bug report here.

Additional information : 
 Kernel version : 2.6.39.3
 Laptop : HP Probook 4515s
 Graphic card : 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS780M/RS780MN [Radeon HD 3200 Graphics] [1002:9612]
 Driver : xf86-video-ati (radeon)
 xorg-server version : 1.10.3-1
 Desktop environment : KDE
 uname -a : Linux localhost 2.6.39-ARCH #1 SMP PREEMPT Sat Jul 9 15:31:04 CEST 2011 i686 AMD Sempron(tm) SI-42 AuthenticAMD GNU/Linux
Comment 1 Lan Tianyu 2011-07-14 06:10:26 UTC
Please run acpi_listen while clicking the Fn + brightness up/down keys to check whether the even has been triggered for backlight changing.

After echo <number> > /sys/class/backlight/acpi_video0/brightness, cat the brightness and actual_brightness to identify whether the number has been changed.

>Has anyone got an idea? I have tried with kernel 2.6.38.5, and with 
>acpi_backlight=video, acpi_backlight=legacy and acpi_backlight=vendor but it 
>still doesn't work.
>When acpi_backlight=vendor, the Fn + backlight up and down button just don't
>>work, and with the two others options, they work, but the backlight doesn't
>>change.

What meaning of "with the two others options, they work" with "but the backlight doesn't change"?
Comment 2 bugzilla 2011-07-14 08:06:15 UTC
Hello,

acpi_listen doesn't show anything when Fn + brightness up/down buttons are pressed.

The number in brightness and actual_brightness has been changed, but my brightness still doesn't work.

"with the two others options, they work, but the backlight doesn't change" means that when pressing Fn + brightness up/down button, a progress bar appears and is changed, but my brightness doesn't change.
Actually, this also happens without any boot options, I just need to press Fn + brightness up/down buttons longer.
Comment 3 bugzilla 2011-07-14 08:08:24 UTC
"my brightness still doesn't work" -> "my brightness still doesn't change"
Comment 4 Lan Tianyu 2011-07-14 08:24:17 UTC
Please try acpi_listen in the kernel 2.6.37.6 which works correctly.

Attach the output of the acpidump.
Comment 5 bugzilla 2011-07-14 09:10:41 UTC
Actually, I have just realized that I had made an error : it did not work in 2.6.37.6 but in 2.6.37.5. The 2.6.37.6 version has never been packaged for Archlinux. They have jumped from 2.6.37.5 to 2.6.38.2.

With 2.6.37.5 kernel, acpi_listen doesn't show anything when Fn + brightness up/down buttons are pressed, but brightness changes.

I have attached the output of acpidump.
Comment 6 bugzilla 2011-07-14 09:11:31 UTC
Created attachment 65592 [details]
Acpidump output
Comment 7 Lan Tianyu 2011-07-15 07:43:00 UTC
Please try to bisect between 2.6.37.5. and 2.6.38.2. to identify which version  became bad. 

Attach the output of "grep . /sys/firmware/acpi/interrupts/*" before and after  Fn + brightness up/down buttons are pressed on the bad kernel version. 

Is there anything different if you boot with kernel parameter acpi_osi="!Windows 2009" on the bad kernel version?

Is there anything different if you boot with kernel parameter acpi_osi="!Windows 2009" AND acpi_osi="!Windows 2006" on the bad kernel version?
Comment 8 Lan Tianyu 2011-07-15 12:18:48 UTC
Does "echo <number> > /sys/class/backlight/acpi_video0/brightness" work on the 2.6.37.5?
Comment 9 bugzilla 2011-07-15 12:49:20 UTC
Hello,

I have tried to compile 2.6.37.6 : the brightness worked.
Unfortunately, I could compile 2.6.38.1, because it gave me this error : 
/tmp/ccCUigGd.s: Assembler messages:
/tmp/ccCUigGd.s: Error: .size expression for apf_page_fault does not evaluate to a constant
make[2]: *** [arch/x86/kernel/entry_32.o] Erreur 1
make[1]: *** [arch/x86/kernel] Erreur 2
make: *** [arch/x86] Erreur 2
(I compiled it with the ArchLinux configuration for 2.6.38.2)

So the bug was either introduced in 2.6.38.1 or 2.6.38.2.

"echo <number> > /sys/class/backlight/acpi_video0/brightness" works with 2.6.37.5.

For the bad kernel version, I have used the latest : 2.6.39.3.

I will attach the output of "grep . /sys/firmware/acpi/interrupts/*".

With acpi_osi="!Windows 2009" and with acpi_osi="!Windows 2009" AND acpi_osi="!Windows 2006", the brightness still doesn't change, but acpi -i says : 

Battery 0: design capacity 786 mAh, last full capacity 786 mAh = 100%

instead of : 

Battery 0: design capacity 4623 mAh, last full capacity 786 mAh = 17%
Comment 10 bugzilla 2011-07-15 12:50:59 UTC
Created attachment 65722 [details]
Output of "grep . /sys/firmware/acpi/interrupts/*" before pressing Fn + brightness up/down
Comment 11 bugzilla 2011-07-15 12:51:54 UTC
Created attachment 65732 [details]
Output of "grep . /sys/firmware/acpi/interrupts/*" after pressing Fn + brightness up/down
Comment 12 Lan Tianyu 2011-07-18 08:12:29 UTC
Please attach the output of "grep . /sys/firmware/acpi/interrupts/*" before and after Fn + brightness up/down buttons are pressed on the 2.6.37.5.
Comment 13 bugzilla 2011-07-18 17:47:59 UTC
Created attachment 65912 [details]
Output of "grep . /sys/firmware/acpi/interrupts/*" before pressing Fn + brightness up/down with 2.6.37.5.
Comment 14 bugzilla 2011-07-18 17:48:38 UTC
Created attachment 65922 [details]
Output of "grep . /sys/firmware/acpi/interrupts/*" after pressing Fn + brightness up/down with 2.6.37.5.
Comment 15 bugzilla 2011-07-18 18:03:13 UTC
Hello,
I have attached the files.
Comment 16 Lan Tianyu 2011-07-19 00:56:50 UTC
The two attachment are the same file "before_26375". Please have a check. Thanks.
Comment 17 bugzilla 2011-07-19 08:04:01 UTC
Created attachment 65972 [details]
Output of "grep . /sys/firmware/acpi/interrupts/*" before pressing Fn + brightness up/down with 2.6.37.5.
Comment 18 bugzilla 2011-07-19 08:04:44 UTC
Created attachment 65982 [details]
Output of "grep . /sys/firmware/acpi/interrupts/*" after pressing Fn + brightness up/down with 2.6.37.5.
Comment 19 bugzilla 2011-07-19 08:05:13 UTC
Hello,

Sorry for that.
I have reuploaded the good files.
Comment 20 Lan Tianyu 2011-07-21 07:43:12 UTC
Please override the DSDT with my attched DSDT.hex respectively in the 2.6.37.5 and 2.6.38.2 or up.

http://www.lesswatts.org/projects/acpi/overridingDSDT.php

Do following operations on the two kernel:
  
(1)Run "echo 1 > /sys/module/acpi/parameters/aml_debug_output".
   Pressing Fn + brightness up/down
   Attach the dmesg.

(2)Run "echo 1 > /sys/module/acpi/parameters/aml_debug_output".
   Run "echo <number> > /sys/class/backlight/acpi_video0/brightness"
   Attach the dmesg.

Check whether "CONFIG_ACPI_PROC_EVENT=y" in the kernel configure or not.
Comment 21 Lan Tianyu 2011-07-21 07:45:14 UTC
Created attachment 66172 [details]
DSDT.hex
Comment 22 bugzilla 2011-07-21 14:05:12 UTC
Hello,

I have tried to recompile the kernel 2.6.37.5 to override the DSDT but unfortunatly there was an error : 
  CC [M]  drivers/net/igbvf/ethtool.o
  In file included from drivers/net/igbvf/ethtool.c:36:0:
  drivers/net/igbvf/igbvf.h:129:15: erreur: duplicate member ‘page’
  make[3]: *** [drivers/net/igbvf/ethtool.o] Erreur 1
  make[2]: *** [drivers/net/igbvf] Erreur 2
  make[1]: *** [drivers/net] Erreur 2
  make: *** [drivers] Erreur 2

So I have compiled the kernel 2.6.37.6 and overrided the DSDT (the brightness works in this version), and did what you told me.

I have compiled the kernel 2.6.39.3 and override the DSDT too. I have also done what you told me.

I will upload the files.

CONFIG_ACPI_PROC_EVENT=y is in the kernel config.
Comment 23 bugzilla 2011-07-21 14:06:14 UTC
Created attachment 66242 [details]
dmesg output after doing Fn + brightness up/down (with debug on and with kernel 2.6.37.6)
Comment 24 bugzilla 2011-07-21 14:07:18 UTC
Created attachment 66252 [details]
dmesg output after doing echo <number> /sys/class/backlight/acpi_video0/brightness (with debug on and with kernel 2.6.37.6)
Comment 25 bugzilla 2011-07-21 14:07:55 UTC
Created attachment 66262 [details]
dmesg output after doing echo <number> /sys/class/backlight/acpi_video0/brightness (with debug on and with kernel 2.6.37.6)
Comment 26 bugzilla 2011-07-21 14:09:09 UTC
Created attachment 66272 [details]
dmesg output after doing Fn + brightness up/down (with debug on and with kernel 2.6.39.3)
Comment 27 bugzilla 2011-07-21 14:09:56 UTC
Created attachment 66282 [details]
dmesg output after doing echo <number> > /sys/class/backlight/acpi_video0/brightness (with debug on and with kernel 2.6.39.3)
Comment 28 bugzilla 2011-07-21 14:11:25 UTC
(I have done first Fn + brightness up/down and then echo <number> > /sys/class/backlight/acpi_video0/brightness for each kernel)
Comment 29 Lan Tianyu 2011-07-25 08:17:32 UTC
Please make clean 2.6.38.1 kernel and make to compile successfully. 
Identify which version the issue is introduced. Thanks.
Comment 30 bugzilla 2011-07-25 17:23:47 UTC
Hello,

I really can't compile 2.6.38.1, even after doing a make clean (and even a make mrproper).

The error is the same :
  LD      arch/x86/crypto/built-in.o
  CC      arch/x86/kernel/process_32.o
  CC      arch/x86/kernel/signal.o
  AS      arch/x86/kernel/entry_32.o
/tmp/cc5ufEEA.s: Assembler messages:
/tmp/cc5ufEEA.s: Error: .size expression for apf_page_fault does not evaluate to a constant
make[2]: *** [arch/x86/kernel/entry_32.o] Erreur 1
make[1]: *** [arch/x86/kernel] Erreur 2
make: *** [arch/x86] Erreur 2

What can I do?
Comment 31 Lan Tianyu 2011-07-26 12:47:41 UTC
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6
git checkout v2.6.38-rc1.
I have check v2.6.38-rc1 on my machine. It's ok.
Comment 32 bugzilla 2011-07-28 09:43:40 UTC
I have tried with git and it still doesn't work (same error). 
What should I do?
Comment 33 Lan Tianyu 2011-08-01 02:34:17 UTC
Please update gcc and try again.
Comment 34 bugzilla 2011-08-01 07:54:34 UTC
Hello,

I am using the last version of gcc : 4.6.1.
Comment 35 Vasilis Lourdas 2011-08-05 06:18:49 UTC
Hi,

I'm also affected by the same issue. I own a HP Probook 6560b that has an integrated ATI Radeon 6470M card and I run the 3.0 kernel, however the brightness does not change when I press the corresponding keyboard keys. acpi_listen recognizes the events:

video/brightnessdown BRTDN 00000087 00000000
video/brightnessup BRTUP 00000086 00000000
video/brightnessdown BRTDN 00000087 00000000
video/brightnessdown BRTDN 00000087 00000000
video/brightnessdown BRTDN 00000087 00000000
video/brightnessup BRTUP 00000086 00000000

but kernel message log reports:

Aug  5 09:11:32 localhost logger: ACPI event unhandled: video/brightnessup BRTUP 00000086 00000000
Aug  5 09:11:32 localhost logger: ACPI event unhandled: video/brightnessdown BRTDN 00000087 00000000
Aug  5 09:11:33 localhost logger: ACPI event unhandled: video/brightnessdown BRTDN 00000087 00000000
Aug  5 09:11:33 localhost logger: ACPI event unhandled: video/brightnessdown BRTDN 00000087 00000000
Aug  5 09:11:33 localhost logger: ACPI event unhandled: video/brightnessup BRTUP 00000086 00000000
Aug  5 09:11:33 localhost logger: ACPI event unhandled: video/brightnessup BRTUP 00000086 00000000

If you need more information, please say so.
Comment 36 bugzilla 2011-08-08 08:26:18 UTC
Hello,

I have tried with Kernel 3.0, and it still doesn't work.
Comment 37 Lan Tianyu 2011-08-09 08:50:44 UTC
HI Vasileios:
   Is this a regression from 2.6.38? If no, please apply a new bug. This maybe is another bug.

HI bugzilla@ealexp.eu:
   I have no idea about the compile error. There are other releases between 2.6.37.6 and 2.6.38.1. (From git:2.6.37-rc7 2.6.37-rc8 and 2.6.38).I think you can bisect these to identify which version become bad. 

Did you test on the ARCHlinux kernel or upstream kernel?
Comment 38 Vasilis Lourdas 2011-08-09 08:56:54 UTC
(In reply to comment #37)
> HI Vasileios:
>    Is this a regression from 2.6.38? If no, please apply a new bug. This
>    maybe
> is another bug.

Since, this is a new setup, I wouldn't know if the issue persists from 2.6.38. I used 3.0.0 from the beginning. I will open a new bug, thanks.
Comment 39 bugzilla 2011-08-09 09:06:00 UTC
Hello,

What does "bisect" mean?

First I used the ArchLinux kernel, then I downloaded the kernel from kernel.org and compiled it. But I compiled it with the archlinux configuration. Is that bad? Should I configure it myself?
Comment 40 Lan Tianyu 2011-08-10 01:40:00 UTC
> What does "bisect" mean?
You can regard it as test those kernels to find a good one.

> First I used the ArchLinux kernel, then I downloaded the kernel from
> kernel.org
> and compiled it. But I compiled it with the archlinux configuration. Is that
> bad? Should I configure it myself?
That's ok with the archlinux configuration to compile the upstream kernel.
Comment 41 Lan Tianyu 2011-08-10 01:41:34 UTC
(In reply to comment #40)
> > What does "bisect" mean?
> You can regard it as test those kernels to find a good one.
Sorry. You can regard it as test those kernels to find the one which begin to become bad.
Comment 42 bugzilla 2011-08-16 09:35:02 UTC
Hello,

I will try that, but this means downloading and compiling a lot of kernels. Are you sure there isn't a quicker way to do it?
Comment 43 bugzilla 2011-08-24 08:06:51 UTC
Hello,

Do you know where I could download "git:2.6.37-rc7 2.6.37-rc8 and 2.6.38" kernel versions from, please?
Comment 44 Lan Tianyu 2011-08-29 12:17:42 UTC
Under the git kernel root directory.
run "git checkout v2.6.37-rc7"
others follow this rule.
Comment 45 Zhang Rui 2012-05-24 08:01:24 UTC
bug closed as there is no response from the bug reporter.
please feel free to reopen it if the problem still exists in the latest upstream kernel.