Is hw.pci.do_powerstate expected to be casually tuned?

Hiroharu Tamaru tamaru at myn.rcast.u-tokyo.ac.jp
Thu Apr 6 14:31:14 UTC 2006


Hello,

# Nate, Warner, you are CCed since your names are on the commit log...

I have a CASIO cassiopeia fiva (206VL) notebook.
It is one of the very rare (isn't it?) machines that support S4BIOS.
It hibernates (S4) very well on 5.4-RELEASE,
but I found out that 6.1-BETA4 can no longer hibernate.

I did a binary search and confirmed it to be due to this commit:

$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.194 2004/12/02 08:07:12 njl Exp $
$FreeBSD: src/sys/dev/pci/pci.c,v     1.269 2004/12/02 08:07:12 njl Exp $

As its log suggest, 
sysctl hw.pci.do_powerstate=0
solved the issue successfully, and now I can hibernate on
post-(1.194,1.269) kernel (will try 6.1-BETA4 again shortly too).
Thank you for providing a good knob.

Now the question:
Is this sysctl expected to be tuned by a normal user?
or should something be added to the sources, so that 
the kernel can automatically recognize it?
If latter, what should I provide you to make it happen?
# I ask because I see a debug.* knob as well, and it says in the
# source that it should go away when the tests are done.


Watching this machine preparing for hibernation, I think the problem
here is that the HDD is powered off by the kernel, and thus the BIOS,
when passed control, is unabled to write its data to the disk, and
locks up.  A complete cold power cycle is necessary to recover from
this lockup.

Thanks.
-- 
Hiroharu Tamaru


More information about the freebsd-acpi mailing list