Power Patches
M. Warner Losh
imp at bsdimp.com
Thu Jan 1 22:30:26 PST 2004
John Baldwin, Nate and I are putting the final touches on the
power/resource patches. Please try them out and let me know how well
they work for you.
http://people.freebsd.org/~imp/power.20040101.diff
These patches do the following:
1) reserves resources on child enumeration. This means
that we will stop allocating the same resource to multiple
devices. There may be issues on driver detach and
subsequent reattach, so be careful there.
2) Assign on a lazy basis, resources that a driver requests
(if it is possible). This means we can remove the kludges
from all the drivers that try to work around BIOSes not
assigning resources.
3) Power state management. We set devices to power state D0
before we try to probe/attach them (proerply preserving
the config space that the standards say we should
preserve). We set the device's power state to D0 with the
same restore on resume. Drivers that aren't attached
get set to state D3 (if it is supported) to conserve
power.
4) Some ACPI changes to improve power state transitions.
5) Misc cardbus changes to remove the kludges that were in
there related to the above cleanup. Plus minor changes
to when we turn on OE for 16-bit cards.
6) pci bridge tweaks necessary for #2 plus minor reformatting
to style(9).
I may have also broken 64 bit BAR support for the lazy evaluation.
You should try it if:
1) You are using hw.pci.unsupported_io=1. Turn it off and use
these patches. Let me know if it doesn't. Typically it
appears that this helps people hitting the double
allocation problem.
2) You have suspend/resume issues. This should make them suck
less if they are with a specific device (not ata).
3) You have hacks in drivers to turn the power on for your
laptop because FreeBSD didn't used to do that. While I've
not yet removed all the hacks from the tree, nearly all of
them should now be redundant.
Let me know how this works out...
Warner
More information about the freebsd-hackers
mailing list