HP Compaq nc6320 Suspend / Resume (changes in behaviour)
Hi,
I just updated my bios to HP's latest, and have recently been upgraded to Ubuntu Gutsy kernel version:
Linux version 2.6.22-1-generic (buildd@palmer) (gcc version 4.1.3 20070423 (prerelease) (Ubuntu 4.1.2-3ubuntu3)) #1 SMP Mon Apr 30 10:49:22 GMT 2007
For the first time ever, suspend to ram works!
Unfortunately, hibernation has broken. This happened somewhere between Feisty's 2.6.20 kernel and the one I'm using now. (Although it could have been an update released in Feisty which broke things).
I can hibernate, but after a short while being booted back up (and perhaps accessing some ACPI related thing, e.g. cpu scaling, unplugging AC etc.. it will crash (and due to being in X11 at the time, I've got no useful debug output to go on).
Does anyone know specifically if something changed to fix suspend, (with SATA drives no less!), or anything which may have broken hibernate. (Which was broken before I updated from bios F.06 to the latest today)
After resume from suspend, I see:
dmesg | grep ACPI | grep Error
[ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT
Is this anything to worry about - should I post a dsdt for the new bios?
Kind regards,
Signature · 10 lines
Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!)
Hi,
Quoted 10 lines · Peter Clifton
Hi,
I just updated my bios to HP's latest, and have recently been upgraded to Ubuntu Gutsy kernel version:
Linux version 2.6.22-1-generic (buildd@palmer) (gcc version 4.1.3 20070423 (prerelease) (Ubuntu 4.1.2-3ubuntu3)) #1 SMP Mon Apr 30 10:49:22 GMT 2007
For the first time ever, suspend to ram works!
That's a good news.
Quoted 4 lines
Unfortunately, hibernation has broken. This happened somewhere between Feisty's 2.6.20 kernel and the one I'm using now. (Although it could have been an update released in Feisty which broke things).
Quoted 8 lines
I can hibernate, but after a short while being booted back up (and perhaps accessing some ACPI related thing, e.g. cpu scaling, unplugging AC etc.. it will crash (and due to being in X11 at the time, I've got no useful debug output to go on).
Does anyone know specifically if something changed to fix suspend, (with SATA drives no less!), or anything which may have broken hibernate. (Which was broken before I updated from bios F.06 to the latest today)
Well, threre's a couple of such things. You may try the kernel.org kernel 2.6.22-rc2 with the hibernation and suspend patchset available from
http://www.sisk.pl/kernel/hibernation_and_suspend/2.6.22-rc2/patches .
Quoted 9 lines
After resume from suspend, I see:
dmesg | grep ACPI | grep Error
[ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMITIs this anything to worry about - should I post a dsdt for the new bios?
This means we are unable to set the IDE controller transfer timings after the resume. I don't know how serious this is in practice, though.
Greetings,
Rafael
Quoted 6 lines · Rafael J. Wysocki
Hi,
Quoted 3 lines · Peter Clifton
Hi,
I just updated my bios to HP's latest, and have recently been
upgraded
Quoted 5 lines
Quoted 5 lines
to Ubuntu Gutsy kernel version:
Linux version 2.6.22-1-generic (buildd@palmer) (gcc version 4.1.3 20070423 (prerelease) (Ubuntu 4.1.2-3ubuntu3)) #1 SMP Mon Apr 30 10:49:22 GMT 2007
[snip]
Quoted 1 line
Well, threre's a couple of such things. You may try the kernel.org
kernel
Quoted 2 lines
2.6.22-rc2 with the hibernation and suspend patchset available from
http://www.sisk.pl/kernel/hibernation_and_suspend/2.6.22-rc2/patches .
I wonder if those are included in Ubuntu's kernel (I'm being dumb today, but I couldn't work out if the debian build was adding patches or not, nor which exact version they started from.
(The source filename is linux-source-2.6.22_2.6.22-5.11.tar.gz)
Just FYI, the link you posted has a file with funny permissions on it:
Gives me a 403 error.
Quoted 4 lines
Quoted 4 lines
After resume from suspend, I see:
dmesg | grep ACPI | grep Error
[ 4763.428000] ACPI Error (psparse-0537): Method parse/execution
failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT
Quoted 1 line
Quoted 1 line
[ 4763.428000] ACPI Error (psparse-0537): Method parse/execution
failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT
Quoted 1 line
Quoted 1 line
[ 6417.528000] ACPI Error (psparse-0537): Method parse/execution
failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT
Quoted 1 line
Quoted 1 line
[ 6417.528000] ACPI Error (psparse-0537): Method parse/execution
failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT
Quoted 2 lines
Quoted 2 lines
Is this anything to worry about - should I post a dsdt for the new
bios?
Looking at the ACPI 3.0 spec:
_STM Optional control method that sets the IDE controller’s transfer timing sttings. IDE-only
(IE. shouldn't be called for an SATA drive). That may mean its for my CD writer (which shows up as hda). This is in the first SSDT, "HPQSAT" which I've attached the dissasembly of.
Quoted 1 line
This means we are unable to set the IDE controller transfer timings
after the
Quoted 1 line
resume. I don't know how serious this is in practice, though.
iasl decompiles and recompiles the dsdt and all ssdt ok (after minor tweaking due to decompile discrepancies).
The remaining warnings only relate to _BCQ (A Microsoft induced typo for _BQC?)
And, unreachable code in the _STA method of the "ACEL" device. (They have blanked that function off with a Return (0x00). Thats a shame - if it means what I think (that the acceleration sensor doesn't work).
Many places in the ACEL device code check If (_STA ()) around big blocks of code, so presumably the AML code for it is not doing a great deal. (I wounder how Windows uses it - a custom driver perhaps?)
Thanks for the great work on suspend / resume (and of course ACPI support in general) everyone!
Peter
/*
* Intel ACPI Component Architecture
* AML Disassembler version 20061109
*
* Disassembly of ssdt1.aml, Tue May 22 20:59:05 2007 *
*
* Original Table Header:
* Signature "SSDT"
* Length 0x00000326 (806)
* Revision 0x01
* OEM ID "HP "
* OEM Table ID "HPQSAT"
* OEM Revision 0x00000001 (1)
* Creator ID "MSFT"
* Creator Revision 0x0100000E (16777230)
*/
DefinitionBlock ("ssdt1.aml", "SSDT", 1, "HP ", "HPQSAT", 0x00000001)
{
External (C0EC, MethodObj) // 6 Arguments
External (C0E8, MethodObj) // 5 Arguments
External (C0E6, MethodObj) // 2 Arguments
External (C0E7, MethodObj) // 1 Argument?
External (C0E4, MethodObj) // 2 Arguments
External (C240)
External (\_SB_.C14A)
External (\_SB_.C248, MethodObj)
External (\_SB_.C241, MethodObj) // 4 Arguments
External (\_SB_.C002, DeviceObj)
External (\_SB_.C002.C0DC, DeviceObj)
Scope (\_SB.C002)
{
Device (C351)
{
Name (_ADR, 0x001F0002)
Device (C0F6)
{
Name (_ADR, 0xFFFF)
Name (C352, Package (0x06)
{
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
})
Method (_SDD, 1, Serialized)
{
If (LEqual (SizeOf (Arg0), 0x0200))
{
Store (0x00, Local0)
Store (Buffer (Multiply (SizeOf (C240), 0x02)) {}, Local1)
While (LLess (Local0, SizeOf (C240)))
{
Store (DerefOf (Index (C240, Local0)), Local2)
Multiply (Local2, 0x02, Local2)
Multiply (Local0, 0x02, Local3)
Store (DerefOf (Index (Arg0, Local2)), Index (Local1, Local3))
Store (DerefOf (Index (Arg0, Add (Local2, 0x01))), Index (
Local1, Add (Local3, 0x01)))
Increment (Local0)
}
\_SB.C241 (0x00010000, 0x00, Local1, C352)
}
}
Method (_GTF, 0, NotSerialized)
{
Return (\_SB.C248(C352, 0x00))
}
}
}
}
Scope (\_SB.C002.C0DC)
{
Name (_ADR, 0x001F0001)
Name (C353, 0x01)
Device (C349)
{
Name (_ADR, 0x00)
Name (C34A, Package (0x05)
{
0x00,
0x00,
0x00,
0x00,
0x00
})
Method (_GTM, 0, NotSerialized)
{
Store (Buffer (0x14)
{
/* 0000 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* 0008 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
/* 0010 */ 0xFF, 0xFF, 0xFF, 0xFF
}, Local0)
CreateDWordField (Local0, 0x00, C34B)
CreateDWordField (Local0, 0x04, C34C)
CreateDWordField (Local0, 0x08, C354)
CreateDWordField (Local0, 0x0C, C355)
CreateDWordField (Local0, 0x10, C34D)
Store (C0E4 (0x00, 0x00), C34B)
Store (C0E7 (0x00), C34D)
If (And (C34D, 0x01))
{
Store (C0E6 (0x00, 0x00), C34C)
}
Else
{
Store (C34B, C34C)
}
If (LOr (LEqual (And (\_SB.C14A, 0x0F), 0x07), LEqual (And (
C353, 0x01), 0x00)))
{
Store (0x78, C354)
Store (0x11, C355)
Or (C34D, 0x0C, C34D)
}
Else
{
Store (C0E4 (0x00, 0x01), C354)
If (And (C34D, 0x04))
{
Store (C0E6 (0x00, 0x01), C355)
}
Else
{
Store (C354, C355)
}
}
Return (Local0)
}
Method (_STM, 3, NotSerialized)
{
CreateDWordField (Arg0, 0x00, C34B)
CreateDWordField (Arg0, 0x04, C34C)
CreateDWordField (Arg0, 0x08, C354)
CreateDWordField (Arg0, 0x0C, C355)
CreateDWordField (Arg0, 0x10, C34D)
If (LEqual (And (\_SB.C14A, 0x0F), 0x01))
{
Or (C353, 0x01, C353)
If (LEqual (SizeOf (Arg1), 0x0200))
{
Store (0x00, Local0)
Store (Buffer (Multiply (SizeOf (C240), 0x02)) {}, Local1)
While (LLess (Local0, SizeOf (C240)))
{
Store (DerefOf (Index (C240, Local0)), Local2)
Multiply (Local2, 0x02, Local2)
Multiply (Local0, 0x02, Local3)
Store (DerefOf (Index (Arg1, Local2)), Index (Local1, Local3))
Store (DerefOf (Index (Arg1, Add (Local2, 0x01))), Index (
Local1, Add (Local3, 0x01)))
Increment (Local0)
}
Store (C0E8 (0x00, 0x00, C34B, C34D, Local1), Local2)
Store (C0EC (0x00, 0x00, C34C, C34D, Local1, Local3), \_SB.C241 (Local2, Local3, Local1, C34A))
}
}
}
Device (C34E)
{
Name (_ADR, 0x00)
Method (_GTF, 0, NotSerialized)
{
Return (\_SB.C248 (C34A, 0x00))
}
}
}
}
}Quoted 25 lines · Peter Clifton
Quoted 6 lines · Rafael J. Wysocki
Hi,
Quoted 3 lines · Peter Clifton
Hi,
I just updated my bios to HP's latest, and have recently been
upgraded
Quoted 5 lines
Quoted 5 lines
to Ubuntu Gutsy kernel version:
Linux version 2.6.22-1-generic (buildd@palmer) (gcc version 4.1.3 20070423 (prerelease) (Ubuntu 4.1.2-3ubuntu3)) #1 SMP Mon Apr 30 10:49:22 GMT 2007
[snip]
Quoted 1 line
Well, threre's a couple of such things. You may try the kernel.org
kernel
Quoted 2 lines
2.6.22-rc2 with the hibernation and suspend patchset available from
http://www.sisk.pl/kernel/hibernation_and_suspend/2.6.22-rc2/patches .I wonder if those are included in Ubuntu's kernel (I'm being dumb today, but I couldn't work out if the debian build was adding patches or not, nor which exact version they started from.
Quoted 7 lines
(The source filename is linux-source-2.6.22_2.6.22-5.11.tar.gz)
Just FYI, the link you posted has a file with funny permissions on it:
Gives me a 403 error.
Fixed now, sorry for the inconvenience.
Greetings,
Rafael
Quoted 26 lines · Peter Clifton
Hi,
I just updated my bios to HP's latest, and have recently been upgraded to Ubuntu Gutsy kernel version:
Linux version 2.6.22-1-generic (buildd@palmer) (gcc version 4.1.3 20070423 (prerelease) (Ubuntu 4.1.2-3ubuntu3)) #1 SMP Mon Apr 30 10:49:22 GMT 2007
For the first time ever, suspend to ram works!
Unfortunately, hibernation has broken. This happened somewhere between Feisty's 2.6.20 kernel and the one I'm using now. (Although it could have been an update released in Feisty which broke things).
I can hibernate, but after a short while being booted back up (and perhaps accessing some ACPI related thing, e.g. cpu scaling, unplugging AC etc.. it will crash (and due to being in X11 at the time, I've got no useful debug output to go on).
Does anyone know specifically if something changed to fix suspend, (with SATA drives no less!), or anything which may have broken hibernate. (Which was broken before I updated from bios F.06 to the latest today)
After resume from suspend, I see:
Quoted 7 lines
dmesg | grep ACPI | grep Error
[ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMITIs this anything to worry about - should I post a dsdt for the new bios?
STR works (also the disk(s)?)?
This is strange, bug:
http://bugzilla.kernel.org/show_bug.cgi?id=8456
is about broken SATA disks after STR.
If you think this is related to bug #8456, you might want to add yourself there or open a new bug if you think it's not.
You might want to add [email protected] (Tejun Heo), who did the latest ACPI SATA changes. Best you also add acpidump output and also CC me, pls.
Thomas
Quoted 10 lines · Thomas Renninger
Quoted 8 lines
dmesg | grep ACPI | grep Error
[ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 4763.428000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C241] (Node df94c9dc), AE_AML_PACKAGE_LIMIT [ 6417.528000] ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.C002.C0DC.C349._STM] (Node df94fba8), AE_AML_PACKAGE_LIMITIs this anything to worry about - should I post a dsdt for the new bios?
STR works (also the disk(s)?)?
STR works, and resume - works fine afterwards. STD works, resumes, but crashes some minutes afterwards.
Quoted 10 lines
This is strange, bug:
http://bugzilla.kernel.org/show_bug.cgi?id=8456
is about broken SATA disks after STR.If you think this is related to bug #8456, you might want to add yourself there or open a new bug if you think it's not.
You might want to add [email protected] (Tejun Heo), who did the latest ACPI SATA changes. Best you also add acpidump output and also CC me, pls.
I'll open a new bug (or bugs, keeping the STD issue separate) some time next week when I'll have a little more time to play with debugging things.
Thanks for your reply,
Regards.
Signature · 10 lines
Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!)