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