294de6bbd6
ACPI Control Method Batteries have a _BIF and/or _BIX object which provide static properties of the battery. FreeBSD acpi_cmbat module supported _BIF object only, which was deprecated as of ACPI 4.0. _BIX is an extended version of _BIF defined in ACPI 4.0 or later. As of writing, _BIX has two revisions. One is in ACPI 4.0 (rev.0) and another is in ACPI 6.0 (rev.1). It seems that hardware vendors still stick to _BIF only or _BIX rev.0 + _BIF for the maximum compatibility. Microsoft requires _BIX rev.0 for Windows machines, so there are some laptop machines with _BIX rev.0 only. In this case, FreeBSD does not recognize the battery information. After this change, the acpi_cmbat module gets battery information from _BIX or _BIF object and internally uses _BIX rev.1 data structure as the primary information store in the kernel. ACPIIO_BATT_GET_BI[FX] returns an acpi_bi[fx] structure built by using information obtained from a _BIF or a _BIX object found on the system. The revision number field can be used to check which field is available. The acpiconf(8) utility will show additional information if _BIX is available. Although ABIs of ACPIIO_BATT_* were changed, the existing APIs for userland utilities are not changed and the backward-compatible ABIs are provided. This means that older versions of acpiconf(8) can also work with the new kernel. The (union acpi_battery_ioctl_arg) was padded to 256 byte long to avoid another ABI change in the future. A _BIX object with its revision number >1 will be treated as compatible with the rev.1 _BIX format. Reviewed by: takawata MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23728 |
||
---|---|---|
.. | ||
Osd | ||
acpi_acad.c | ||
acpi_battery.c | ||
acpi_bus_if.m | ||
acpi_button.c | ||
acpi_cmbat.c | ||
acpi_container.c | ||
acpi_cpu.c | ||
acpi_dock.c | ||
acpi_ec.c | ||
acpi_hpet.c | ||
acpi_hpet.h | ||
acpi_if.m | ||
acpi_isab.c | ||
acpi_lid.c | ||
acpi_package.c | ||
acpi_pci_link.c | ||
acpi_pci.c | ||
acpi_pcib_acpi.c | ||
acpi_pcib_pci.c | ||
acpi_pcib.c | ||
acpi_pcibvar.h | ||
acpi_pcivar.h | ||
acpi_perf.c | ||
acpi_powerres.c | ||
acpi_pxm.c | ||
acpi_quirk.c | ||
acpi_quirks | ||
acpi_resource.c | ||
acpi_smbat.c | ||
acpi_smbus.h | ||
acpi_thermal.c | ||
acpi_throttle.c | ||
acpi_timer.c | ||
acpi_video.c | ||
acpi.c | ||
acpiio.h | ||
acpivar.h |