]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
platform/x86: uniwill-laptop: Handle FN lock event
authorArmin Wolf <W_Armin@gmx.de>
Wed, 18 Feb 2026 00:51:01 +0000 (01:51 +0100)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Mon, 23 Feb 2026 16:06:44 +0000 (18:06 +0200)
On many devices, the user can toggle the Fn lock state by
pressing Fn + Esc. Forward the associated event to the fn_lock
sysfs attribute as a poll notification.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://patch.msgid.link/20260218005101.73680-5-W_Armin@gmx.de
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/uniwill/uniwill-acpi.c

index 73b3d909e2b0ba46c3fa0531a7ee32fb2ef0850b..6341dca20b76a1f3c0001a91c2083a7c05060545 100644 (file)
@@ -406,9 +406,6 @@ static const struct key_entry uniwill_keymap[] = {
        /* Reported when the user wants to toggle the mute status */
        { KE_IGNORE,    UNIWILL_OSD_MUTE,                       { KEY_MUTE }},
 
-       /* Reported when the user locks/unlocks the Fn key */
-       { KE_IGNORE,    UNIWILL_OSD_FN_LOCK,                    { KEY_FN_ESC }},
-
        /* Reported when the user wants to toggle the brightness of the keyboard */
        { KE_KEY,       UNIWILL_OSD_KBDILLUMTOGGLE,             { KEY_KBDILLUMTOGGLE }},
        { KE_KEY,       UNIWILL_OSD_KB_LED_LEVEL0,              { KEY_KBDILLUMTOGGLE }},
@@ -1376,6 +1373,13 @@ static int uniwill_notifier_call(struct notifier_block *nb, unsigned long action
                 * gets implemented.
                 */
 
+               return NOTIFY_OK;
+       case UNIWILL_OSD_FN_LOCK:
+               if (!uniwill_device_supports(data, UNIWILL_FEATURE_FN_LOCK))
+                       return NOTIFY_DONE;
+
+               sysfs_notify(&data->dev->kobj, NULL, "fn_lock");
+
                return NOTIFY_OK;
        default:
                mutex_lock(&data->input_lock);