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