summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_lid.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/acpica/acpi_lid.c')
-rw-r--r--sys/dev/acpica/acpi_lid.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi_lid.c b/sys/dev/acpica/acpi_lid.c
index bd186a5..f83b2de 100644
--- a/sys/dev/acpica/acpi_lid.c
+++ b/sys/dev/acpica/acpi_lid.c
@@ -55,6 +55,8 @@ struct acpi_lid_softc {
static int acpi_lid_probe(device_t dev);
static int acpi_lid_attach(device_t dev);
+static int acpi_lid_suspend(device_t dev);
+static int acpi_lid_resume(device_t dev);
static void acpi_lid_notify_status_changed(void *arg);
static void acpi_lid_notify_handler(ACPI_HANDLE h,UINT32 notify, void *context);
@@ -62,6 +64,8 @@ static device_method_t acpi_lid_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, acpi_lid_probe),
DEVMETHOD(device_attach, acpi_lid_attach),
+ DEVMETHOD(device_suspend, acpi_lid_suspend),
+ DEVMETHOD(device_resume, acpi_lid_resume),
{0, 0}
};
@@ -102,9 +106,26 @@ acpi_lid_attach(device_t dev)
* Install notification handler
*/
AcpiInstallNotifyHandler(sc->lid_handle, ACPI_DEVICE_NOTIFY, acpi_lid_notify_handler, sc);
+ acpi_device_enable_wake_capability(sc->lid_handle, 1);
return_VALUE(0);
}
+static int
+acpi_lid_suspend(device_t dev)
+{
+ struct acpi_lid_softc *sc;
+
+ sc = device_get_softc(dev);
+ acpi_device_enable_wake_event(sc->lid_handle);
+ return (0);
+}
+
+static int
+acpi_lid_resume(device_t dev)
+{
+ return (0);
+}
+
static void
acpi_lid_notify_status_changed(void *arg)
{
OpenPOWER on IntegriCloud