Hi,
this diff enables suspend and hibernate through fn keys in Toshiba laptops.
Comments ? Ok ?
 Cheers
  Giovanni
Index: acpitoshiba.c
===================================================================
RCS file: /var/cvs/src/sys/dev/acpi/acpitoshiba.c,v
retrieving revision 1.5
diff -u -p -r1.5 acpitoshiba.c
--- acpitoshiba.c       8 Jun 2016 13:34:30 -0000       1.5
+++ acpitoshiba.c       15 Jun 2016 21:43:30 -0000
@@ -78,6 +78,8 @@
 #define        HCI_SUCCESS                     0
 
 /* Toshiba fn_keys events */
+#define        FN_KEY_SUSPEND                  0x01BD
+#define        FN_KEY_HYBERNATE                0x01BE
 #define        FN_KEY_VIDEO_OUTPUT             0x01BF
 #define        FN_KEY_BRIGHTNESS_DOWN          0x01C0
 #define        FN_KEY_BRIGHTNESS_UP            0x01C1
@@ -393,6 +395,24 @@ toshiba_hotkey(struct aml_node *node, in
        case FN_KEY_BRIGHTNESS_DOWN:
                /* Decrease brightness */
                ret = toshiba_fn_key_brightness_down(sc);
+               break;
+       case FN_KEY_SUSPEND:
+#ifndef SMALL_KERNEL
+               if (acpi_record_event(sc->sc_acpi, APM_USER_SUSPEND_REQ)) {
+                       acpi_addtask(sc->sc_acpi, acpi_sleep_task,
+                           sc->sc_acpi, ACPI_STATE_S3);
+                       ret = HCI_SUCCESS;
+               }
+#endif
+               break;
+       case FN_KEY_HYBERNATE:
+#if defined(HIBERNATE) && !defined(SMALL_KERNEL)
+               if (acpi_record_event(sc->sc_acpi, APM_USER_HIBERNATE_REQ)) {
+                       acpi_addtask(sc->sc_acpi, acpi_sleep_task,
+                           sc->sc_acpi, ACPI_STATE_S4);
+                       ret = HCI_SUCCESS;
+               }
+#endif
                break;
        case FN_KEY_VIDEO_OUTPUT:
                /* Cycle through video outputs. */

Reply via email to