Commit a8905238 authored by Akira Inoue's avatar Akira Inoue Committed by Jiri Kosina
Browse files

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: default avatarAkira Inoue <niyarium@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.com>
parent 4540e41e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -821,6 +821,7 @@
#define USB_DEVICE_ID_LENOVO_TPPRODOCK	0x6067
#define USB_DEVICE_ID_LENOVO_X1_COVER	0x6085
#define USB_DEVICE_ID_LENOVO_X1_TAB	0x60a3
#define USB_DEVICE_ID_LENOVO_X1_TAB2	0x60a4
#define USB_DEVICE_ID_LENOVO_X1_TAB3	0x60b5
#define USB_DEVICE_ID_LENOVO_X12_TAB	0x60fe
#define USB_DEVICE_ID_LENOVO_X12_TAB2	0x61ae
+8 −0
Original line number Diff line number Diff line
@@ -492,6 +492,7 @@ static int lenovo_input_mapping(struct hid_device *hdev,
	case USB_DEVICE_ID_LENOVO_X12_TAB:
	case USB_DEVICE_ID_LENOVO_X12_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB:
	case USB_DEVICE_ID_LENOVO_X1_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB3:
		return lenovo_input_mapping_x1_tab_kbd(hdev, hi, field, usage, bit, max);
	default:
@@ -608,6 +609,7 @@ static ssize_t attr_fn_lock_store(struct device *dev,
	case USB_DEVICE_ID_LENOVO_X12_TAB2:
	case USB_DEVICE_ID_LENOVO_TP10UBKBD:
	case USB_DEVICE_ID_LENOVO_X1_TAB:
	case USB_DEVICE_ID_LENOVO_X1_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB3:
		ret = lenovo_led_set_tp10ubkbd(hdev, TP10UBKBD_FN_LOCK_LED, value);
		if (ret)
@@ -864,6 +866,7 @@ static int lenovo_event(struct hid_device *hdev, struct hid_field *field,
	case USB_DEVICE_ID_LENOVO_X12_TAB2:
	case USB_DEVICE_ID_LENOVO_TP10UBKBD:
	case USB_DEVICE_ID_LENOVO_X1_TAB:
	case USB_DEVICE_ID_LENOVO_X1_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB3:
		return lenovo_event_tp10ubkbd(hdev, field, usage, value);
	default:
@@ -1147,6 +1150,7 @@ static int lenovo_led_brightness_set(struct led_classdev *led_cdev,
	case USB_DEVICE_ID_LENOVO_X12_TAB2:
	case USB_DEVICE_ID_LENOVO_TP10UBKBD:
	case USB_DEVICE_ID_LENOVO_X1_TAB:
	case USB_DEVICE_ID_LENOVO_X1_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB3:
		ret = lenovo_led_set_tp10ubkbd(hdev, tp10ubkbd_led[led_nr], value);
		break;
@@ -1387,6 +1391,7 @@ static int lenovo_probe(struct hid_device *hdev,
	case USB_DEVICE_ID_LENOVO_X12_TAB2:
	case USB_DEVICE_ID_LENOVO_TP10UBKBD:
	case USB_DEVICE_ID_LENOVO_X1_TAB:
	case USB_DEVICE_ID_LENOVO_X1_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB3:
		ret = lenovo_probe_tp10ubkbd(hdev);
		break;
@@ -1476,6 +1481,7 @@ static void lenovo_remove(struct hid_device *hdev)
	case USB_DEVICE_ID_LENOVO_X12_TAB2:
	case USB_DEVICE_ID_LENOVO_TP10UBKBD:
	case USB_DEVICE_ID_LENOVO_X1_TAB:
	case USB_DEVICE_ID_LENOVO_X1_TAB2:
	case USB_DEVICE_ID_LENOVO_X1_TAB3:
		lenovo_remove_tp10ubkbd(hdev);
		break;
@@ -1526,6 +1532,8 @@ static const struct hid_device_id lenovo_devices[] = {
	 */
	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
		     USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB) },
	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
		     USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB2) },
	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
		     USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X1_TAB3) },
	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+7 −1
Original line number Diff line number Diff line
@@ -2132,12 +2132,18 @@ static const struct hid_device_id mt_devices[] = {
		HID_DEVICE(BUS_I2C, HID_GROUP_GENERIC,
			USB_VENDOR_ID_LG, I2C_DEVICE_ID_LG_7010) },

	/* Lenovo X1 TAB Gen 2 */
	/* Lenovo X1 TAB Gen 1 */
	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
		HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,
			   USB_VENDOR_ID_LENOVO,
			   USB_DEVICE_ID_LENOVO_X1_TAB) },

	/* Lenovo X1 TAB Gen 2 */
	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
		HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,
			   USB_VENDOR_ID_LENOVO,
			   USB_DEVICE_ID_LENOVO_X1_TAB2) },

	/* Lenovo X1 TAB Gen 3 */
	{ .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT,
		HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8,