S3 state handled in BIOS?
Alexandre "Sunny" Kovalenko
Alex.Kovalenko at verizon.net
Mon May 23 21:35:20 GMT 2005
On Mon, 2005-05-23 at 10:35 -0700, Nate Lawson wrote:
> 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.
>
It does not seem to have S1 entry in ASL (see below). I will play with
it a little bit more and see whether creating S1 node with the set of
flags from \_S3 results in some logical behavior. Is it sufficient to
duplicate an entry, or do I need to add it elsewhere?
Name (\_S0, Package (0x04)
{
0x00,
0x00,
0x00,
0x00
})
Name (\_S3, Package (0x04)
{
0x04,
0x00,
0x00,
0x00
})
Name (\_S4, Package (0x04)
{
0x02,
0x00,
0x00,
0x00
})
Name (\_S5, Package (0x04)
{
0x02,
0x00,
0x00,
0x00
})
Thank you for your help,
--
Alexandre "Sunny" Kovalenko (Олександр Коваленко)
More information about the freebsd-acpi
mailing list