diff options
author | jhibbits <jhibbits@FreeBSD.org> | 2014-11-20 03:23:33 +0000 |
---|---|---|
committer | jhibbits <jhibbits@FreeBSD.org> | 2014-11-20 03:23:33 +0000 |
commit | a8f71d6bc272a861e737aba162feb2ef321dbcb2 (patch) | |
tree | 761e8d145ceebe79f3453840f515dcbb802dee4d /sys/powerpc/powermac | |
parent | d92ed3c4d85e661bd4d4c9a48c1b4d7137c09490 (diff) | |
download | FreeBSD-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.c | 8 | ||||
-rw-r--r-- | sys/powerpc/powermac/pmuvar.h | 1 |
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 { |