Module Name: src Committed By: riastradh Date: Sat May 29 16:49:57 UTC 2021
Modified Files: src/sys/dev/acpi: thinkpad_acpi.c src/sys/sys: power.h Log Message: Add some more Thinkpad hotkeys. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/sys/dev/acpi/thinkpad_acpi.c cvs rdiff -u -r1.21 -r1.22 src/sys/sys/power.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/thinkpad_acpi.c diff -u src/sys/dev/acpi/thinkpad_acpi.c:1.51 src/sys/dev/acpi/thinkpad_acpi.c:1.52 --- src/sys/dev/acpi/thinkpad_acpi.c:1.51 Sat May 29 16:49:49 2021 +++ src/sys/dev/acpi/thinkpad_acpi.c Sat May 29 16:49:57 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: thinkpad_acpi.c,v 1.51 2021/05/29 16:49:49 riastradh Exp $ */ +/* $NetBSD: thinkpad_acpi.c,v 1.52 2021/05/29 16:49:57 riastradh Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.51 2021/05/29 16:49:49 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.52 2021/05/29 16:49:57 riastradh Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -76,7 +76,11 @@ typedef struct thinkpad_softc { #define TP_PSW_VOLUME_UP 17 #define TP_PSW_VOLUME_DOWN 18 #define TP_PSW_VOLUME_MUTE 19 -#define TP_PSW_LAST 20 +#define TP_PSW_STAR_BUTTON 20 +#define TP_PSW_SCISSORS_BUTTON 21 +#define TP_PSW_BLUETOOTH_BUTTON 22 +#define TP_PSW_KEYBOARD_BUTTON 23 +#define TP_PSW_LAST 24 struct sysmon_pswitch sc_smpsw[TP_PSW_LAST]; bool sc_smpsw_valid; @@ -108,6 +112,10 @@ typedef struct thinkpad_softc { #define THINKPAD_NOTIFY_VolumeDown 0x016 /* XXX: Not seen on T61 */ #define THINKPAD_NOTIFY_VolumeMute 0x017 /* XXX: Not seen on T61 */ #define THINKPAD_NOTIFY_ThinkVantage 0x018 +#define THINKPAD_NOTIFY_Star 0x311 +#define THINKPAD_NOTIFY_Scissors 0x312 +#define THINKPAD_NOTIFY_Bluetooth 0x314 +#define THINKPAD_NOTIFY_Keyboard 0x315 #define THINKPAD_CMOS_BRIGHTNESS_UP 0x04 #define THINKPAD_CMOS_BRIGHTNESS_DOWN 0x05 @@ -295,6 +303,10 @@ thinkpad_attach(device_t parent, device_ psw[TP_PSW_VOLUME_UP].smpsw_name = PSWITCH_HK_VOLUME_UP; psw[TP_PSW_VOLUME_DOWN].smpsw_name = PSWITCH_HK_VOLUME_DOWN; psw[TP_PSW_VOLUME_MUTE].smpsw_name = PSWITCH_HK_VOLUME_MUTE; + psw[TP_PSW_STAR_BUTTON].smpsw_name = PSWITCH_HK_STAR_BUTTON; + psw[TP_PSW_SCISSORS_BUTTON].smpsw_name = PSWITCH_HK_SCISSORS_BUTTON; + psw[TP_PSW_BLUETOOTH_BUTTON].smpsw_name = PSWITCH_HK_BLUETOOTH_BUTTON; + psw[TP_PSW_KEYBOARD_BUTTON].smpsw_name = PSWITCH_HK_KEYBOARD_BUTTON; #endif /* THINKPAD_NORMAL_HOTKEYS */ for (i = 0; i < TP_PSW_LAST; i++) { @@ -426,6 +438,15 @@ thinkpad_get_hotkeys(void *opaque) PSWITCH_EVENT_PRESSED); #endif break; + case THINKPAD_NOTIFY_Bluetooth: + thinkpad_bluetooth_toggle(sc); +#ifndef THINKPAD_NORMAL_HOTKEYS + if (sc->sc_smpsw_valid == false) + break; + sysmon_pswitch_event(&sc->sc_smpsw[TP_PSW_BLUETOOTH_BUTTON], + PSWITCH_EVENT_PRESSED); +#endif + break; case THINKPAD_NOTIFY_wWANSwitch: thinkpad_wwan_toggle(sc); #ifndef THINKPAD_NORMAL_HOTKEYS @@ -543,6 +564,24 @@ thinkpad_get_hotkeys(void *opaque) sysmon_pswitch_event(&sc->sc_smpsw[TP_PSW_VOLUME_MUTE], PSWITCH_EVENT_PRESSED); break; + case THINKPAD_NOTIFY_Star: + if (sc->sc_smpsw_valid == false) + break; + sysmon_pswitch_event(&sc->sc_smpsw[TP_PSW_STAR_BUTTON], + PSWITCH_EVENT_PRESSED); + break; + case THINKPAD_NOTIFY_Scissors: + if (sc->sc_smpsw_valid == false) + break; + sysmon_pswitch_event(&sc->sc_smpsw[TP_PSW_SCISSORS_BUTTON], + PSWITCH_EVENT_PRESSED); + break; + case THINKPAD_NOTIFY_Keyboard: + if (sc->sc_smpsw_valid == false) + break; + sysmon_pswitch_event(&sc->sc_smpsw[TP_PSW_KEYBOARD_BUTTON], + PSWITCH_EVENT_PRESSED); + break; #else case THINKPAD_NOTIFY_FnF1: case THINKPAD_NOTIFY_PointerSwitch: @@ -552,6 +591,9 @@ thinkpad_get_hotkeys(void *opaque) case THINKPAD_NOTIFY_VolumeUp: case THINKPAD_NOTIFY_VolumeDown: case THINKPAD_NOTIFY_VolumeMute: + case THINKPAD_NOTIFY_Star: + case THINKPAD_NOTIFY_Scissors: + case THINKPAD_NOTIFY_Keyboard: /* XXXJDM we should deliver hotkeys as keycodes */ break; #endif /* THINKPAD_NORMAL_HOTKEYS */ Index: src/sys/sys/power.h diff -u src/sys/sys/power.h:1.21 src/sys/sys/power.h:1.22 --- src/sys/sys/power.h:1.21 Wed Aug 1 20:09:34 2018 +++ src/sys/sys/power.h Sat May 29 16:49:57 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: power.h,v 1.21 2018/08/01 20:09:34 kre Exp $ */ +/* $NetBSD: power.h,v 1.22 2021/05/29 16:49:57 riastradh Exp $ */ /* * Copyright (c) 2003 Wasabi Systems, Inc. @@ -114,6 +114,10 @@ #define PSWITCH_HK_VOLUME_UP "volume-up" #define PSWITCH_HK_VOLUME_DOWN "volume-down" #define PSWITCH_HK_VOLUME_MUTE "volume-mute" +#define PSWITCH_HK_STAR_BUTTON "star-button" +#define PSWITCH_HK_SCISSORS_BUTTON "scissors-button" +#define PSWITCH_HK_BLUETOOTH_BUTTON "bluetooth-button" +#define PSWITCH_HK_KEYBOARD_BUTTON "keyboard-button" #endif /* THINKPAD_NORMAL_HOTKEYS */ #define PSWITCH_TYPE_RADIO 6 /* radio switch */