|
40 | 40 | MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
|
41 | 41 |
|
42 | 42 | #define T100_TPAD_INTF 2
|
| 43 | +#define MEDION_E1239T_TPAD_INTF 1 |
43 | 44 |
|
44 | 45 | #define T100CHI_MOUSE_REPORT_ID 0x06
|
45 | 46 | #define FEATURE_REPORT_ID 0x0d
|
@@ -77,6 +78,7 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
|
77 | 78 | #define QUIRK_G752_KEYBOARD BIT(8)
|
78 | 79 | #define QUIRK_T101HA_DOCK BIT(9)
|
79 | 80 | #define QUIRK_T90CHI BIT(10)
|
| 81 | +#define QUIRK_MEDION_E1239T BIT(11) |
80 | 82 |
|
81 | 83 | #define I2C_KEYBOARD_QUIRKS (QUIRK_FIX_NOTEBOOK_REPORT | \
|
82 | 84 | QUIRK_NO_INIT_REPORTS | \
|
@@ -170,6 +172,16 @@ static const struct asus_touchpad_info asus_t100chi_tp = {
|
170 | 172 | .report_size = 15 /* 2 byte header + 3 * 4 + 1 byte footer */,
|
171 | 173 | };
|
172 | 174 |
|
| 175 | +static const struct asus_touchpad_info medion_e1239t_tp = { |
| 176 | + .max_x = 2640, |
| 177 | + .max_y = 1380, |
| 178 | + .res_x = 29, /* units/mm */ |
| 179 | + .res_y = 28, /* units/mm */ |
| 180 | + .contact_size = 5, |
| 181 | + .max_contacts = 5, |
| 182 | + .report_size = 32 /* 2 byte header + 5 * 5 + 5 byte footer */, |
| 183 | +}; |
| 184 | + |
173 | 185 | static void asus_report_contact_down(struct asus_drvdata *drvdat,
|
174 | 186 | int toolType, u8 *data)
|
175 | 187 | {
|
@@ -877,6 +889,17 @@ static int asus_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
877 | 889 | drvdata->tp = &asus_t100chi_tp;
|
878 | 890 | }
|
879 | 891 |
|
| 892 | + if ((drvdata->quirks & QUIRK_MEDION_E1239T) && |
| 893 | + hid_is_using_ll_driver(hdev, &usb_hid_driver)) { |
| 894 | + struct usb_host_interface *alt = |
| 895 | + to_usb_interface(hdev->dev.parent)->altsetting; |
| 896 | + |
| 897 | + if (alt->desc.bInterfaceNumber == MEDION_E1239T_TPAD_INTF) { |
| 898 | + drvdata->quirks |= QUIRK_SKIP_INPUT_MAPPING; |
| 899 | + drvdata->tp = &medion_e1239t_tp; |
| 900 | + } |
| 901 | + } |
| 902 | + |
880 | 903 | if (drvdata->quirks & QUIRK_NO_INIT_REPORTS)
|
881 | 904 | hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS;
|
882 | 905 |
|
@@ -1056,7 +1079,8 @@ static const struct hid_device_id asus_devices[] = {
|
1056 | 1079 | { HID_USB_DEVICE(USB_VENDOR_ID_JESS, USB_DEVICE_ID_ASUS_MD_5112) },
|
1057 | 1080 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ASUSTEK,
|
1058 | 1081 | USB_DEVICE_ID_ASUSTEK_T100CHI_KEYBOARD), QUIRK_T100CHI },
|
1059 |
| - |
| 1082 | + { HID_USB_DEVICE(USB_VENDOR_ID_ITE, USB_DEVICE_ID_ITE_MEDION_E1239T), |
| 1083 | + QUIRK_MEDION_E1239T }, |
1060 | 1084 | { }
|
1061 | 1085 | };
|
1062 | 1086 | MODULE_DEVICE_TABLE(hid, asus_devices);
|
|
0 commit comments