diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c index 1b9793f7c07e..e799ce2ecf6c 100644 --- a/drivers/hid/hid-asus.c +++ b/drivers/hid/hid-asus.c @@ -361,6 +361,12 @@ static int asus_event(struct hid_device *hdev, struct hid_field *field, usage->hid & HID_USAGE); } + if (drvdata->quirks & QUIRK_HID_FN_LOCK && + usage->type == EV_KEY && usage->code == KEY_FN_ESC && value == 1) { + drvdata->fn_lock = !drvdata->fn_lock; + schedule_work(&drvdata->fn_lock_sync_work); + } + if (usage->type == EV_KEY && value) { switch (usage->code) { case KEY_KBDILLUMUP: