Skip to content

Commit a890523

Browse files
niyarinJiri Kosina
authored andcommitted
HID: lenovo: Add support for ThinkPad X1 Tablet Thin Keyboard Gen2
Add "Thinkpad X1 Tablet Gen 2 Keyboard" PID to hid-lenovo driver to fix trackpoint not working issue. Signed-off-by: Akira Inoue <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 4540e41 commit a890523

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

drivers/hid/hid-ids.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,6 +821,7 @@
821821
#define USB_DEVICE_ID_LENOVO_TPPRODOCK 0x6067
822822
#define USB_DEVICE_ID_LENOVO_X1_COVER 0x6085
823823
#define USB_DEVICE_ID_LENOVO_X1_TAB 0x60a3
824+
#define USB_DEVICE_ID_LENOVO_X1_TAB2 0x60a4
824825
#define USB_DEVICE_ID_LENOVO_X1_TAB3 0x60b5
825826
#define USB_DEVICE_ID_LENOVO_X12_TAB 0x60fe
826827
#define USB_DEVICE_ID_LENOVO_X12_TAB2 0x61ae

drivers/hid/hid-lenovo.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,7 @@ static int lenovo_input_mapping(struct hid_device *hdev,
492492
case USB_DEVICE_ID_LENOVO_X12_TAB:
493493
case USB_DEVICE_ID_LENOVO_X12_TAB2:
494494
case USB_DEVICE_ID_LENOVO_X1_TAB:
495+
case USB_DEVICE_ID_LENOVO_X1_TAB2:
495496
case USB_DEVICE_ID_LENOVO_X1_TAB3:
496497
return lenovo_input_mapping_x1_tab_kbd(hdev, hi, field, usage, bit, max);
497498
default:
@@ -608,6 +609,7 @@ static ssize_t attr_fn_lock_store(struct device *dev,
608609
case USB_DEVICE_ID_LENOVO_X12_TAB2:
609610
case USB_DEVICE_ID_LENOVO_TP10UBKBD:
610611
case USB_DEVICE_ID_LENOVO_X1_TAB:
612+
case USB_DEVICE_ID_LENOVO_X1_TAB2:
611613
case USB_DEVICE_ID_LENOVO_X1_TAB3:
612614
ret = lenovo_led_set_tp10ubkbd(hdev, TP10UBKBD_FN_LOCK_LED, value);
613615
if (ret)
@@ -864,6 +866,7 @@ static int lenovo_event(struct hid_device *hdev, struct hid_field *field,
864866
case USB_DEVICE_ID_LENOVO_X12_TAB2:
865867
case USB_DEVICE_ID_LENOVO_TP10UBKBD:
866868
case USB_DEVICE_ID_LENOVO_X1_TAB:
869+
case USB_DEVICE_ID_LENOVO_X1_TAB2:
867870
case USB_DEVICE_ID_LENOVO_X1_TAB3:
868871
return lenovo_event_tp10ubkbd(hdev, field, usage, value);
869872
default:
@@ -1147,6 +1150,7 @@ static int lenovo_led_brightness_set(struct led_classdev *led_cdev,
11471150
case USB_DEVICE_ID_LENOVO_X12_TAB2:
11481151
case USB_DEVICE_ID_LENOVO_TP10UBKBD:
11491152
case USB_DEVICE_ID_LENOVO_X1_TAB:
1153+
case USB_DEVICE_ID_LENOVO_X1_TAB2:
11501154
case USB_DEVICE_ID_LENOVO_X1_TAB3:
11511155
ret = lenovo_led_set_tp10ubkbd(hdev, tp10ubkbd_led[led_nr], value);
11521156
break;
@@ -1387,6 +1391,7 @@ static int lenovo_probe(struct hid_device *hdev,
13871391
case USB_DEVICE_ID_LENOVO_X12_TAB2:
13881392
case USB_DEVICE_ID_LENOVO_TP10UBKBD:
13891393
case USB_DEVICE_ID_LENOVO_X1_TAB:
1394+
case USB_DEVICE_ID_LENOVO_X1_TAB2:
13901395
case USB_DEVICE_ID_LENOVO_X1_TAB3:
13911396
ret = lenovo_probe_tp10ubkbd(hdev);
13921397
break;
@@ -1476,6 +1481,7 @@ static void lenovo_remove(struct hid_device *hdev)
14761481
case USB_DEVICE_ID_LENOVO_X12_TAB2:
14771482
case USB_DEVICE_ID_LENOVO_TP10UBKBD:
14781483
case USB_DEVICE_ID_LENOVO_X1_TAB:
1484+
case USB_DEVICE_ID_LENOVO_X1_TAB2:
14791485
case USB_DEVICE_ID_LENOVO_X1_TAB3:
14801486
lenovo_remove_tp10ubkbd(hdev);
14811487
break;
@@ -1526,6 +1532,8 @@ static const struct hid_device_id lenovo_devices[] = {
15261532
*/
15271533
{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
15281534
USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB) },
1535+
{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
1536+
USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB2) },
15291537
{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
15301538
USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB3) },
15311539
{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,

drivers/hid/hid-multitouch.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2132,12 +2132,18 @@ static const struct hid_device_id mt_devices[] = {
21322132
HID_DEVICE(BUS_I2C, HID_GROUP_GENERIC,
21332133
USB_VENDOR_ID_LG, I2C_DEVICE_ID_LG_7010) },
21342134

2135-
/* Lenovo X1 TAB Gen 2 */
2135+
/* Lenovo X1 TAB Gen 1 */
21362136
{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
21372137
HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,
21382138
USB_VENDOR_ID_LENOVO,
21392139
USB_DEVICE_ID_LENOVO_X1_TAB) },
21402140

2141+
/* Lenovo X1 TAB Gen 2 */
2142+
{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
2143+
HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,
2144+
USB_VENDOR_ID_LENOVO,
2145+
USB_DEVICE_ID_LENOVO_X1_TAB2) },
2146+
21412147
/* Lenovo X1 TAB Gen 3 */
21422148
{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
21432149
HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,

0 commit comments

Comments
 (0)