int toshiba_hotkey(struct aml_node *node, int notify, void *arg) { struct acpitoshiba_softc *sc = arg; int event, ret; event = toshiba_read_events(sc); if (!event) return (0); switch (event) { case FN_KEY_BRIGHTNESS_UP: /* Increase brightness */ ret = toshiba_fn_key_brightness_up(sc); break; case FN_KEY_BRIGHTNESS_DOWN: /* Decrease brightness */ ret = toshiba_fn_key_brightness_down(sc); break; case FN_KEY_VIDEO_OUTPUT: /* Cycle through video outputs. */ ret = toshiba_fn_key_video_output(sc); break; default: return (1); } if (ret != HCI_SUCCESS) return (1); return (0); }
int toshiba_hotkey(struct aml_node *node, int notify, void *arg) { struct acpitoshiba_softc *sc = arg; int event, ret; event = toshiba_read_events(sc); if (!event) return (0); switch (event) { case FN_KEY_BRIGHTNESS_UP: /* Increase brightness */ ret = toshiba_fn_key_brightness_up(sc); break; 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_HIBERNATE: #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. */ ret = toshiba_fn_key_video_output(sc); break; default: break; } if ( ret != HCI_SUCCESS) return (1); return (0); }