summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/powermac
diff options
context:
space:
mode:
authorjhibbits <jhibbits@FreeBSD.org>2014-11-20 03:23:33 +0000
committerjhibbits <jhibbits@FreeBSD.org>2014-11-20 03:23:33 +0000
commita8f71d6bc272a861e737aba162feb2ef321dbcb2 (patch)
tree761e8d145ceebe79f3453840f515dcbb802dee4d /sys/powerpc/powermac
parentd92ed3c4d85e661bd4d4c9a48c1b4d7137c09490 (diff)
downloadFreeBSD-src-a8f71d6bc272a861e737aba162feb2ef321dbcb2.zip
FreeBSD-src-a8f71d6bc272a861e737aba162feb2ef321dbcb2.tar.gz
Add support for Power Button PMU events on non-ADB macs, such as aluminum
PowerBooks. MFC after: 2 weeks Relnotes: yes
Diffstat (limited to 'sys/powerpc/powermac')
-rw-r--r--sys/powerpc/powermac/pmu.c8
-rw-r--r--sys/powerpc/powermac/pmuvar.h1
2 files changed, 5 insertions, 4 deletions
diff --git a/sys/powerpc/powermac/pmu.c b/sys/powerpc/powermac/pmu.c
index 938ca74..9df83cb 100644
--- a/sys/powerpc/powermac/pmu.c
+++ b/sys/powerpc/powermac/pmu.c
@@ -734,15 +734,15 @@ pmu_intr(void *arg)
/* 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);
+ 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;
+ devctl_notify("PMU", "lid", "open", NULL);
}
+ if (resp[2] & PMU_ENV_POWER)
+ devctl_notify("PMU", "Button", "pressed", NULL);
}
}
diff --git a/sys/powerpc/powermac/pmuvar.h b/sys/powerpc/powermac/pmuvar.h
index 98209f8..21c5616 100644
--- a/sys/powerpc/powermac/pmuvar.h
+++ b/sys/powerpc/powermac/pmuvar.h
@@ -99,6 +99,7 @@
/* Bits from PMU_GET_LID_STATE or PMU_INT_ENVIRONMENT on core99 */
#define PMU_ENV_LID_CLOSED 0x01 /* The lid is closed */
+#define PMU_ENV_POWER 0x08 /* Power Button pressed */
/* PMU PMU_POWER_EVENTS commands */
enum {
OpenPOWER on IntegriCloud