You are not logged in.

#1 2012-08-27 19:02:08

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Trying to fix the backlight keys on Asus UX31A/32VD

Hi, I've been trying to fix the 2 backlight keys on above mentioned laptop for a few days. First off, imho the whole acpi subsystem is documented pretty bad, but whatever. I'm starting to understand more or less (rather less, but probably enough), how this all works together.
Laptop: Asus UX32VD
Kernel: Linux 3.6 rc2 (with the bacef66 commit_id reverted, since these 2 asus ultrabooks don't boot anymore with this patch)

I could get following info out of the kernel by tinkering/debugging around:

  1. the fn+f5/f6 keys seem to fire events via the address/device  [\_SB_.PCI0.LPCB.EC0_._QOE] and  [\_SB_.PCI0.LPCB.EC0_._QOF]

  2. in the dsdt, this probably corresponds to the device EC0 with the hid PNP0C09 - although, this is handled by ec (ec.c in drivers/acpi)

  3. the asus-wmi module takes responsibility for these events when linux is booted with the argument acpi_backlight=vendor. I added some pr_info statements to the asus-wmi module to verify that.
       with this argument enabled the function asus_wmi_backlight_init gets executed.

  4. the asus-nb-wmi executes, after asus-wmi is loaded

    asus_wmi_register_driver

    from asus-wmi and after some calls, a notify handler for the backlight is installed by
     

    status = wmi_install_notify_handler(asus->driver->event_guid, asus_wmi_notify,asus);

So far so good. What I don't really understand is that apparently the acpi event parser (I think it's called something like that) acpica in drivers/acpi/acpica/ crashes parsing this event, with the following messages in dmesg

..
[ 2211.315786] ACPI Error: Result stack is empty! State=ffff88029b081c00 (20120711/dswstate-98)
[ 2211.315804] ACPI Exception: AE_AML_NO_RETURN_VALUE, Missing or null operand (20120711/dsutils-646)
[ 2211.315812] ACPI Exception: AE_AML_NO_RETURN_VALUE, While creating Arg 0 (20120711/dsutils-763)
[ 2211.315821] ACPI Error: Method parse/execution failed [\_SB_.PCI0.GFX0.GCBL] (Node ffff8802a2c97d48), AE_AML_NO_RETURN_VALUE (20120711/psparse-537)
[ 2211.315839] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.EC0_.SBRN] (Node ffff8802a2ca7c80), AE_AML_NO_RETURN_VALUE (20120711/psparse-537)
[ 2211.315851] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.EC0_._Q0F] (Node ffff8802a2ca7cd0), AE_AML_NO_RETURN_VALUE (20120711/psparse-537)
...

I don't really understand why the parser doesn't crash when I boot arch without the acpi_backlight parameter. After I enabled acpi debugging in the kernel and used the debug_layer and debug_level arguments in the acpi module I found out that
acpica parses the brightness events without errors (without the acpi_backlight argument) - I initially thought that without the kernel argument it doesn't get parsed at all and thus no error.
The acpica parser is probably the end for my wild goose chase - the acpica code is a big pile of wtf.
My conclusion is, that the dsdt is the source of the error (surprise). After reading through all the dsdt fixing tutorials, I tried to fix the dsdt. It had 3 errors, 2 rather easy errors related to the other wmi keys, but that hadn't any effect.
And a third, which I blindy guessed to fix it. I was able to get rid of all errors and warning(except one), but this didn't fix the problem either. 
Here the last error message:

dsdt.dsl     22796:                         Return (Zero)
Error                    4105 -                                            ^  Invalid object type for reserved name (found ZERO, requires Buffer)

Idk, if this error is the cause for the acpica crash, but I assume so.
Now my question: Whats the best place to report my findings to, since I'm not quite sure if its an error in the parser, asus-nb-wmi handling things wrong, error in the bios(most likely).

Last edited by dontbugme (2012-08-27 19:47:01)

Offline

#2 2012-08-28 06:38:08

fdservices
Member
From: France
Registered: 2012-02-06
Posts: 413

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Have you tried xev to see if the keys are recognised?

Offline

#3 2012-08-28 08:25:16

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

I knew I should have mentioned that. I thought from what I write, it would be obvious that I've exhausted the usual suspsects. Of course I did that. No xev, no showkeys, no getscancodes. Btw, if it showed up in xev, I would have already fixed it 4 weeks ago.
Thats the reason why I'm tinkering around in the kernel for a few days wink. Since my assumption that the acpi video driver doesn't listen to this specific events, it doesn't show up in xev and co. It just doesn't make sense to me that the acpica parsing doesn't fail when booted without the acpi_backlight=vendor argument. I hope that either fixing the dsdt or by some workaround in acpica/whatever, the backlight keys should get handled by asus-nb-wmi/asus-wmi.

Last edited by dontbugme (2012-08-28 08:29:27)

Offline

#4 2012-09-03 12:21:59

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Sweet jesus. Found the cause via. https://bugs.freedesktop.org/show_bug.cgi?id=45452. The UX32VD has the exact same problem. Uninitialized CADL field. Tried the patch, and rebooted. Result: working fn keys.
Hope this goes into the kernel sooner or later. Atm, the patch can cause other regressions, which is the reason it didn't make it into the kernel until now.
Update: Ok, based on the proposed fix on freedesktop, I hacked a shellscript together to fix the problem without compiling a kernel. This has the advantage that it can be used as long as this is not fixed in the official kernel source, without recompiling the kernel every time a new kernel hits the repositories. Only thing necessary, at least one time is the acpi_call kernel module from the Bumblebee github repository.
This is necessary to get the address of the IGDM opregion which is mapped somewhere in the address space (details are explained in the script).
Notice!!: old version. Check https://github.com/FrostbittenKing/fixasusbacklight for updated version.

#!/bin/bash                                                                                                                                                                                                                                  
#                                                                                                                                                                                                                                            
# Asus UX32VD acpi backlight fix                                                                                                                                                                                                             
#                                                                                                                                                                                                                                            
# Copyright(C) 2012 Eugen Dahm <eugen.dahm@gmail.com>.                                                                                                                                                                                       
#                                                                                                                                                                                                                                            
# fix is based on a proposed bugfix posted on <[url]https://bugs.freedesktop.org/show_bug.cgi?id=45452[/url]>                                                                                                                                           
#                                                                                                                                                                                                                                            
#  This program is free software; you can redistribute it and/or modify                                                                                                                                                                      
#  it under the terms of the GNU General Public License as published by                                                                                                                                                                      
#  the Free Software Foundation; either version 2 of the License, or                                                                                                                                                                         
#  (at your option) any later version.                                                                                                                                                                                                       
#                                                                                                                                                                                                                                            
#  This program is distributed in the hope that it will be useful,                                                                                                                                                                           
#  but WITHOUT ANY WARRANTY; without even the implied warranty of                                                                                                                                                                            
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                                                                                                                                             
#  GNU General Public License for more details.                                                                                                                                                                                              
#                                                                                                                                                                                                                                            
#  You should have received a copy of the GNU General Public License                                                                                                                                                                         
#  along with this program; if not, write to the Free Software                                                                                                                                                                               
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                                                                                                                                                                 
#                                                                                                                                                                                                                                            

# Asus UX32VD acpi backlight fix                                                                                                                                                                                                             
# Disclaimer!!!! not recommended to use if laptop is not the Asus UX32VD\                                                                                                                                                                    
# probably works with other models too, but the didl and cadl offset needs to be extracted                                                                                                                                                   
# from the dsdt                                                                                                                                                                                                                              
# Tested with bios 2.06                                                                                                                                                                                                                      

# IGDM_BASE has to be determined for each notebook                                                                                                                                                                                           
# IGDM is the operation region (\_SB_.PCI0.GFX0.IGDM) containing the CADL/DIDL fields                                                                                                                                                        
# \aslb is a named field containing the base-address of the IGDM region                                                                                                                                                                      
# this address depends on the installed ram                                                                                                                                                                                                  
# how to get the address:                                                                                                                                                                                                                    
# - git clone git://github.com/Bumblebee-Project/acpi_call.git                                                                                                                                                                               
# - make                                                                                                                                                                                                                                     
# - load module with insmod or copy to /lib/modules/.... and modprobe                                                                                                                                                                        
# - echo '\aslb' > /proc/acpi/call                                                                                                                                                                                                           
# - cat /proc/acpi/call                                                                                                                                                                                                                      
# - this is the IGDM base address - fill in below                                                                                                                                                                                            

IGDM_BASE=0xBE8B7018
DIDL_OFFSET=0x120
CADL_OFFSET=0x160
# this basically copies the values of the initialized fields DIDL-DDL8 in the IGDM opregion and initializes CADL-CAL8 with it                                                                                                                
# CADL-CAL8 are fields, telling the bios that a screen or something is connected (this is a bit speculation - check                                                                                                                          
# <[url]https://bugs.freedesktop.org/show_bug.cgi?id=45452[/url]> for more                                                                                                                                                                              
# if interested, disasselbe the dsdt to understand, why no notifyevent gets thrown, when CADL isn't initialized                                                                                                                              
# (hint: _Q0E/_Q0F are the backlight methods on the UX32VD)                                                                                                                                                                                  
dd if=/dev/mem skip=$(( $IGDM_BASE + $DIDL_OFFSET )) count=32 bs=1 | xxd  | xxd -r | dd of=/dev/mem bs=1 seek=$(( $IGDM_BASE + $CADL_OFFSET )) count=32

Update2: Ok, I wrote a more detailed explanation in the wiki: https://wiki.archlinux.org/index.php/AS … t_Method_2

Last edited by dontbugme (2012-09-05 12:15:36)

Offline

#5 2012-09-04 13:38:40

J0ta
Member
Registered: 2012-09-04
Posts: 1

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Worked for me!! Thank you very much!!

Working on an Asus UX31A. Offsets were ok too. The only thing is that the laptop was shipped with BIOS version 204 and it is VERY IMPORTANT to upgrade to version 206 before applying the fix. I didn't notice it before and it didn't worked, tried to change the offsets but I wrote mistaken values that resulted in kernel panics.

The solution, after the BIOS upgrade, was to chroot, reinstall the kernel, disable the execution of the script at boot, and, once rebooted onto a working system, fix the values of the offsets (yours are ok for me too) and the base address (obviously it has changed after the upgrade). Enabled the service unit executing the script at boot (systemd) and working like a charm!

Thank you again!

Offline

#6 2012-09-05 10:43:50

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

You're welcome. In the meantime, I improved the script with several guards and checks (installed ram, bios version etc.), and put it up on github. I just forgot to update the script here. It's probably better to delete the version here and just link my github repo. And what I forgot to mention, with this script .. sometimes the next reboot fails, because the system doesn't detect the hard disk (I really have no f'ing idea why) - Just press the power button again (cold boot).
Just one question: So you say, on your UX31A with bios version 2.06 and not changing your ram (afair the ux31a ram isn't replaceable anyway), the IGDM base address is 0xBE8B7018?

Last edited by dontbugme (2012-09-05 10:47:15)

Offline

#7 2012-09-26 00:04:23

tehsu
Member
Registered: 2012-08-06
Posts: 6

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Any ideas how to save the brightness when the screen turns off and comes back on, it goes to max brightness every time the screen comes back on, from either timeout or sleep.

also the IGDM base address for BIOS 211 is 0xDA8A9018

Offline

#8 2012-09-26 06:16:44

archie0
Member
Registered: 2012-02-26
Posts: 144

Re: Trying to fix the backlight keys on Asus UX31A/32VD

tehsu wrote:

Any ideas how to save the brightness when the screen turns off and comes back on, it goes to max brightness every time the screen comes back on, from either timeout or sleep.

also the IGDM base address for BIOS 211 is 0xDA8A9018

It depends on the DE. I'm having the same problem, and I can't fix it. If you're using KDE or MATE it should be easy to tweak.

Offline

#9 2012-09-26 10:22:41

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

@tehsu: It would be nice if you would update the wiki page with the base address for version 2.11, thx. Guess I need to update a few things myself (removing the old script and linking only to my git version).
Ok, updated my UX32VD to 2.11 too. Now the base addresses aren't the same anymore on the 31A and the 32VD.

Last edited by dontbugme (2012-09-26 11:13:28)

Offline

#10 2012-09-27 18:56:51

tehsu
Member
Registered: 2012-08-06
Posts: 6

Re: Trying to fix the backlight keys on Asus UX31A/32VD

I updated the wiki, I use XFCE, but I tested with Gnome Power Manager and it worked a bit better. I will test with gnome3 itself, see how it works.

Offline

#11 2012-10-12 09:42:30

neubauten84
Member
Registered: 2010-02-27
Posts: 51

Re: Trying to fix the backlight keys on Asus UX31A/32VD

It works great on UX31A-R5006X!!!
Variables:

UX31A BIOS 211 (BIOS version is 212 not 211!!) IGDM Base Address is 0xDA8A9018
DIDL_OFFSET=0x120  (same as default)
CADL_OFFSET=0x160 (same as default)

The problem came for systemd service..I created a backlightfix.service config file that works great if started live on session but doesn't if enabled on boot: the service starts correctly and execute the script but I have to give systemctl start to make buttons to work..
I wrote the simpliest .service file with:

[Unit]
Description=Enable Fn+F5 and Fn+F6

[Service]
ExecStart=/usr/local/share/backlightfix

[Install]
WantedBy=multi-user.target

should I have to use some other options in Service section?like:

Type=oneshot
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes

Tks in advance!!!!

Offline

#12 2012-10-12 12:48:11

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 192
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

FYI, my laptop was affected by the same missing CADL initialization (merged with Linux 3.7).

An small Upstart script (which can be easily converted to a regular shellscript by removing the header and footer) with some additional documentation can be found in https://bugs.launchpad.net/ubuntu/+sour … comments/8

@neubauten84 Have you enabled the service with systemctl enable <service name>?

Last edited by Lekensteyn (2012-10-12 12:49:46)

Offline

#13 2012-10-12 15:31:19

neubauten84
Member
Registered: 2010-02-27
Posts: 51

Re: Trying to fix the backlight keys on Asus UX31A/32VD

@Lekensteyn
Obviously!

Offline

#14 2012-10-12 16:08:40

neubauten84
Member
Registered: 2010-02-27
Posts: 51

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Ok no options solved my problem..
I really don't know how it works..

Offline

#15 2012-12-08 11:15:35

cyberius
Member
From: Germany
Registered: 2008-08-30
Posts: 97

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Hi there, I tried your solution but sadly it doesn't work.
I have the Zenbook Prime UX31A 4003V. My BIOS is 214 (!), maybe this is the problem? All newer models are shipped with this new version which isn't avaible yet on the official support page. I tried both Linux 3.6 and 3.7.0-1mainline, doesn't make any difference.

My IGDM base adress also seems to be 0xDA8A9018. The DIDL_OFFSET also seems to be 0x120, but I didn't calculate my CADL_OFFSET because I didn't knew how to add the offsets of the decompiled dsdt *shame*

The only thing that works is to add acpi_osi= in the grub parameters. This fixed the backlight keys. Does this method have any disadvantages? I noticed that ACPI doesn't recognise some events, like pressing the POWER button (I wanted to make pressing the POWER button starting i3lock but the button doesn't produce any event). I read on the forums that decompiling and fixing the DSDT should help, but I guess that would be too complicated since I don't have knowledge in assembler.

Last edited by cyberius (2012-12-08 11:18:36)

Offline

#16 2012-12-08 14:11:36

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 192
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

If it doesn't work in 3.7, then you experience a different bug since the CADL patch is applied to 3.7 already. Can you post your acpidump somewhere?
I have created an acpidump package in AUR for your convenience, so you don't have to download the whole kernel source.

Offline

#17 2012-12-08 21:42:58

cyberius
Member
From: Germany
Registered: 2008-08-30
Posts: 97

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Hello,

thanks for your help!

acpiddump:
http://pastebin.com/0mYzJLW8

And this is my decompiled dsdt
http://www22.zippyshare.com/v/45644709/file.html

Maybe you could check the right offset for an imaginary kiss? smile

I tried recompiling the DSDT:
http://pastebin.com/TFC5D8s3
I fixed the one error (but not the warnings), recompiled to dsdt.aml, copied it to /boot, added boot parameter "acpi /boot/dsdt.aml". Nothing changed! I hoped that a recompiled dsdt would solve all problems? sad

Do you need more information? dmesg output?

This are my grub parameters (taken from the arch wiki)

BOOT_IMAGE=/vmlinuz-linux-mainline root=/dev/mapper/vgroup-root ro cryptdevice=/dev/sda3:vgroup:allow-discards quiet add_efi_memmap i915.i915_enable_rc6=1 pcie_aspm=force drm.vblankoffdelay=1 i915.semaphores=1

showkeys doesn't react to backlight fn keypresses!
Thanks!

edit: Just found this "NOTE: As of BIOS update 214 "Support Windows8 brightness control" is added. This means that the brightness buttons won't work in Ubuntu any longer"

Last edited by cyberius (2012-12-08 23:52:10)

Offline

#18 2012-12-09 11:15:23

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 192
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Try the boot param acpi_osi="!Windows 2012". Win8 has some new brightness policies (http://msdn.microsoft.com/en-us/library … 59305.aspx). In the ASL I can see some checks for OSW8 (identified by _OSI("Windows 2012")).

According to the MSDN document above, drivers must set the second bit for _DOS in order to enable automatic brightness control by BIOS; but Linux doesn't do so.

Offline

#19 2012-12-09 11:39:53

cyberius
Member
From: Germany
Registered: 2008-08-30
Posts: 97

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Thank you, this one works!

I tried some of the strings I found in the decompiled file like "Windows 2009", but none of them worked. This one does. Great!

If I find some time I will try to fix the warnings in the compiled aml, maybe then I will get rid of the remaining ACPI problems (on the bottom in the list) smile

One question: is adding "acpi /boot/dsdt.aml" enough with grub2 for overwriting the dsdt? I did this but dmesg did not show any output like "acpi/dsdt overwritten". So how can I make sure my custom aml was loaded?

Dec  9 13:18:07 localhost kernel: [    0.000000] BIOS-e820: [mem 0x00000000d975f000-0x00000000d9d5ffff] ACPI NVS
Dec  9 13:18:07 localhost kernel: [    0.000000] BIOS-e820: [mem 0x00000000da638000-0x00000000da8b7fff] ACPI NVS
Dec  9 13:18:07 localhost kernel: [    0.000000] BIOS-e820: [mem 0x00000000da8b8000-0x00000000da8bcfff] ACPI data
Dec  9 13:18:07 localhost kernel: [    0.000000] BIOS-e820: [mem 0x00000000da8be000-0x00000000da900fff] ACPI NVS
Dec  9 13:18:07 localhost kernel: [    0.000000] efi:  ACPI=0xda88a000  ACPI 2.0=0xda88a000  SMBIOS=0xf04c0  MPS=0xfd4b0 
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: RSDP 00000000da88a000 00024 (v02 _ASUS_)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: XSDT 00000000da88a090 000A4 (v01 _ASUS_ Notebook 01072009 AMI  00010013)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: FACP 00000000da89bfa8 0010C (v05 _ASUS_ Notebook 01072009 AMI  00010013)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: DSDT 00000000da88a1d0 11DD2 (v02 _ASUS_ Notebook 00000013 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: FACS 00000000da8b5080 00040
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: APIC 00000000da89c0b8 00072 (v03 _ASUS_ Notebook 01072009 AMI  00010013)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: FPDT 00000000da89c130 00044 (v01 _ASUS_ Notebook 01072009 AMI  00010013)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: ECDT 00000000da89c178 000C1 (v01 _ASUS_ Notebook 01072009 AMI. 00000005)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: MCFG 00000000da89c240 0003C (v01 _ASUS_ Notebook 01072009 MSFT 00000097)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89c280 00A3C (v01 DptfTa  DptfTab 00001000 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89ccc0 00CA5 (v01 SADptf  SADptf_ 00001000 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89d968 00098 (v01 PchDpt  PchDptf 00001000 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89da00 0091C (v01 CfgTDP  CfgTDP_ 00001000 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SLIC 00000000da89e320 00176 (v01 _ASUS_ Notebook 01072009 ASUS 00000001)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: HPET 00000000da89e498 00038 (v01 _ASUS_ Notebook 01072009 AMI. 00000005)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89e4d0 0045E (v01 AhciR1 AhciTab1 00001000 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89e930 0049E (v01 AhciR2 AhciTab2 00001000 INTL 20091112)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89edd0 009D0 (v01  PmRef  Cpu0Ist 00003000 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: SSDT 00000000da89f7a0 00A92 (v01  PmRef    CpuPm 00003000 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: DMAR 00000000da8a0238 000B8 (v01 INTEL      SNB  00000001 INTL 00000001)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: Local APIC address 0xfee00000
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: PM-Timer IO Port: 0x408
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: Local APIC address 0xfee00000
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: IRQ0 used by override.
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: IRQ2 used by override.
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: IRQ9 used by override.
Dec  9 13:18:07 localhost kernel: [    0.000000] Using ACPI (MADT) for SMP configuration information
Dec  9 13:18:07 localhost kernel: [    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
Dec  9 13:18:07 localhost kernel: [    0.055035] ACPI: Core revision 20120913
Dec  9 13:18:07 localhost kernel: [    0.311880] PM: Registering ACPI NVS region [mem 0xd975f000-0xd9d5ffff] (6295552 bytes)
Dec  9 13:18:07 localhost kernel: [    0.311976] PM: Registering ACPI NVS region [mem 0xda638000-0xda8b7fff] (2621440 bytes)
Dec  9 13:18:07 localhost kernel: [    0.312014] PM: Registering ACPI NVS region [mem 0xda8be000-0xda900fff] (274432 bytes)
Dec  9 13:18:07 localhost kernel: [    0.312998] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
Dec  9 13:18:07 localhost kernel: [    0.313000] ACPI: bus type pci registered
Dec  9 13:18:07 localhost kernel: [    0.336058] ACPI: Added _OSI(Module Device)
Dec  9 13:18:07 localhost kernel: [    0.336060] ACPI: Added _OSI(Processor Device)
Dec  9 13:18:07 localhost kernel: [    0.336061] ACPI: Added _OSI(3.0 _SCP Extensions)
Dec  9 13:18:07 localhost kernel: [    0.336063] ACPI: Added _OSI(Processor Aggregator Device)
Dec  9 13:18:07 localhost kernel: [    0.336064] ACPI: Deleted _OSI(Windows 2012)
Dec  9 13:18:07 localhost kernel: [    0.338745] ACPI: EC: EC description table is found, configuring boot EC
Dec  9 13:18:07 localhost kernel: [    0.341528] ACPI: Executed 1 blocks of module-level executable AML code
Dec  9 13:18:07 localhost kernel: [    0.345883] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
Dec  9 13:18:07 localhost kernel: [    0.346393] ACPI: SSDT 00000000da5e5018 00853 (v01  PmRef  Cpu0Cst 00003001 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.347066] ACPI: Dynamic OEM Table Load:
Dec  9 13:18:07 localhost kernel: [    0.347068] ACPI: SSDT           (null) 00853 (v01  PmRef  Cpu0Cst 00003001 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.356074] ACPI: SSDT 00000000da5e6a98 00303 (v01  PmRef    ApIst 00003000 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.356777] ACPI: Dynamic OEM Table Load:
Dec  9 13:18:07 localhost kernel: [    0.356779] ACPI: SSDT           (null) 00303 (v01  PmRef    ApIst 00003000 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.375893] ACPI: SSDT 00000000da5e7c18 00119 (v01  PmRef    ApCst 00003000 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.376563] ACPI: Dynamic OEM Table Load:
Dec  9 13:18:07 localhost kernel: [    0.376565] ACPI: SSDT           (null) 00119 (v01  PmRef    ApCst 00003000 INTL 20051117)
Dec  9 13:18:07 localhost kernel: [    0.396518] ACPI: Interpreter enabled
Dec  9 13:18:07 localhost kernel: [    0.396523] ACPI: (supports S0 S3 S4 S5)
Dec  9 13:18:07 localhost kernel: [    0.396548] ACPI: Using IOAPIC for interrupt routing
Dec  9 13:18:07 localhost kernel: [    0.403646] ACPI: EC: GPE = 0x19, I/O: command/status = 0x66, data = 0x62
Dec  9 13:18:07 localhost kernel: [    0.403893] ACPI: No dock devices found.
Dec  9 13:18:07 localhost kernel: [    0.403898] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
Dec  9 13:18:07 localhost kernel: [    0.404273] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
Dec  9 13:18:07 localhost kernel: [    0.412164] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
Dec  9 13:18:07 localhost kernel: [    0.412314] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
Dec  9 13:18:07 localhost kernel: [    0.412348] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
Dec  9 13:18:07 localhost kernel: [    0.412512]  pci0000:00: Requesting ACPI _OSC control (0x1d)
Dec  9 13:18:07 localhost kernel: [    0.412751]  pci0000:00: ACPI _OSC control (0x18) granted
Dec  9 13:18:07 localhost kernel: [    0.417936] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12)
Dec  9 13:18:07 localhost kernel: [    0.417986] ACPI: PCI Interrupt Link [LNKB] (IRQs *3 4 5 6 7 10 12)
Dec  9 13:18:07 localhost kernel: [    0.418032] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 *10 12)
Dec  9 13:18:07 localhost kernel: [    0.418076] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *10 12)
Dec  9 13:18:07 localhost kernel: [    0.418121] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 12) *0, disabled.
Dec  9 13:18:07 localhost kernel: [    0.418166] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 12) *0, disabled.
Dec  9 13:18:07 localhost kernel: [    0.418211] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 7 10 12)
Dec  9 13:18:07 localhost kernel: [    0.418256] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 *4 5 6 7 10 12)
Dec  9 13:18:07 localhost kernel: [    0.418384] PCI: Using ACPI for IRQ routing
Dec  9 13:18:07 localhost kernel: [    0.427174] pnp: PnP ACPI init
Dec  9 13:18:07 localhost kernel: [    0.427186] ACPI: bus type pnp registered
Dec  9 13:18:07 localhost kernel: [    0.427566] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
Dec  9 13:18:07 localhost kernel: [    0.427627] system 00:01: Plug and Play ACPI device, IDs PNP0c01 (active)
Dec  9 13:18:07 localhost kernel: [    0.427717] pnp 00:02: Plug and Play ACPI device, IDs PNP0200 (active)
Dec  9 13:18:07 localhost kernel: [    0.427742] pnp 00:03: Plug and Play ACPI device, IDs INT0800 (active)
Dec  9 13:18:07 localhost kernel: [    0.427854] pnp 00:04: Plug and Play ACPI device, IDs PNP0103 (active)
Dec  9 13:18:07 localhost kernel: [    0.427944] system 00:05: Plug and Play ACPI device, IDs PNP0c02 (active)
Dec  9 13:18:07 localhost kernel: [    0.427984] pnp 00:06: Plug and Play ACPI device, IDs PNP0b00 (active)
Dec  9 13:18:07 localhost kernel: [    0.428044] system 00:07: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
Dec  9 13:18:07 localhost kernel: [    0.428118] system 00:08: Plug and Play ACPI device, IDs PNP0c02 (active)
Dec  9 13:18:07 localhost kernel: [    0.428154] pnp 00:09: Plug and Play ACPI device, IDs PNP0c04 (active)
Dec  9 13:18:07 localhost kernel: [    0.428225] pnp 00:0a: Plug and Play ACPI device, IDs ETD0105 SYN0a00 SYN0002 PNP0f03 PNP0f13 PNP0f12 (active)
Dec  9 13:18:07 localhost kernel: [    0.428278] pnp 00:0b: Plug and Play ACPI device, IDs ATK3001 PNP030b (active)
Dec  9 13:18:07 localhost kernel: [    0.428551] system 00:0c: Plug and Play ACPI device, IDs PNP0c02 (active)
Dec  9 13:18:07 localhost kernel: [    0.428652] system 00:0d: Plug and Play ACPI device, IDs PNP0c02 (active)
Dec  9 13:18:07 localhost kernel: [    0.428826] system 00:0e: Plug and Play ACPI device, IDs PNP0c01 (active)
Dec  9 13:18:07 localhost kernel: [    0.428876] pnp: PnP ACPI: found 15 devices
Dec  9 13:18:07 localhost kernel: [    0.428877] ACPI: ACPI bus type pnp unregistered
Dec  9 13:18:07 localhost kernel: [    0.663582] ACPI: bus type usb registered
Dec  9 13:18:07 localhost kernel: [    0.666831] ACPI: bus type scsi registered
Dec  9 13:18:07 localhost kernel: [    1.013062] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
Dec  9 13:18:07 localhost kernel: [    1.013226] ata1.00: ACPI cmd ef/10:06:00:00:00:a0 (SET FEATURES) succeeded
Dec  9 13:18:07 localhost kernel: [    1.013231] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
Dec  9 13:18:07 localhost kernel: [    1.033023] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
Dec  9 13:18:07 localhost kernel: [    1.033164] ata1.00: ACPI cmd ef/10:06:00:00:00:a0 (SET FEATURES) succeeded
Dec  9 13:18:07 localhost kernel: [    1.033169] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
Dec  9 13:18:07 localhost kernel: [   10.595620] ACPI: Requesting acpi_cpufreq
Dec  9 13:18:07 localhost kernel: [   10.615737] ACPI: AC Adapter [AC0] (on-line)
Dec  9 13:18:07 localhost kernel: [   10.615891] ACPI: Lid Switch [LID]
Dec  9 13:18:07 localhost kernel: [   10.615995] ACPI: Power Button [PWRB]
Dec  9 13:18:07 localhost kernel: [   10.621968] ACPI: Sleep Button [SLPB]
Dec  9 13:18:07 localhost kernel: [   10.622977] ACPI: Thermal Zone [THRM] (54 C)
Dec  9 13:18:07 localhost kernel: [    1.044551] ACPI: Invalid Power Resource to register!
Dec  9 13:18:07 localhost kernel: [   10.647887] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \GPIS 1 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647894] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 2 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647899] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
Dec  9 13:18:07 localhost kernel: [   10.647902] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647905] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GP01 2 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647909] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
Dec  9 13:18:07 localhost kernel: [   10.647910] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647913] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GP01 2 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647916] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
Dec  9 13:18:07 localhost kernel: [   10.651124] ACPI: Battery Slot [BAT0] (battery present)
Dec  9 13:18:07 localhost kernel: [   10.651262] ACPI Warning: 0x000000000000f040-0x000000000000f05f SystemIO conflicts with Region \SMB0 1 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.651272] ACPI Warning: 0x000000000000f040-0x000000000000f05f SystemIO conflicts with Region \_SB_.PCI0.SBUS.SMBI 2 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.651279] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
Dec  9 13:18:07 localhost kernel: [   10.902191] asus_wmi: Backlight controlled by ACPI video driver
Dec  9 13:18:07 localhost kernel: [   11.115605] ACPI Error: [IIA0] Namespace lookup failure, AE_ALREADY_EXISTS (20120913/dsfield-211)
Dec  9 13:18:07 localhost kernel: [   11.115611] ACPI Error: Method parse/execution failed [\_SB_.ATKD.WMNB] (Node ffff880119e8df50), AE_ALREADY_EXISTS (20120913/psparse-536)
Dec  9 13:18:07 localhost kernel: [   11.126687] ACPI: Marking method WMNB as Serialized because of AE_ALREADY_EXISTS error
Dec  9 13:18:09 localhost kernel: [   13.161039] ACPI Error: Current brightness invalid (20120913/video-376)
Dec  9 13:18:09 localhost kernel: [   13.166970] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)

Last edited by cyberius (2012-12-09 11:49:23)

Offline

#20 2012-12-09 12:02:17

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

*Sigh*. Stupid acpi specification. Crap methods like _OSI never should have made it into the ACPI Spec. Constantly reminds me of the good ol' browser war. This stuff gives just pure migraine-like headaches. I was so glad that with kernel 3.7  my backlight fix is obsolete, and now .. they kill the brightness keys again with the bios update sad (well, at least it can be fixed with acpi_osi="!Windows 2012").
@Lekenstyn: Would you be so kind to add this information to the wiki. Maybe the _DOS part too. Guess this will be fixed(again) with kernel 3.8, or probably later.
Update: Yay, guess tomorrow or so, kernel 3.7 goes online.

Last edited by dontbugme (2012-12-09 12:03:49)

Offline

#21 2012-12-09 13:18:23

cyberius
Member
From: Germany
Registered: 2008-08-30
Posts: 97

Re: Trying to fix the backlight keys on Asus UX31A/32VD

I managed to fix all the errors and warnings in the DSDT!! Now I wanted to ask, is recompiling the kernel the only way of including the custom DSDT? I tried it with the boot parameter "acpi /boot/dsdt.aml" but I think it doesn't get loaded!

I changed the "Notebook" string in the DSDT to "NotebookCustom", but dmesg still only only reports ACPI: [...] _ASUS_ Notebook

If there is no other way I will recompile and see what it does

Last edited by cyberius (2012-12-09 13:18:41)

Offline

#22 2012-12-09 20:29:32

Lekensteyn
Member
From: Netherlands
Registered: 2012-06-19
Posts: 192
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

@dontbugme, _OSI's intent is good: try to provide as much features as possible (like _OSI("I can handle bananas") to require a monkey or something else that can process bananas) while degrading functionality when not available (no bananas? Okay, have an orange then).

I don't think this will make it to 3.7 nor 3.8. 3.6 shipped with the "Windows 2012" string (commit a57f7f9175b8ccbc9df83ac13860488913115de4), so 3.5 could work in theory with no issues. I could not find a bug when searching for "Windows 8" on https://kernel.bugzilla.org, so you can try reporting it there, providing your acpidump. If possible, please attach the acpidump when running the older (working) BIOS as well. I leave the wiki edit to you, I have not performed a full analysis yet, and the _DOS thing was a guess.

@cyberius Do you have an actual issue with ACPI? If not, I strongly suggest not to override your DSDT, instead use custom_method. Those DSDT "errors" when compiling with iasl occur because MS ASL compiler produces slightly different AML output. Any error you experience is likely a logic or structural error which cannot be solved by just recompiling the DSDT.

Offline

#23 2012-12-11 11:33:22

cyberius
Member
From: Germany
Registered: 2008-08-30
Posts: 97

Re: Trying to fix the backlight keys on Asus UX31A/32VD

@Lekensteyn

I have no more "real" issues. Battery power status works.
Only minor things, e.g. pressing my Power Button doesn't do anything (no output in showkeys, ACPI doesn't recognize anything). I wanted to map it to start a screenlock, so I thought fixing this ACPI/DSDT table would help..

This is strange, because in my dmesg posted above, the kernel recognizes the button "Dec  9 13:18:07 localhost kernel: [   10.615995] ACPI: Power Button [PWRB]"

And there are some minor things like
"Dec  9 13:18:07 localhost kernel: [    1.044551] ACPI: Invalid Power Resource to register!
Dec  9 13:18:07 localhost kernel: [   10.647887] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \GPIS 1 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647894] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 2 (20120913/utaddress-251)
Dec  9 13:18:07 localhost kernel: [   10.647899] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver"

I can live with all that, but it is always nice to fix things if it is possible. And one learns a  lot and it makes fun smile

Last edited by cyberius (2012-12-11 11:36:12)

Offline

#24 2012-12-11 17:33:51

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

@Lekenstyn: TBFH, I don't really have the motivation to fix bios 2.14 (dosn't matter to me atm), because I will just stay with 2.12 until it is fixed in 2.14 or . .for as long as I use the ultrabook. As of kernel 3.7 the CADL problem is fixed, so I don't need my backlight fix anymore ..and everything is well. It is just somehow annoying that they always manage to break things with updates.
> _OSI("I can handle bananas")
I don't think this is the optimal way.  It just doesn't makes sense to me that a bios update (which breaks some stuff), is necessary to work with the Windows 8 policies. From what I read, they invented ACPI because APM was a pile of crap. And now, ACPI makes different stupid errors.
Idk how backwards compatible all the acpi standards are, but imo it would be much better if the OS has to tell via. a method which acpi standard it supports and not .. I'm OS this and that. In the end, either the bios and the os agree on the used acpi version, or the bios says "fu** you, I don't support your asked acpi standard, I disable acpi. Either you accept that and disable all acpi calls or you can crash and crap your pants, not my fault". Something like that.

Offline

#25 2012-12-13 16:41:31

dontbugme
Banned
Registered: 2011-11-04
Posts: 166
Website

Re: Trying to fix the backlight keys on Asus UX31A/32VD

Sigh. What did "they" change in 3.7 again. Now I need acpi_osi="!Windows 2012" as grub argument or Lekensteyns merged kernel patch won't do a thing (thanks for the patch again). I thought I only need the "!Windows 2012" argument only with the latest asus bios hmm.

Offline

Board footer

Powered by FluxBB