Thread (1 message) 1 message, 1 author, 2003-02-10

Re: ASL help with latest acpi and compaq presario 2800t

From: Ducrot Bruno <hidden>
Date: 2003-02-10 13:57:40

On Sun, Feb 09, 2003 at 05:44:48PM -0700, Kevin Fenzi wrote:
Greetings. 

I have been running nicely on my presario 2800t for a while, but with
kernel 2.4.18 and a pretty old acpi version. 

So, what better to do on a lazy sunday than try and upgrade to
2.4.21-pre4 and the newest acpi? :) 

I pulled down the 2.4.21-pre4 kernel. Applied the
acpi-20030125-2.4.21-pre3.diff.gz diff to it. 
Then applied the patch-acpi-acpi20030125-swsusp18.gz software
suspend+acpi patch to that. 

First I tried just compiling that and seeing how acpi would work. 
It came up, but of course with no battery/ac, etc due to the broken
compaq dsdt. 

So, I pulled down acpidump and iasl-linux-20030123.tar.gz
dumped out the dsdt and tried to compile it. 

56 errors. 

I first fixed all the "String must be entirely alphanumeric" errors
(compaq seems to like putting * in all their names.)
I realize it's against the spec, but could something be added to
change * to nothing if it finds it in a Name? 

Fixing those got me down to 21 errors. 
(Worth noting that at this point with the old iasl I was using with
2.4.18 there were no further errors here). 

Any ideas on any of these:

dsdt.asl-2003-02-09   168:                 If(\_OSI) {
Error    1028 -                 Too few arguments ^  (\_OSI requires 1)
dsdt.asl-2003-02-09   169:                     "Windows 2001"
Error    1037 -                                             ^ parse error, unexpected PARSEOP_STRING_LITERAL

Try:
--- dsdt.asl	2003/02/10 13:49:25	1.1
+++ dsdt.asl	2003/02/10 13:54:53
@@ -165,8 +165,7 @@
         }
         If(LOr(LEqual(C009, 0x0), LEqual(C009, 0x3))) {
             If(CondRefOf(\_OSI, Local0)) {
-                If(\_OSI) {
-                    "Windows 2001"
+                If(\_OSI("Windows 2001")) {
                     Store(0x4, C009)
                 }
             }
@@ -1916,7 +1915,7 @@
                         }
                         Method(_OFF) {
                             If(LOr(\_SB_.C020, LEqual(0x0, 0x1))) {
-                                Return(0x0)
+                                /* Return(0x0) */
                             }
                             C132(0x3, 0x0)
                         }
@@ -2202,7 +2201,7 @@
                         }
                         Method(_OFF) {
                             If(LOr(\_SB_.C023, LEqual(0x0, 0x1))) {
-                                Return(0x0)
+                                /* Return(0x0) */
                             }
                             C132(0x1, 0x0)
                         }
@@ -2285,7 +2284,7 @@
                 }
             }
             Scope(C162) {
-                Name(_HID, "*SYN0100")
+                Name(_HID, "SYN0100")
                 Name(_CID, Package(0x2) {
                     0x02002e4f,
                     0x130fd041,


Alas, your DSDT do not contains some of the objects not found.  This
is likely because you have SDST tables which contains them.  You need
to force the compilation.

-- 
Ducrot Bruno

--  Which is worse:  ignorance or apathy?
--  Don't know.  Don't care.


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help