This is an old revision of the document!


FreeBSD ACPI project

The acpi driver provides support for the Intel/Microsoft/Compaq/Toshiba ACPI standard. This support includes platform hardware discovery (superseding the PnP and PCI BIOS), as well as power management (superseding APM) and other features. ACPI core support is provided by the ACPI-CA reference implementation from Intel.

Information on using and debugging ACPI can be found in the man page.

Task Responsible Last updated Priority Notes
Save/Restore PCI capabilities lists and MSI config space Nate Lawson August 3, 2006 In progress
Investigate disabling the LAPIC timer when using ACPI C2-3 states. Otherwise, the system hangs and no timer interrupts occur while idle. August 3, 2006 Not done
acpi_cpu — Finish work on CPU driver
_CST re-evaluation Nate Lawson December 4, 2004 Not done Needs testing/debugging
Fix shared user of a P_BLK (refcount) Nate Lawson December 4, 2004 Not done
Disable acpi_cpu taking over idling if only C1 available Nate Lawson December 4, 2004 Not done I still want to keep acpi_cpu in the loop on SMP systems so we should leave this as-is for now
eject methods — implement eject and dynamic reprobing of acpi namespace Nate Lawson December 4, 2004 Needs testing
Task Responsible Last updated Priority Notes
Hotkey/backlight/sound generic driver – Add a driver that generalizes the various device-specific ways of adjusting backlight, sound volume, hotkey support, etc. It should provide generic sysctls for these and attach to the hw-specific drivers (acpi_video, acpi_asus, acpi_toshiba, etc.) Not done
Task Responsible Last updated Priority Notes
Implement X suspend/resume notification. Currently, the X server on FreeBSD is not notified of a suspend. We explicitly switch to a VTY on syscons before resume to get the server to save and then restore all the registers. This works for many systems but not if the display is left in less initialized at resume than the VTY switch code can handle. There is an interface (in the X server bsd_apm.c) for doing ioctls to find out about the suspend. First, check if this file is built on FreeBSD as it appears to only be built on NetBSD. Then implement the ioctls in both apm and acpi (on the apm compat device). Here is a patch to help the X file compile. For acpi, we do not want a user process dying to hold up the suspend process so implement the notification with a timeout. That is, if the kernel generates a APM_STANDBY_REQ notification and it doesn't receive a APM_IOC_STANDBY within say 5 seconds, continue the suspend process. This is needed for standby when X is not running, for instance, or when an emergency suspend is generated by a battery going critical. Not done
Examine the two video resume hacks (int 0x10, lcall 0xc000). Linux has begun to test calling the “lcall” VESA reset after PCI devices (including the video card) have been fully resumed, including power state set to PS0. This works for many Radeon cards but fails for others. We could implement this in vm86 calls from a proper video driver resume method. Investigate integrate the techniques used by the Radeontool port in video resume. Not done
ACPI-CA should really enable GPEs before calling \_WAK. Currently it does the opposite. This does not match the ACPI spec where \_WAK should be called after the system is up and running (\_BFS is what should be called as soon as possible after waking.) Not done
Potential ASL bug: We may need to work around some systems having the S3 object listed under the LPC bus device (PNP0A03) instead of root (\). This is ACPI-CA's responsibility. Not done
  • acpi.1576620774.txt.gz
  • Last modified: 2019/12/17 22:12
  • by SergioCarlavilla