Bug 15249 - Asus F3JV hotkeys are not detected when pressed or throws kernel ACPI Error (psargs-0359) and (psparse-0537)
Summary: Asus F3JV hotkeys are not detected when pressed or throws kernel ACPI Error (...
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: BIOS (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: acpi_bios
URL: https://bugs.launchpad.net/ubuntu/+so...
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-07 16:06 UTC by 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, Binnette
Details
My dmesg after a reboot with acpi_backlight=vendor (13.29 KB, application/zip)
2010-02-11 17:52 UTC, 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, 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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.