mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
platform/x86: thinkpad_acpi: Add hotkey_notify_extended_hotkey() helper
Factor the extended hotkey handling out of hotkey_notify_hotkey() and into a new hotkey_notify_extended_hotkey() helper. This is a preparation patch for adding support the privacy-screen hotkey toggle (which needs some special handling, it should NOT send an evdev key-event to userspace...). Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Mark Pearson <markpearson@lenovo.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20211005202322.700909-7-hdegoede@redhat.com
This commit is contained in:
parent
334f74ee85
commit
1b8101d518
|
|
@ -3885,6 +3885,24 @@ static bool adaptive_keyboard_hotkey_notify_hotkey(unsigned int scancode)
|
|||
}
|
||||
}
|
||||
|
||||
static bool hotkey_notify_extended_hotkey(const u32 hkey)
|
||||
{
|
||||
unsigned int scancode;
|
||||
|
||||
/* Extended keycodes start at 0x300 and our offset into the map
|
||||
* TP_ACPI_HOTKEYSCAN_EXTENDED_START. The calculated scancode
|
||||
* will be positive, but might not be in the correct range.
|
||||
*/
|
||||
scancode = (hkey & 0xfff) - (0x300 - TP_ACPI_HOTKEYSCAN_EXTENDED_START);
|
||||
if (scancode >= TP_ACPI_HOTKEYSCAN_EXTENDED_START &&
|
||||
scancode < TPACPI_HOTKEY_MAP_LEN) {
|
||||
tpacpi_input_send_key(scancode);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool hotkey_notify_hotkey(const u32 hkey,
|
||||
bool *send_acpi_ev,
|
||||
bool *ignore_acpi_ev)
|
||||
|
|
@ -3919,17 +3937,7 @@ static bool hotkey_notify_hotkey(const u32 hkey,
|
|||
return adaptive_keyboard_hotkey_notify_hotkey(scancode);
|
||||
|
||||
case 3:
|
||||
/* Extended keycodes start at 0x300 and our offset into the map
|
||||
* TP_ACPI_HOTKEYSCAN_EXTENDED_START. The calculated scancode
|
||||
* will be positive, but might not be in the correct range.
|
||||
*/
|
||||
scancode -= (0x300 - TP_ACPI_HOTKEYSCAN_EXTENDED_START);
|
||||
if (scancode >= TP_ACPI_HOTKEYSCAN_EXTENDED_START &&
|
||||
scancode < TPACPI_HOTKEY_MAP_LEN) {
|
||||
tpacpi_input_send_key(scancode);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
return hotkey_notify_extended_hotkey(hkey);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user