Bug 15249 - Asus F3JV hotkeys are not detected when pressed or throws kernel ACPI Error (psargs-0359) and (psparse-0537)
Asus F3JV hotkeys are not detected when pressed or throws kernel ACPI Error (...
Status: CLOSED DOCUMENTED
Product: ACPI
Classification: Unclassified
Component: BIOS
All Linux
: P1 normal
Assigned To: acpi_bios
https://bugs.launchpad.net/ubuntu/+so...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-02-07 16:06 UTC by Albin alias Binnette
Modified: 2010-09-29 02:00 UTC (History)
4 users (show)

See Also:
Kernel Version: 2.6.31-14-generic
Tree: Mainline
Regression: No


Attachments
This is the acpidump of my Asus F3JV (45.27 KB, application/x-gzip)
2010-02-09 21:24 UTC, Albin alias Binnette
Details
My dmesg after a reboot with acpi_backlight=vendor (13.29 KB, application/zip)
2010-02-11 17:52 UTC, Albin alias Binnette
Details
asus-laptop: Add wlan switch found on V6V (924 bytes, patch)
2010-02-11 18:58 UTC, Corentin Chary
Details | Diff
SSDT and SSDT2 in /sys/firmware/acpi/tables/dynamic/ (1.57 KB, application/zip)
2010-02-21 18:16 UTC, Albin alias Binnette
Details
custom _Q0E method (162 bytes, application/octet-stream)
2010-02-22 02:47 UTC, Zhang Rui
Details
custom _Q0F method (162 bytes, application/octet-stream)
2010-02-22 02:51 UTC, Zhang Rui
Details
the custom _Q0E method (169 bytes, application/octet-stream)
2010-02-22 02:52 UTC, Zhang Rui
Details
custom DSDT (292.88 KB, application/octet-stream)
2010-03-10 03:28 UTC, Zhang Rui
Details

Description Albin alias Binnette 2010-02-07 16:06:46 UTC
== Troubles summary ==
= Hotkeys that don't run =
* Fn+F2 (Wifi on/off) don't run
* Fn+F5 (Brightness down) don't run & thows kernel ACPI Error
* Fn+F6 (Brightness up) don't run & thows kernel ACPI Error
* Fn+F9 (Touchpad on/off) don't switch on/off touchpad

= Hotkeys doing a wrong thing =
* Fn+Suppr (Scroll lock) led doesn't switch on/off, but touch "scroll lock" is recognized
* Fn+Space (power4gear / power manager) lock the screen. But it should run power manager

=== Config ===
* PC : Asus F3JV (alias Z53JV-AP030M)
* OS : Ubuntu 9.10 Karmic Koala
* acpid : 1.0.6-9ubuntu8
* acpi-support : 0.129
* linux-generic : 2.6.31.14.27
* x11-utils : 7.4+1build1
* gsynaptics (for touchpad) : 0.9.16-2

=== No event in xev ===
* Fn+F2 (Wifi on/off)
* Fn+F5 (Brightness down)
* Fn+F6 (Brightness up)
* Fn+F9 (Touchpad on/off)

=== Errors in log file ===
* Fn+F2
no error message

* Fn+F5
kernel: [ 2569.550813] ACPI Error (psargs-0359): [\_SB_.PCI0.P0P2.VGA_.LCDD] Namespace lookup failure, AE_NOT_FOUND
kernel: [ 2569.550831] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.SBRG.EC0_._Q0E] (Node f701acf0), AE_NOT_FOUND

* Fn+F6
kernel: [ 2656.167994] ACPI Error (psargs-0359): [\_SB_.PCI0.P0P2.VGA_.LCDD] Namespace lookup failure, AE_NOT_FOUND
kernel: [ 2656.168036] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.SBRG.EC0_._Q0F] (Node f701ad08), AE_NOT_FOUND

* Fn+F9
no error message

=== acpi_listen events ===
* Fn+F1 (Zzzz) : button/sleep SLPB 00000080
* Fn+F2 (Wifi on/off) : nothing
* Fn+F3 (Mail) : hotkey ATKD 00000050
* Fn+F4 (Internet) : hotkey ATKD 00000051
* Fn+F5 (Brightness down) : nothing
* Fn+F6 (Brightness up) : nothing
* Fn+F7 (Screen light off) : hotkey ATKD 00000034
* Fn+F7 (Screen light on) : hotkey ATKD 00000033
* Fn+F8 (LCD/CRT) : hotkey ATKD 00000061
* Fn+F9 (Touchpad on/off) : hotkey ATKD 0000006b
* Fn+F10 (Mute) : hotkey ATKD 00000032
* Fn+F11 (Volume down) : hotkey ATKD 00000031
* Fn+F12 (Volume up) : hotkey ATKD 00000030
* Fn+Suppr : nothing
* Fn+espace (Power4gear) : hotkey ATKD 0000005c
* Fn+← (previous) : hotkey ATKD 00000040
* Fn+→ (next) : hotkey ATKD 00000041
* Fn+↑ (stop) : hotkey ATKD 00000043
* Fn+↓ (play/pause) : hotkey ATKD 00000045

== Note ==
Just tell me, if you don't understand my troubles or if you want more informations :-)

If you are french (like me), you can read my post on forum.ubuntu-fr.org
http://forum.ubuntu-fr.org/viewtopic.php?id=356201

== Important ==
I've done every steps in the Hotkeys Troubleshooting (https://wiki.ubuntu.com/Hotkeys/Troubleshooting) with 9.10 live cd. The result for Fn+F2, Fn+F5 and Fn+F6 is :
6. b. if there is neither an ACPI event nor an input event, this is probably also a kernel bug, though probably harder to diagnose (WMI, perhaps?)

There is a lot of reports and informations on this page :
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/480999
Comment 1 Corentin Chary 2010-02-09 07:40:19 UTC
Hi,
Could you attach the output of acpidump ? See http://dev.iksaif.net/projects/acpi4asus/wiki/Dumping_dsdt for more informations.
Thanks,
Comment 2 Albin alias Binnette 2010-02-09 21:24:20 UTC
Created attachment 24981 [details]
This is the acpidump of my Asus F3JV

I've done the acpidump with Ubuntu 9.10 up to date. But if you want i can do the dump with any LiveCD. Just ask me :)

Ubuntu : 9.10
Linux Kernel : 2.6.31-19-generic
acpidump : 20071116-1
acpid : 1.0.6-9ubuntu8
acpi-support : 0.129
powermgmt-base : 1.30+nmu1

Thanks you for the support. :)
Comment 3 Corentin Chary 2010-02-10 08:28:31 UTC
Is your bios up-to-date ? Because there is something strange in your dsdt :
Notify (\_SB.PCI0.P0P2.VGA.LCDD, 0x87)
should be
Notify (\_SB.PCI0.P0P1.VGA.LCDD, 0x87)

If you can't update you bios, a quick workaround would be to boot with `acpi_backlight=vendor' parameter.
Comment 4 Albin alias Binnette 2010-02-10 16:45:01 UTC
Hello Corentin,

No, my bios isn't up to date. Its version is 202 and the latest is 207. But i read the change log of all new bios and i think that flashing my bios can't solve my trouble. And in deed, flashing bios is dangerous, so i don't want to do that.

But I tried to put the "acpi_backlight=vendor" as default parameter in my grub.cfg file. But it doesn't solve the matter. There is still the same errors in the kern log for Fn+F5 and Fn+F6. And still nothing for Fn+F2 in xev and acpi_listen.

Just a stupid question, should i replace vendor by asus in the grub line ? It seems logic to me but... So i tried with vendor and asus, and after reboot, the result is the same.

If you have more ideas, i'm listening to you :)
And still thank you for helping me :)
Comment 5 Corentin Chary 2010-02-10 17:35:47 UTC
Well, the fix may not appear in the bios changelog, so it may be usefull to try.

Did you run update-grub after adding the parameter ? Could you attach a dmesg with acpi_backlight=vendor (it's exactly "vendor" not asus BTW) ?

Fn+F5 and Fn+F6 may work with acpi_backlight=vendor, and may be fixed by a bios update
Fn+F2 may send an event with specific wapf parameters : http://dev.iksaif.net/projects/acpi4asus/wiki/Asus-laptop_WAPF
Comment 6 Albin alias Binnette 2010-02-11 17:52:59 UTC
Created attachment 24992 [details]
My dmesg after a reboot with acpi_backlight=vendor

I also tried all values for the asus-laptop mod, but i don't notice any change during using Fn+F2, Fn+F5 or Fn+F6. Fn+F2 still send no event. Fn+F5 and Fn+F6 still raise the same errors in kern log.

Good evening :)
Comment 7 Corentin Chary 2010-02-11 18:55:08 UTC
Re-reading your dsdt I was wrong about acpi_backlight=vendor.
But acpi_osi="!Windows 2006" may work.
modprobe asus-laptop wapf=4 should also send a KEY_WLAN input event, but you'll a recent module for that, and it isn't available for 2.6.31.
If you want to try, get my git tree from http://git.iksaif.net/?p=acpi4asus.git and use the asus-laptop-refactor branch.
I should take the time to backport the patchs someday.
Comment 8 Corentin Chary 2010-02-11 18:58:18 UTC
Created attachment 24993 [details]
asus-laptop: Add wlan switch found on V6V

Patch to map the 0x88 acpi event to KEY_WLAN, you can try that too (already inclued upstream).
Comment 9 Albin alias Binnette 2010-02-12 18:22:32 UTC
Hello Corentin,

I tried to reboot with acpi_osi="!Windows 2006" and then change asus-laptop wapf to 4. But there is still the same errors and no event for Fn+F2. When i will have time, i will try to patch and compile acpi4asus. I am sorry to annoy you with this little bug...

See you :)
Comment 10 Corentin Chary 2010-02-13 13:15:11 UTC
Did acpi_osi="!Windows 2006" change something for the brightness ?
With acpi_osi="!Windows 2006" can you change the brightness using Fn+F5/F6 ? Does it work without acpi_osi ?

Anyway your dsdt seems buggy and you should really try to upgrade your bios to see if asus fixed that.

For Fn+F2 you'll need to get a very recent kernel from my git tree, or try to patch your current kernel with the patch I sent.
Comment 11 Zhang Rui 2010-02-21 08:46:30 UTC
please attach all the files under /sys/firmware/acpi/tables/dynamic/.
e.g "cat /sys/firmware/acpi/tables/dynamic/SSDT1 > ssdt1.dat" and attach the ssdt1.dat here.
Comment 12 Zhang Rui 2010-02-21 08:49:03 UTC
we can see these in the DSDT:

...
External (\_SB_.PCI0.P0P2.VGA_.LCD)
...
 Method (_Q0E, 0, NotSerialized)
        {
            If (LEqual (OSFG, OSVT))
            {
                Notify (\_SB.PCI0.P0P2.VGA.LCDD, 0x87)
            }
            ...
        }
so the problem seems to be that the AML code is sending a notification to a non-exist ACPI device (\_SB_.PCI0.P0P2.VGA_.LCD).
Let's see if it's defined in the dynamic SSDT tables or not.
Comment 13 Albin alias Binnette 2010-02-21 18:03:22 UTC
>> Corentin:

So, I tried the acpi_osi="!Windows 2006" option, but there is no change. With or without Windows 2006, Fn+F5/F6 don't run.

And I'm sorry, but i really don't want to update my bios because of the risk to crash my bios. I seen on Internet that repairing a broken bios cost about 59$, it's too expansive for me.

So I will try the kernel in your git. Thank.
Comment 14 Albin alias Binnette 2010-02-21 18:16:24 UTC
Created attachment 25145 [details]
SSDT and SSDT2 in /sys/firmware/acpi/tables/dynamic/

Here SSDT and SSDT2, the only two files in /sys/firmware/acpi/tables/dynamic/
Notice that those files are not readable, there is a lot of unknow symbols.
Comment 15 Corentin Chary 2010-02-21 18:42:38 UTC
Well (In reply to comment #12)
> so the problem seems to be that the AML code is sending a notification to a
> non-exist ACPI device (\_SB_.PCI0.P0P2.VGA_.LCD).
> Let's see if it's defined in the dynamic SSDT tables or not.

I may be wrong, but reading the dsdt it seems that _SB.PCI0.P0P2.VGA.LCDD
should be _SB.PCI0.P0P1.VGA.LCDD .
Comment 16 Zhang Rui 2010-02-22 02:47:35 UTC
Created attachment 25152 [details]
custom _Q0E method

this is the custom _Q0E method.
I change the
            Notify (\_SB.PCI0.P0P2.VGA.LCDD, 0x87)
to
            Notify (\_SB.PCI0.P0P1.VGA.LCDD, 0x87)

DefinitionBlock ("_Q0E.aml", "SSDT", 2, "INT430", "SYSFexxx", 0x00001001)
{
    External (STBR, MethodObj)    // 0 Arguments
    External (LBTN)
    External (OSVT)
    External (OSFG)
    External (\_SB_.ATKD)
    External (\_SB_.ATKP, IntObj)
    External (\_SB_.PCI0.P0P1.VGA_.LCDD)

    Method (\_SB.PCI0.SBRG.EC0._Q0E, 0, NotSerialized)
    {
        If (LEqual (OSFG, OSVT))
        {
            Notify (\_SB.PCI0.P0P1.VGA.LCDD, 0x87)
        }
        Else
        {
            If (LGreater (LBTN, Zero))
            {
                Decrement (LBTN)
            }

            If (LGreater (LBTN, 0x0F))
            {
                Store (0x0F, LBTN)
            }

            STBR ()
            If (\_SB.ATKP)
            {
                Notify (\_SB.ATKD, Add (LBTN, 0x20))
            }
        }

        Return (One)
    }
}
Comment 17 Zhang Rui 2010-02-22 02:51:57 UTC
Created attachment 25153 [details]
custom _Q0F method

the ASL code of custom _Q0F method.

DefinitionBlock ("_Q0F.aml", "SSDT", 2, "INT430", "SYSFexxx", 0x00001001)
{
    External (STBR, MethodObj)    // 0 Arguments
    External (LBTN)
    External (OSVT)
    External (OSFG)
    External (\_SB_.ATKD)
    External (\_SB_.ATKP, IntObj)
    External (\_SB_.PCI0.P0P1.VGA_.LCDD)

    Method (\_SB.PCI0.SBRG.EC0._Q0E, 0, NotSerialized)
    {
           If (LEqual (OSFG, OSVT))
            {
                Notify (\_SB.PCI0.P0P1.VGA.LCDD, 0x86)
            }
            Else
            {
                If (LLess (LBTN, 0x0F))
                {
                    Increment (LBTN)
                }
                Else
                {
                    Store (0x0F, LBTN)
                }

                STBR ()
                If (\_SB.ATKP)
                {
                    Notify (\_SB.ATKD, Add (LBTN, 0x10))
                }
            }

            Return (One)

    }
}
Comment 18 Zhang Rui 2010-02-22 02:52:41 UTC
Created attachment 25154 [details]
the custom _Q0E method
Comment 19 Zhang Rui 2010-02-22 03:04:52 UTC
Albin,

please try these two custom methods attached in comment #17 and #18.
btw: kernel_source/Documentation/acpi/method-customizing.txt is a HOWTO about how to use a custom method at runtime.

After applying these two custom methods, please press the brightness up/down hotkeys to see
1. if the error message still exists
2. if the backlight is actually changed. If no, please verify if you can change the backlight by poking /sys/class/backlight/acpi_video0/brightness file.(In reply to comment #9)
Comment 20 Zhang Rui 2010-02-22 03:12:14 UTC
(In reply to comment #9)
> Hello Corentin,
> 
> I tried to reboot with acpi_osi="!Windows 2006" and then change asus-laptop
> wapf to 4. But there is still the same errors

this is weird.
the error message should disappear if acpi_osi="!Windows 2006" is used...
Comment 21 Albin alias Binnette 2010-02-25 21:50:18 UTC
So, perhaps I have done something bad. Say me if there is errors :

> I modified /etc/default/grub like that :
GRUB_CMDLINE_LINUX="acpi_osi=\"!Windows 2006\""

> Notice that I was obliged to put \ before ", because without \ update-grub raise errors

> Then I run update-grub, command didn't raise errors

> I have rebooted my computer

> I can see in my dmesg log that line :
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.31-19-generic root=UUID=59accaac-dc70-4662-abf0-d1ee174804f5 ro acpi_osi=!Windows 2006 quiet splash

> Notice that there is no " before and after !Windows 2006, is there a problem here ?

> Then I press Fn+F5 and there is this error in kern.log
Feb 25 22:34:23 FreshMint kernel: [ 9784.945393] ACPI Error (psargs-0359): [\_SB_.PCI0.P0P2.VGA_.LCDD] Namespace lookup failure, AE_NOT_FOUND
Feb 25 22:34:23 FreshMint kernel: [ 9784.945410] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.SBRG.EC0_._Q0E] (Node f701acf0), AE_NOT_FOUND


And again thank you for your time ;-)
Comment 22 Albin alias Binnette 2010-02-25 22:01:11 UTC
And this is a part of /boot/grub/grub.cfg

menuentry "Linux Mint 8 Helena, linux 2.6.31-19-generic (/dev/sda5)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
	set quiet=1
	insmod ext2
	set root=(hd0,5)
	search --no-floppy --fs-uuid --set 59accaac-dc70-4662-abf0-d1ee174804f5
	linux	/boot/vmlinuz-2.6.31-19-generic root=UUID=59accaac-dc70-4662-abf0-d1ee174804f5 ro acpi_osi="!Windows 2006"  quiet splash
	initrd	/boot/initrd.img-2.6.31-19-generic
}


So, I don't think that there is a trouble here. (" are presents)
Comment 23 Zhang Rui 2010-02-26 01:21:03 UTC
> Kernel command line: BOOT_IMAGE=/boot/vmlinuz-2.6.31-19-generic
root=UUID=59accaac-dc70-4662-abf0-d1ee174804f5 ro acpi_osi=!Windows 2006 quiet
splash

this suggests that something may be wrong.
could you please enter the grub menu when booting and add the boot option manually?
Comment 24 Albin alias Binnette 2010-02-26 23:08:48 UTC
Hello, I just rebooted my computer, during the grub menu, i press e to edit the grub line. And there is already the good line. There is exactly :

linux /boot/vmlinuz-2.6.31-19-generic
root=UUID=59accaac-dc70-4662-abf0-d1ee174804f5 ro acpi_osi="!Windows 2006" 
quiet splash

So the problem isn't here, because there is still errors after Fn+F5/F6.
Comment 25 Zhang Rui 2010-03-01 06:05:00 UTC
would you please do the test mentioned in comment #19 first?
Comment 26 Albin alias Binnette 2010-03-01 22:28:30 UTC
(In reply to comment #25)
> would you please do the test mentioned in comment #19 first?

Hello Zhang,

I omitted to say that I am beginner in acpi module :-)

Anyway, I have read your document in method-customizing.txt (I was obliged to download Linux Kernel 2.6.33, because I have 2.6.31 and the document is not in this version).

e) mount -t debugfs none /sys/kernel/debug
   I didn't done this command line because : 
   "none is already mounted on /sys/kernel/debug"


f) So if I understand well. I only have to do this command line :
   cat _Q0E.aml > /sys/kernel/debug/acpi/custom_method

Notice that, _Q0E.aml is the file that you gave me.

But there is a problem here, in /sys/kernel/debug there is no acpi folder. What can I do ? I assume that it can't run if I only create the folder and try the command line again.

Please can you give me more details ?
In hypothesis that i did all those manipulations, do I have to reboot my computer ?
Can I run cat _Q0E.aml > /sys/kernel/debug/acpi/custom_method
and then cat _Q0F.aml > /sys/kernel/debug/acpi/custom_method ?

Have a good night ... or a good day ;-)
Comment 27 Zhang Rui 2010-03-02 01:27:59 UTC
(In reply to comment #26)
> 
> f) So if I understand well. I only have to do this command line :
>    cat _Q0E.aml > /sys/kernel/debug/acpi/custom_method
> 
> Notice that, _Q0E.aml is the file that you gave me.
> 
> But there is a problem here, in /sys/kernel/debug there is no acpi folder. 

oh, my bad.
could you please do the test in a 2.6.33 kernel?
This is a new feature that is introduced in the upstream kernel recently.

> Please can you give me more details ?
> In hypothesis that i did all those manipulations, do I have to reboot my
> computer ?
> Can I run cat _Q0E.aml > /sys/kernel/debug/acpi/custom_method
> and then cat _Q0F.aml > /sys/kernel/debug/acpi/custom_method ?
> 
> Have a good night ... or a good day ;-)

In a 2.6.33 kernel, you don't need to reboot.
just run
cat _Q0E.aml > /sys/kernel/debug/acpi/custom_method
and
cat _Q0F.aml > /sys/kernel/debug/acpi/custom_method

then press Fn+F5/F6 and check if the ACPI errors still exist.
Comment 28 Albin alias Binnette 2010-03-04 17:07:43 UTC
Sig...

I tried to compile Linux kernel 2.6.33 from sources, but there is an unfixed bug during the make.

So, I have downloaded ".deb" of Linux kernel from here :
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.33/

This was successful. Then I reboot, the command line `uname -a` returns :
Linux FreshMint 2.6.33-020633-generic #020633 SMP Thu Feb 25 10:59:18 UTC 2010 i686 GNU/Linux

This is great ! Then, I do this cli :
mount -t debugfs none /sys/kernel/debug

Perfect ! But then I tried :
cat _Q0E.aml > /sys/kernel/debug/acpi/custom_method

And damn ! There is still no folder acpi in /sys/kernel/debug !!!


Is there something that I didn't do well ?   :-)
Comment 29 Zhang Rui 2010-03-10 03:28:40 UTC
Created attachment 25443 [details]
custom DSDT

well, I don't know. :(
please follow the http://www.lesswatts.org/projects/acpi/overridingDSDT.php
step 5, 6 and 7 to apply this custom DSDT to see if it helps.
Comment 30 Zhang Rui 2010-03-10 03:29:26 UTC
This is an ACPI video problem.
Comment 31 Zhang Rui 2010-03-22 08:00:03 UTC
ping ...
Comment 32 Zhang Rui 2010-03-26 03:07:18 UTC
No response from the bug reporter.
Bug closed.

Albin,
please re-open it if you can run the test in comment #29.
Comment 33 Albin alias Binnette 2010-03-26 12:04:39 UTC
Hello, the bug is not closed. :-)

I tried too times this week to compile Kernel 2.6.33.1

I have some trouble to compile the Kernel on Ubuntu. But I ask a geek friend to help me this weekend. So I will answer you, as fast that I can.


Sorry for the latency. Can you re-open the bug please.


See you :-)
Comment 34 Albin alias Binnette 2010-03-26 18:17:16 UTC
It's done !!!

Making kernel with custom DSDT is finally a success ! I boot on it and...

Congratulation Zhang, congratulation Corentin !

Brightness management run perfectly !  :-)
There is the good notifications when I press Fn+F5 or FN+F6

== acpi_listen ==
Fn+F2 (wifi) : nothing 
Fn+F5 (brightness down) : video LCDD 00000087 00000000
Fn+F6 (brightness up) :   video LCDD 00000086 00000000

And no errors in kernel.log ! You are the best !

Thank you so much ! If you want any return from acpidump or anything else, just tell me :-)

Ps : Fn+F2 still don't run, but it's not really important because I have a button that allow me to switch on/off Wifi
Comment 35 Zhang Rui 2010-03-29 01:57:32 UTC
Good news. :p
This is apparently a BIOS bug that we could not fix in Linux/kernel.
So I'll mark this as WILL_NOT_FIX.
As this also affects windows, I think a new BIOS that fixes this problem is probably released.
IMO, the best way to fix it is to upgrade your BIOS.
Comment 36 Albin alias Binnette 2010-03-29 11:06:37 UTC
Ok, thank you for all Zhang.

But I prefer compile Linux rather than upgrade my Bios :-)

See you :p

Note You need to log in before you can comment on or make changes to this bug.