Bug 15834

Summary: ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007f32cca0), AE_NOT_FOUND
Product: ACPI Reporter: dosmakov (denis.osmakov)
Component: BIOSAssignee: acpi_bios
Status: CLOSED DOCUMENTED    
Severity: normal CC: lenb
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: 2.6.33.2 x86_64 GNU/Linux Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg, acpidump, kernel .config, lspci, lsusb
custom DSDT

Description dosmakov 2010-04-22 12:42:34 UTC
Created attachment 26093 [details]
dmesg, acpidump, kernel .config, lspci, lsusb

Hello.

During boot, the kernel returns an error:

denis@quietcat:~$ dmesg | grep -i error
[    0.148984] ACPI Error (psargs-0359): [CDW1] Namespace lookup failure, AE_NOT_FOUND
[    0.149111] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007f32cca0), AE_NOT_FOUND
[    0.162281] ACPI Error (psargs-0359): [CDW1] Namespace lookup failure, AE_NOT_FOUND
[    0.162437] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0._OSC] (Node ffff88007f32cca0), AE_NOT_FOUND
[    3.089480] PM: Error -22 checking image file

What causes the error?

Hardware: Notebook Toshiba U300-111
BIOS: ACPI Flash BIOS version 5.10 for Tecra M8 (PTM80U) and Sat/Pro U30x (PSU30U/PSU31U)
Linux: Debian 5.04 (testing)
Linux kernel: 2.6.33.2 (download from kernel.org)
In addition see attached files.

---

Regards, Denis
Comment 1 Zhang Rui 2010-05-10 07:03:02 UTC
Created attachment 26307 [details]
custom DSDT

please try this custom dsdt attached.
you can follow the step 5,6,7 in http://www.lesswatts.org/projects/acpi/overridingDSDT.php to override the dsdt.
Comment 2 Zhang Rui 2010-05-11 07:46:40 UTC
            Method (_OSC, 4, Serialized)
            {
                Store (0x00, OSCS)
                Store (0x00, OSCC)
                If (LAnd (LEqual (Arg0, GUID), NEXP))
                {
                    Store (Arg3, Local0)
                    CreateDWordField (Local0, 0x00, CDW1)
                    CreateDWordField (Local0, 0x04, CDW2)
                    CreateDWordField (Local0, 0x08, CDW3)
                    ...
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
                    Return (Local0)
                }
            }

this is a AML code bug.
CDW1 is defined only if LAnd (LEqual (Arg0, GUID), NEXP) is true, but it is also used when LAnd (LEqual (Arg0, GUID), NEXP) is false.


Changing the AML code to this should help.
            Method (_OSC, 4, Serialized)
            {
                Store (0x00, OSCS)
                Store (0x00, OSCC)
                Store (Arg3, Local0)
                CreateDWordField (Local0, 0x00, CDW1)
                CreateDWordField (Local0, 0x04, CDW2)
                CreateDWordField (Local0, 0x08, CDW3)
                If (LAnd (LEqual (Arg0, GUID), NEXP))
                {
                    ...
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
                    Return (Local0)
                }
            }

please re-open this bug if the custom DSDT doesn't work for you.
And you should raise this issue
Comment 3 Zhang Rui 2010-05-11 07:48:32 UTC
(In reply to comment #2)
> And you should raise this issue

And you should raise this issue to toshiba as this bug also affects windows.
Comment 4 dosmakov 2010-05-14 15:47:55 UTC
Hello Rui.

Many thanks for help. Custom DSDT helped me.

---

Best Regard
Denis Osmakov