diff options
author | msmith <msmith@FreeBSD.org> | 2001-07-07 01:46:40 +0000 |
---|---|---|
committer | msmith <msmith@FreeBSD.org> | 2001-07-07 01:46:40 +0000 |
commit | 99fb474bb87196a69d346c1dedaadca6cb238c01 (patch) | |
tree | accd62209041d7fb33895db6d89915506f76554a /sys/dev | |
parent | e772f1b60ee96b030468f7c2b75d2173d54c09e0 (diff) | |
download | FreeBSD-src-99fb474bb87196a69d346c1dedaadca6cb238c01.zip FreeBSD-src-99fb474bb87196a69d346c1dedaadca6cb238c01.tar.gz |
Add support for system power profiles; select "performance" when AC power
is available and "economy" when it is not.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/acpica/acpi_acad.c | 3 | ||||
-rw-r--r-- | sys/dev/acpica/acpivar.h | 17 |
2 files changed, 18 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi_acad.c b/sys/dev/acpica/acpi_acad.c index 38fd7c2..85cd666 100644 --- a/sys/dev/acpica/acpi_acad.c +++ b/sys/dev/acpica/acpi_acad.c @@ -78,6 +78,9 @@ acpi_acad_get_status(void *context) if (bootverbose) { device_printf(dev,"%s\n",(sc->status) ? "On Line" : "Off Line"); } + + /* set system power profile based on AC adapter status */ + powerprofile_set_state(sc->status ? POWERPROFILE_PERFORMANCE : POWERPROFILE_ECONOMY); } static void diff --git a/sys/dev/acpica/acpivar.h b/sys/dev/acpica/acpivar.h index f529a4c..c2bf1af 100644 --- a/sys/dev/acpica/acpivar.h +++ b/sys/dev/acpica/acpivar.h @@ -267,11 +267,24 @@ extern int acpi_avoid(ACPI_HANDLE handle); extern int acpi_disabled(char *subsys); /* - * Battery Abstruction and Generalized Power Management interface. + * Battery Abstruction. */ struct acpi_battinfo; extern int acpi_battery_register(int, int); -extern int acpi_acad_get_acline(void); extern int acpi_cmbat_get_battinfo(int, struct acpi_battinfo *); +/* + * System power API. + * + * XXX should this be further generalised? + * + */ +#define POWERPROFILE_PERFORMANCE 0 +#define POWERPROFILE_ECONOMY 1 + +extern int powerprofile_get_state(void); +extern void powerprofile_set_state(int state); + +typedef void (*powerprofile_change_hook)(void *); +EVENTHANDLER_DECLARE(powerprofile_change, powerprofile_change_hook); |