acpi battery rework patch
Nate Lawson
nate at root.org
Fri Jul 22 19:25:21 GMT 2005
I have completed a rework of the battery subsystem and would like
testing of the patch. I'd like this to go into 6.0. It should have no
effect for people with working batteries and fixes some bugs for those
who don't. It also makes it possible to import support for smart
batteries (not in this patch).
API changes:
apm compatibility device: no change
sysctl: no change
kernel function call: API reduced.
ioctl: API reduced.
kernel function access:
Access individual batteries via devclass_find("battery"). Methods are
ACPI_BATT_GET_STATUS (for _BST-formatted data) and ACPI_BATT_GET_INFO
(for _BIF-formatted data). The helper function
acpi_battery_get_battinfo() has been changed to take a device_t instead
of unit # argument. If dev is NULL, this signifies all batteries.
ioctl access:
The ACPIIO_BATT_GET_TYPE and ACPIIO_BATT_GET_BATTDESC ioctls have been
removed. Since there is no mapping between "virtual" unit and actual
unit, just specify the unit directly and skip the old translation steps.
For instance, in the future if you have two smart batteries and two
control-method batteries, they'll be battery0-3.
Patch can be found here:
http://root.org/~nate/freebsd/batt-rework.diff.gz
Please test to be sure your battery status works as usual, along with
any apps. Since most apps (xbatt, gnome, etc.) use the apm compat
layer, they should work as before with no recompilation needed.
--
Nate
More information about the freebsd-acpi
mailing list