Add a devd notification for closing/opening the lid on PowerBooks and iBooks.

Approved by:	nwhitehorn (mentor)
This commit is contained in:
Justin Hibbits 2011-12-05 00:12:10 +00:00
parent 54ad8a62ed
commit 6431ede397
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=228270
3 changed files with 25 additions and 0 deletions

View File

@ -11,6 +11,16 @@ notify 0 {
};
# Keyboard power key
notify 0 {
match "system" "PMU";
match "subsystem" "lid";
match "type" "close";
match "notify" "0x0";
action "shutdown -p now";
};
# The next blocks enable volume hotkeys that can be found on Apple laptops
notify 0 {
match "system" "PMU";

View File

@ -701,6 +701,20 @@ pmu_intr(void *arg)
adb_receive_raw_packet(sc->adb_bus,resp[1],resp[2],
len - 3,&resp[3]);
}
if (resp[1] & PMU_INT_ENVIRONMENT) {
// if the lid was just closed, notify devd.
if ((resp[2] & PMU_ENV_LID_CLOSED) && (!sc->lid_closed)) {
sc->lid_closed = 1;
if (devctl_process_running())
devctl_notify("PMU", "lid", "close", NULL);
}
else if (!(resp[2] & PMU_ENV_LID_CLOSED) && (sc->lid_closed)) {
// if the lid was just opened, notify devd.
if (devctl_process_running())
devctl_notify("PMU", "lid", "open", NULL);
sc->lid_closed = 0;
}
}
}
static u_int

View File

@ -160,6 +160,7 @@ struct pmu_softc {
volatile int sc_autopoll;
int sc_batteries;
struct cdev *sc_leddev;
int lid_closed;
};
struct pmu_battstate {