Bugs in my DSDT (aopen 1556/1557 ou keynux impact)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I have done that :
cat /proc/acpi/dsdt > dsdt.dat
iasl -d dsdt.dat
iasl -tc dsdt.dsl
The output :
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 18 2007] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0a
dsdt.dsl 207: Method (_WAK, 1, NotSerialized)
Warning 1079 - ^ Reserved method must return a value (_WAK)
dsdt.dsl 2600: Field (RAM, AnyAcc, Lock, Preserve)
Error 4074 - ^ Host Operation Region
requires ByteAcc access
dsdt.dsl 2714: Store (Arg2, DAT3)
Error 4005 - Method argument is not initialized ^ (Arg2)
dsdt.dsl 2714: Store (Arg2, DAT3)
Remark 5065 - Not a parameter, used as local only ^ (Arg2)
dsdt.dsl 3121: Release (MTIO)
Warning 1098 - Statement is unreachable ^
ASL Input: dsdt.dsl - 4852 lines, 179994 bytes, 2068 keywords Compilation complete. 2 Errors, 2 Warnings, 1 Remarks, 493 Optimizations
Do anyone can and want to help me, please ? I can post the dsdt.dsl too but it's quite long...
Thx
Guillaume
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFGWb71RvQAQ6Awr6YRAidyAJ9qiAZmu908ZepZDgZNR2zeuf8mdgCfaiJk p2gI9zWA8pY2qO7px72XQuU=
=RCLO
-----END PGP SIGNATURE-----
Quoted 31 lines · giggz
Hi,
I have done that :
cat
/proc/acpi/dsdt> dsdt.dat
iasl -d dsdt.dat
iasl -tc dsdt.dslThe output :
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 18 2007] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0adsdt.dsl 207: Method (
_WAK, 1, NotSerialized)
Warning 1079 - ^ Reserved method must return a value (_WAK)dsdt.dsl 2600: Field (RAM, AnyAcc, Lock, Preserve)
Error 4074 - ^ Host Operation Region
requires ByteAcc accessdsdt.dsl 2714: Store (Arg2, DAT3)
Error 4005 - Method argument is not initialized ^ (Arg2)dsdt.dsl 2714: Store (Arg2, DAT3)
Remark 5065 - Not a parameter, used as local only ^ (Arg2)dsdt.dsl 3121: Release (MTIO)
Warning 1098 - Statement is unreachable ^
Quoted 8 lines
ASL Input: dsdt.dsl - 4852 lines, 179994 bytes, 2068 keywords Compilation complete. 2 Errors, 2 Warnings, 1 Remarks, 493 Optimizations
Do anyone can and want to help me, please ? I can post the dsdt.dsl too but it's quite long...
Thx
Guillaume
Hi,
I found solutions of 3 compilation problems on the net :
For the error :
dsdt.dsl 207: Method (_WAK, 1, NotSerialized)
Warning 1079 - ^ Reserved method must return a value (_WAK)
I had that :
Method (_WAK, 1, NotSerialized)
{
Store (Arg0, P80H)
Store (0x29, SMIF)
Store (0x00, TRP0)
If (LEqual (Arg0, 0x03))
{
Store (0xA1, \_SB.PCI0.LPCB.EC0.P54S)
Store (0x12, SMIF)
Store (0x00, TRP0)
If (LEqual (PAR1, 0x00))
{
Notify (\_SB.SLPB, 0x02)
}
Store (0x66, P80H)
}
If (LEqual (Arg0, 0x04))
{
If (CondRefOf (_OSI, Local0))
{
Store (0x07D1, OSYS)
}
Else
{
If (LEqual (SizeOf (_OS), 0x14))
{
Store (0x07D0, OSYS)
}
Else
{
If (LEqual (SizeOf (_OS), 0x27))
{
Store (0x07CF, OSYS)
}
Else
{
Store (0x07CE, OSYS)
}
}
}
}
}I put at the end :
Return(Package(0x02){0x00, 0x00}) The warning diseapears but I don't know if it's the good solution...If anyone can tell me that's true or false...
For the error :
dsdt.dsl 2600: Field (RAM, AnyAcc, Lock, Preserve)
Error 4074 - ^ Host Operation Region
requires ByteAcc access
I changed AnyAcc with ByteAcc.
For the error :
dsdt.dsl 3121: Release (MTIO)
Warning 1098 - Statement is unreachable ^
I had :
Method (READ, 1, Serialized)
{
Acquire (MTIO, 0xFFFF)
Store (Arg0, INDX)
Store (DATA, Local0)
Return (Local0)
Release (MTIO)
}
And now I have that :
Method (READ, 1, Serialized)
{
Acquire (MTIO, 0xFFFF)
Store (Arg0, INDX)
Store (DATA, Local0)
Release (MTIO)
Return (Local0)
}
But I can't find the solution for the other error problem :
I have that :
Method (RAMW, 2, NotSerialized)
{
Acquire (MUTX, 0xFFFF)
If (LGreater (Arg0, 0x7F))
{
Store (Arg2, DAT3)
}
Store (Arg0, DAT2)
Store (Arg1, DAT1)
Store (0xBB, CMCD)
Store (0x64, Local1)
While (Local1)
{
Decrement (Local1)
Sleep (0x05)
Store (CMCD, Local0)
If (LEqual (Local0, Zero))
{
Store (Zero, Local1)
}
}
Release (MUTX)
}And Arg2 doesn't exist...but what can I do ?
Thx
Have a nice day
Guillaume
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi,
giggz ?????:
Quoted 16 lines
Quoted 15 lines · giggz
Hi,
I have done that :
cat
/proc/acpi/dsdt> dsdt.dat
iasl -d dsdt.dat
iasl -tc dsdt.dslThe output :
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 18 2007] Copyright (C) 2000 - 2006 Intel Corporation Supports ACPI Specification Revision 3.0a
Quoted 7 lines
Quoted 7 lines
dsdt.dsl 207: Method (
_WAK, 1, NotSerialized)
Warning 1079 - ^ Reserved method must return a value (_WAK)
dsdt.dsl 2714: Store (Arg2, DAT3)
Error 4005 - Method argument is not initialized ^ (Arg2)dsdt.dsl 2714: Store (Arg2, DAT3)
Remark 5065 - Not a parameter, used as local only ^ (Arg2)
For this too need to look at source of the method(s).
Quoted 3 lines
Quoted 3 lines
dsdt.dsl 3121: Release (MTIO)
Warning 1098 - Statement is unreachable ^
Same here.
Quoted 64 lines
Quoted 9 lines
ASL Input: dsdt.dsl - 4852 lines, 179994 bytes, 2068 keywords Compilation complete. 2 Errors, 2 Warnings, 1 Remarks, 493 Optimizations
Do anyone can and want to help me, please ? I can post the dsdt.dsl too but it's quite long...
Thx
GuillaumeHi,
I found solutions of 3 compilation problems on the net :
For the error :
dsdt.dsl 207: Method (_WAK, 1, NotSerialized)
Warning 1079 - ^ Reserved method must return a value (_WAK)I had that :
Method (_WAK, 1, NotSerialized) { Store (Arg0, P80H) Store (0x29, SMIF) Store (0x00, TRP0) If (LEqual (Arg0, 0x03)) { Store (0xA1, \_SB.PCI0.LPCB.EC0.P54S) Store (0x12, SMIF) Store (0x00, TRP0) If (LEqual (PAR1, 0x00)) { Notify (\_SB.SLPB, 0x02) } Store (0x66, P80H) } If (LEqual (Arg0, 0x04)) { If (CondRefOf (_OSI, Local0)) { Store (0x07D1, OSYS) } Else { If (LEqual (SizeOf (_OS), 0x14)) { Store (0x07D0, OSYS) } Else { If (LEqual (SizeOf (_OS), 0x27)) { Store (0x07CF, OSYS) } Else { Store (0x07CE, OSYS) } } } } }
Quoted 4 lines
I put at the end :
Return(Package(0x02){0x00, 0x00})The warning diseapears but I don't know if it's the good solution...If anyone can tell me that's true or false...
This one doesn't matter as linux does not look at the result anyway.
Quoted 9 lines
For the error :
dsdt.dsl 2600: Field (RAM, AnyAcc, Lock, Preserve)
Error 4074 - ^ Host Operation Region
requires ByteAcc accessI changed AnyAcc with ByteAcc.
Right.
Quoted 16 lines
For the error :
dsdt.dsl 3121: Release (MTIO)
Warning 1098 - Statement is unreachable ^I had :
Method (READ, 1, Serialized)
{
Acquire (MTIO,0xFFFF)
Store (Arg0, INDX)
Store (DATA, Local0)
Return (Local0)
Release (MTIO)
}
Quoted 10 lines
And now I have that :
Method (READ, 1, Serialized)
{
Acquire (MTIO,0xFFFF)
Store (Arg0, INDX)
Store (DATA, Local0)
Release (MTIO)
Return (Local0)
}
Right.
Quoted 29 lines
But I can't find the solution for the other error problem :
I have that :Method (RAMW, 2, NotSerialized) { Acquire (MUTX, 0xFFFF) If (LGreater (Arg0, 0x7F)) { Store (Arg2, DAT3) } Store (Arg0, DAT2) Store (Arg1, DAT1) Store (0xBB, CMCD) Store (0x64, Local1) While (Local1) { Decrement (Local1) Sleep (0x05) Store (CMCD, Local0) If (LEqual (Local0, Zero)) { Store (Zero, Local1) } } Release (MUTX) }
Quoted 1 line
And Arg2 doesn't exist...but what can I do ?
Find callers of this method, if they pass more than 2 args to it, then simply change Method(RAMW, 2 -> Method(RAMW, 3.
If noone sends 3rd argument, then the only choice is to remove the whole
"If () {}".
Quoted 10 lines
Thx
Have a nice day
Guillaume-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 5 lines
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
[...] (little cut)
Quoted 25 lines
Quoted 25 lines
But I can't find the solution for the other error problem :
I have that :Method (RAMW, 2, NotSerialized) { Acquire (MUTX, 0xFFFF) If (LGreater (Arg0, 0x7F)) { Store (Arg2, DAT3) } Store (Arg0, DAT2) Store (Arg1, DAT1) Store (0xBB, CMCD) Store (0x64, Local1) While (Local1) { Decrement (Local1) Sleep (0x05) Store (CMCD, Local0) If (LEqual (Local0, Zero)) { Store (Zero, Local1) } }
Quoted 8 lines
Quoted 4 lines
Release (MUTX) }And Arg2 doesn't exist...but what can I do ?
Find callers of this method, if they pass more than 2 args to it, then simply change Method(RAMW, 2 -> Method(RAMW, 3.
If noone sends 3rd argument, then the only choice is to remove the whole
"If () {}".
I'm total newbie in this domain...So How can I find "callers" .
I have done that :
search for "RAMW" in all the dsdt.dsl file. I don't find any other, just the definition of the Method. Do I just remove the method ?
Thx
Guillaume
Quoted 4 lines
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 37 lines · giggz
[...] (little cut)
Quoted 25 lines
Quoted 25 lines
But I can't find the solution for the other error problem :
I have that :Method (RAMW, 2, NotSerialized) { Acquire (MUTX, 0xFFFF) If (LGreater (Arg0, 0x7F)) { Store (Arg2, DAT3) } Store (Arg0, DAT2) Store (Arg1, DAT1) Store (0xBB, CMCD) Store (0x64, Local1) While (Local1) { Decrement (Local1) Sleep (0x05) Store (CMCD, Local0) If (LEqual (Local0, Zero)) { Store (Zero, Local1) } }Quoted 8 lines
Quoted 4 lines
Release (MUTX) }And Arg2 doesn't exist...but what can I do ?
Find callers of this method, if they pass more than 2 args to it, then simply change Method(RAMW, 2 -> Method(RAMW, 3.
If noone sends 3rd argument, then the only choice is to remove the whole
"If () {}".
Quoted 6 lines
I'm total newbie in this domain...So How can I find "callers" .
I have done that :
search for "RAMW" in all the dsdt.dsl file. I don't find any other, just the definition of the Method. Do I just remove the method ?
I test to compile with Method (RAMW, 3, NotSerialized). And I have no more error.
What Do I have to do ? Remove this Method or put 3 arguments ?
Quoted 9 lines
Thx
GuillaumeQuoted 4 lines
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 5 lines
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 38 lines · giggz
Quoted 37 lines · giggz
[...] (little cut)
Quoted 25 lines
Quoted 25 lines
But I can't find the solution for the other error problem :
I have that :Method (RAMW, 2, NotSerialized) { Acquire (MUTX, 0xFFFF) If (LGreater (Arg0, 0x7F)) { Store (Arg2, DAT3) } Store (Arg0, DAT2) Store (Arg1, DAT1) Store (0xBB, CMCD) Store (0x64, Local1) While (Local1) { Decrement (Local1) Sleep (0x05) Store (CMCD, Local0) If (LEqual (Local0, Zero)) { Store (Zero, Local1) } }Quoted 8 lines
Quoted 4 lines
Release (MUTX) }And Arg2 doesn't exist...but what can I do ?
Find callers of this method, if they pass more than 2 args to it, then simply change Method(RAMW, 2 -> Method(RAMW, 3.
If noone sends 3rd argument, then the only choice is to remove the whole
"If () {}".I'm total newbie in this domain...So How can I find "callers" .
Quoted 9 lines
Quoted 4 lines
I have done that :
search for "RAMW" in all the dsdt.dsl file. I don't find any other, just the definition of the Method. Do I just remove the method ?I test to compile with Method (RAMW, 3, NotSerialized). And I have no more error.
What Do I have to do ? Remove this Method or put 3 arguments ?
Ok I looked through the dsdt.dsl file. Juste above this method I found this other method :
Method (RAMR, 2, NotSerialized)
{
Acquire (MUTX, 0xFFFF)
If (LGreater (Arg0, 0x7F))
{
Store (Arg1, DAT3)
}
Store (Arg0, DAT2)
Store (0xBA, CMCD)
Store (0x64, Local1)
While (Local1)
{
Decrement (Local1)
Sleep (0x05)
Store (CMCD, Local0)
If (LEqual (Local0, Zero))
{
Store (Zero, Local1)
}
}
Store (DAT1, Local0)
Release (MUTX)
Return (Local0)
}Perhaps the error is really a bug in the dsdt : Arg2 must be Arg1!
How can I know ?
Quoted 14 lines
Quoted 4 lines
Thx
GuillaumeQuoted 9 lines
Quoted 4 lines
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 5 lines
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
giggz ?????:
Quoted 77 lines
Quoted 38 lines · giggz
Quoted 37 lines · giggz
[...] (little cut)
Quoted 25 lines
Quoted 25 lines
But I can't find the solution for the other error problem :
I have that :Method (RAMW, 2, NotSerialized) { Acquire (MUTX, 0xFFFF) If (LGreater (Arg0, 0x7F)) { Store (Arg2, DAT3) } Store (Arg0, DAT2) Store (Arg1, DAT1) Store (0xBB, CMCD) Store (0x64, Local1) While (Local1) { Decrement (Local1) Sleep (0x05) Store (CMCD, Local0) If (LEqual (Local0, Zero)) { Store (Zero, Local1) } }Quoted 8 lines
Quoted 4 lines
Release (MUTX) }And Arg2 doesn't exist...but what can I do ?
Find callers of this method, if they pass more than 2 args to it, then simply change Method(RAMW, 2 -> Method(RAMW, 3.
If noone sends 3rd argument, then the only choice is to remove the whole
"If () {}".I'm total newbie in this domain...So How can I find "callers" .
Quoted 8 lines
Quoted 4 lines
I have done that :
search for "RAMW" in all the dsdt.dsl file. I don't find any other, just the definition of the Method. Do I just remove the method ?I test to compile with Method (RAMW, 3, NotSerialized). And I have no more error.
What Do I have to do ? Remove this Method or put 3 arguments ?Ok I looked through the dsdt.dsl file. Juste above this method I found this other method :
Method (RAMR, 2, NotSerialized) { Acquire (MUTX, 0xFFFF) If (LGreater (Arg0, 0x7F)) { Store (Arg1, DAT3) } Store (Arg0, DAT2) Store (0xBA, CMCD) Store (0x64, Local1) While (Local1) { Decrement (Local1) Sleep (0x05) Store (CMCD, Local0) If (LEqual (Local0, Zero)) { Store (Zero, Local1) } } Store (DAT1, Local0) Release (MUTX) Return (Local0) }
Quoted 3 lines
Perhaps the error is really a bug in the dsdt : Arg2 must be Arg1!
How can I know ?
Ask AOpen technical support :)
Regards,
Alex.
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Thx
Guillaume
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html