HID: lenovo: Sync Fn-lock state on button press for Compact and TrackPoint II keyboards
When Fn-Esc is pressed on the keyboard, it emits the scancode which could be used to sync the fn_lock sysfs state. Previously fn_lock only allowed to set new Fn-lock state and did not keep the value in sync upon Fn-Esc press, which is now fixed. Signed-off-by: Florian Klink <flokli@flokli.de> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
24401f291d
commit
a0a5c2a696
@ -690,6 +690,15 @@ static int lenovo_event_cptkbd(struct hid_device *hdev,
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (usage->type == EV_KEY && usage->code == KEY_FN_ESC && value == 1) {
|
||||
/*
|
||||
* The user has toggled the Fn-lock state. Toggle our own
|
||||
* cached value of it and sync our value to the keyboard to
|
||||
* ensure things are in sync (the syncing should be a no-op).
|
||||
*/
|
||||
cptkbd_data->fn_lock = !cptkbd_data->fn_lock;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user