]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
HID: lenovo: Restrict F7/9/11 mode to compact keyboards only
authorIusico Maxim <iusico.maxim@libero.it>
Thu, 5 Jun 2025 17:55:50 +0000 (19:55 +0200)
committerJiri Kosina <jkosina@suse.com>
Tue, 10 Jun 2025 19:51:02 +0000 (21:51 +0200)
Commit 2f2bd7cbd1d1 ("hid: lenovo: Resend all settings on reset_resume
for compact keyboards") introduced a regression for ThinkPad TrackPoint
Keyboard II by removing the conditional check for enabling F7/9/11 mode
needed for compact keyboards only. As a result, the non-compact
keyboards can no longer toggle Fn-lock via Fn+Esc, although it can be
controlled via sysfs knob that directly sends raw commands.

This patch restores the previous conditional check without any
additions.

Cc: stable@vger.kernel.org
Fixes: 2f2bd7cbd1d1 ("hid: lenovo: Resend all settings on reset_resume for compact keyboards")
Signed-off-by: Iusico Maxim <iusico.maxim@libero.it>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-lenovo.c

index af29ba840522f99bc2f426d4753f70d442cef3af..a3c23a72316ac21d4e4844cfb2c79300b694253a 100644 (file)
@@ -548,11 +548,14 @@ static void lenovo_features_set_cptkbd(struct hid_device *hdev)
 
        /*
         * Tell the keyboard a driver understands it, and turn F7, F9, F11 into
-        * regular keys
+        * regular keys (Compact only)
         */
-       ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03);
-       if (ret)
-               hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret);
+       if (hdev->product == USB_DEVICE_ID_LENOVO_CUSBKBD ||
+           hdev->product == USB_DEVICE_ID_LENOVO_CBTKBD) {
+               ret = lenovo_send_cmd_cptkbd(hdev, 0x01, 0x03);
+               if (ret)
+                       hid_warn(hdev, "Failed to switch F7/9/11 mode: %d\n", ret);
+       }
 
        /* Switch middle button to native mode */
        ret = lenovo_send_cmd_cptkbd(hdev, 0x09, 0x01);