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. */