platform/x86: thinkpad_acpi: Always call tpacpi_driver_event() for hotkeys
authorHans de Goede <hdegoede@redhat.com>
Wed, 24 Apr 2024 12:28:21 +0000 (14:28 +0200)
committerHans de Goede <hdegoede@redhat.com>
Mon, 29 Apr 2024 09:44:12 +0000 (11:44 +0200)
Call tpacpi_driver_event() at the top of hotkey_notify_hotkey() for all
(orig / adaptive / extended) hotkey types, rather then having the orig
code path call tpacpi_input_send_key_masked() which calls it through
hotkey_driver_event() and having the adaptive / extended helpers call
it separately.

Tested-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mark Pearson <mpearson-lenovo@squebb.ca>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20240424122834.19801-12-hdegoede@redhat.com
drivers/platform/x86/thinkpad_acpi.c

index f2655278ab8ea861f28a8db252d9e89b414f6637..9f09434982185773ef07cddee6fcd9779d53263a 100644 (file)
@@ -3713,9 +3713,6 @@ static void adaptive_keyboard_s_quickview_row(void)
 
 static bool adaptive_keyboard_hotkey_notify_hotkey(const u32 hkey)
 {
-       if (tpacpi_driver_event(hkey))
-               return true;
-
        if (hkey < TP_HKEY_EV_ADAPTIVE_KEY_START ||
            hkey > TP_HKEY_EV_ADAPTIVE_KEY_END) {
                pr_info("Unhandled adaptive keyboard key: 0x%x\n", hkey);
@@ -3729,9 +3726,6 @@ static bool adaptive_keyboard_hotkey_notify_hotkey(const u32 hkey)
 
 static bool hotkey_notify_extended_hotkey(const u32 hkey)
 {
-       if (tpacpi_driver_event(hkey))
-               return true;
-
        if (hkey >= TP_HKEY_EV_EXTENDED_KEY_START &&
            hkey <= TP_HKEY_EV_EXTENDED_KEY_END) {
                unsigned int scancode = hkey - TP_HKEY_EV_EXTENDED_KEY_START +
@@ -3757,6 +3751,9 @@ static bool hotkey_notify_hotkey(const u32 hkey, bool *send_acpi_ev)
                        return true;
        }
 
+       if (tpacpi_driver_event(hkey))
+               return true;
+
        /*
         * Original events are in the 0x10XX range, the adaptive keyboard
         * found in 2014 X1 Carbon emits events are of 0x11XX. In 2017
@@ -3766,7 +3763,7 @@ static bool hotkey_notify_hotkey(const u32 hkey, bool *send_acpi_ev)
        case 0:
                if (hkey >= TP_HKEY_EV_ORIG_KEY_START &&
                    hkey <= TP_HKEY_EV_ORIG_KEY_END) {
-                       tpacpi_input_send_key_masked(scancode);
+                       tpacpi_input_send_key(scancode);
                        return true;
                }
                break;