Bug 3853

Summary: Special buttons are out of sync
Product: ACPI Reporter: Georges A.K. (dgege1)
Component: OtherAssignee: Luming Yu (luming.yu)
Status: REJECTED DUPLICATE    
Severity: normal    
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.9 Subsystem:
Regression: --- Bisected commit-id:
Attachments: Here's the original DSTD
Here's the fixed version

Description Georges A.K. 2004-12-02 22:01:54 UTC
Distribution: 
Gentoo 
 
Hardware Environment: 
Acer Ferrari 3000LMI 
 
Software Environment: 
Kernel 2.6.9 with ACPI enabled 
 
Problem Description and steps to reproduce: 
 
Ever since I switched to 2.6.9, I've had several problems regarding ACPI. 
Although I fixed most, one of them remains and although not fatal is REALLY 
annoying. It's regarding all the "special" buttons on my keyboard which call 
directly the BIOS (like brightness, disabling LCD backlit etc...). What happens 
is that for some reason, the calls get buffered and they're out of sync. What I 
mean is that the first 5 or 6 button presses do nothing, and then, next presses 
will start working but it will execute the first buttons presses. I know this 
sounds complicated but for example I start off by pressing on the button 
"Reduce brightness" for like 6 times. Nothing happens. Then, if I press for 
example on "Disable backlit", it will execute a Reduce brightness. So it's like 
calls are being buffered and are out of sync by like 6 presses. I end up having 
the correct sequence but I can never have what I want right away, I have to 
press on some other keys first. 
Now I could have lived with that, but the problem is that the event received 
when I plug or unplug my AC cord does the same thing ! So now, if I unplug my 
cord, I have to press 6 times on any special button so that acpid finally 
catches the unplug event ! Everything was working perfectly prior to 2.6.9.
Comment 1 Oleg I. Vdovikin 2004-12-05 13:36:52 UTC
Looks like the same problem as I've here -
http://bugzilla.kernel.org/show_bug.cgi?id=3851
Yes, actually events are get buffered by EC.

Try patching drivers/acpi/ec.c, I'm wonder if it works. ;-)
Comment 2 Georges A.K. 2004-12-06 13:48:42 UTC
It works, thank you ! 
My faith is back now in 2.6.9 :) 
Comment 3 Oleg I. Vdovikin 2004-12-07 12:32:49 UTC
Well, you closed a bug too early - it's still not fixed, this was just a
proposed patch, so I'm reopening a bug, so Luming Yu can review this an probably
mark it as duplicate for 3852. Also, there seems to be other problems - I've
spoted the real cause for that as seems...
Comment 4 Georges A.K. 2004-12-07 22:19:18 UTC
Oh sorry ! I was just too excited :)
Comment 5 Luming Yu 2004-12-09 18:44:58 UTC
  Hi, 
I need to understand how hot key works on your specific laptop. So, please
attach your DSDT.  BTW,  Could you give latest patch set at bug 3851 a try? 

Thanks,
Luming
Comment 6 Georges A.K. 2004-12-10 19:25:11 UTC
Created attachment 4255 [details]
Here's the original DSTD
Comment 7 Georges A.K. 2004-12-10 19:26:12 UTC
Created attachment 4256 [details]
Here's the fixed version
Comment 8 Georges A.K. 2004-12-10 19:27:23 UTC
The keys are handled by a special hardware (Dritek). It is activated by a   
special command that the acerhk driver sends. More info can be found by   
examining the driver. Here's my DSDT. There are three warnings and several   
errors (same error repeated).I fixed them all (I hope it's right). I will  
attach both.   
I will also give the patches a try later on.   
Georges.   
Comment 9 Luming Yu 2004-12-14 08:40:27 UTC
I'd like to know when you press special button, does ACPI interrupt trigger?
Could you watch /proc/interrupt to see if acpi can increase after you press 
special button? If there has ACPI interrupt, then ACPI could be able to handle 
that special button.

From your DSDT, _Q0E will be called when pressing special button, in turn, 
Z005 will be called to handle some VGA stuff. Could you figure out what kind of
special key are handled by Z005?
Comment 10 Georges A.K. 2004-12-14 10:48:20 UTC
For the first part, the answer is yes, an ACPI interrupt is triggered (I 
monitored /proc/interrupts). 
For the second part, I have NO idea what you want me to do exactly. My 
knowledge is obviously much less than yours in that field. Do you think you 
could give me some guidelines ? 
Thanx. 
 
Georges. 
Comment 11 Luming Yu 2004-12-14 19:37:21 UTC
For the issue described here, I'd like to know the testing results of patch 
mentioned at comment #5
Comment 12 Luming Yu 2004-12-14 19:38:52 UTC
Then, I'd like to follow up a right solution for your specific button.
Comment 13 Georges A.K. 2004-12-14 19:39:44 UTC
True, I forgot about that. I'll test it tonight, when I get back home. I'll 
have to reverse the EC patch first, obviously.
Stay tuned....
Comment 14 Georges A.K. 2004-12-16 12:26:31 UTC
Damn, I just saw that the patch you posted is against 2.6.10, but I run on 
2.6.9 :( So I can't test it yet. 
Comment 15 Luming Yu 2005-03-14 19:02:58 UTC

*** This bug has been marked as a duplicate of 3851 ***