S3 state handled in BIOS?

Nate Lawson nate at root.org
Mon May 23 17:35:47 GMT 2005


Bruno Ducrot wrote:
> On Sun, May 22, 2005 at 09:30:42PM -0400, Alexandre Sunny Kovalenko wrote:
> 
>>Good people,
>>
>>after much pocking around my laptop (Averatec
>>3150H), /usr/src/sys/i386/acpica/acpi_wakeup.c
>>and /usr/src/sys/contrib/dev/acpica/hwsleep.c, I came to conclusion that
>>S3 state in my case causes BIOS to suspend machine at the point when
>>SLP_TYP and SLP_EN are set and resume it from that same point,
>>completely ignoring wakeup vector.
>>
>>This would cause FreeBSD to hit infinite loop in acpi_sleep_machdep
>>(acpi_wakeup.c) and never come back. Replacing that loop with
>>AcpiOsSleep(5000) lets system resume properly.
>>
>>This kind of sleep (pseudo S3?) about doubles battery life, which is not
>>much to write home about, but matches what Windows does on the same
>>hardware, so, I guess, it is best I am going to get.
>>
>>Question that I have to the list is whether somebody who knows ACPI
>>thinks that it is common enough situation to warrant tunable along the
>>lines of 'hw.acpi.s3bios', which would eliminate infinite loop if set?
>>
>>I have unconditionally eliminated the loop for now and have been testing
>>it here for awhile without any bad side effects.
>>
>>If your system appears to hang after resume from S3 while turning power
>>on, you might want to try attached very simplistic patch.
>>
> 
> 
> I think your machine actually perform S1, not S3, likely because the
> values associated to _S3 (a package in the asl) are for _S1.


In that case, it would be interesting to see the acpidump -t -d and 
compare values for the _S1 and _S3 nodes.

-- 
Nate


More information about the freebsd-acpi mailing list