Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

HID: lenovo: Add support for Thinkpad X1 Tablet Gen 3 keyboard

The Thinkpad X1 Tablet Gen 3 keyboard has the same Lenovo specific quirks
as the original Thinkpad X1 Tablet keyboard.

Add the PID for the "Thinkpad X1 Tablet Gen 3 keyboard" to the hid-lenovo
driver to fix the FnLock, Mute and media buttons not working.

Suggested-by: Izhar Firdaus <izhar@fedoraproject.org>
Closes https://bugzilla.redhat.com/show_bug.cgi?id=2315395
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>

authored by

Hans de Goede and committed by
Jiri Kosina
51268879 526748b9

+8
+8
drivers/hid/hid-lenovo.c
··· 473 473 return lenovo_input_mapping_tp10_ultrabook_kbd(hdev, hi, field, 474 474 usage, bit, max); 475 475 case USB_DEVICE_ID_LENOVO_X1_TAB: 476 + case USB_DEVICE_ID_LENOVO_X1_TAB3: 476 477 return lenovo_input_mapping_x1_tab_kbd(hdev, hi, field, usage, bit, max); 477 478 default: 478 479 return 0; ··· 584 583 break; 585 584 case USB_DEVICE_ID_LENOVO_TP10UBKBD: 586 585 case USB_DEVICE_ID_LENOVO_X1_TAB: 586 + case USB_DEVICE_ID_LENOVO_X1_TAB3: 587 587 ret = lenovo_led_set_tp10ubkbd(hdev, TP10UBKBD_FN_LOCK_LED, value); 588 588 if (ret) 589 589 return ret; ··· 778 776 return lenovo_event_cptkbd(hdev, field, usage, value); 779 777 case USB_DEVICE_ID_LENOVO_TP10UBKBD: 780 778 case USB_DEVICE_ID_LENOVO_X1_TAB: 779 + case USB_DEVICE_ID_LENOVO_X1_TAB3: 781 780 return lenovo_event_tp10ubkbd(hdev, field, usage, value); 782 781 default: 783 782 return 0; ··· 1059 1056 break; 1060 1057 case USB_DEVICE_ID_LENOVO_TP10UBKBD: 1061 1058 case USB_DEVICE_ID_LENOVO_X1_TAB: 1059 + case USB_DEVICE_ID_LENOVO_X1_TAB3: 1062 1060 ret = lenovo_led_set_tp10ubkbd(hdev, tp10ubkbd_led[led_nr], value); 1063 1061 break; 1064 1062 } ··· 1290 1286 break; 1291 1287 case USB_DEVICE_ID_LENOVO_TP10UBKBD: 1292 1288 case USB_DEVICE_ID_LENOVO_X1_TAB: 1289 + case USB_DEVICE_ID_LENOVO_X1_TAB3: 1293 1290 ret = lenovo_probe_tp10ubkbd(hdev); 1294 1291 break; 1295 1292 default: ··· 1377 1372 break; 1378 1373 case USB_DEVICE_ID_LENOVO_TP10UBKBD: 1379 1374 case USB_DEVICE_ID_LENOVO_X1_TAB: 1375 + case USB_DEVICE_ID_LENOVO_X1_TAB3: 1380 1376 lenovo_remove_tp10ubkbd(hdev); 1381 1377 break; 1382 1378 } ··· 1427 1421 */ 1428 1422 { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 1429 1423 USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB) }, 1424 + { HID_DEVICE(BUS_USB, HID_GROUP_GENERIC, 1425 + USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB3) }, 1430 1426 { } 1431 1427 }; 1432 1428