|
@@ -271,6 +271,8 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
|
}
|
|
|
return 1;
|
|
|
case HID_DG_CONTACTID:
|
|
|
+ if (!td->maxcontacts)
|
|
|
+ td->maxcontacts = MT_DEFAULT_MAXCONTACT;
|
|
|
input_mt_init_slots(hi->input, td->maxcontacts);
|
|
|
td->last_slot_field = usage->hid;
|
|
|
td->last_field_index = field->index;
|
|
@@ -547,9 +549,6 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
|
if (ret)
|
|
|
goto fail;
|
|
|
|
|
|
- if (!td->maxcontacts)
|
|
|
- td->maxcontacts = MT_DEFAULT_MAXCONTACT;
|
|
|
-
|
|
|
td->slots = kzalloc(td->maxcontacts * sizeof(struct mt_slot),
|
|
|
GFP_KERNEL);
|
|
|
if (!td->slots) {
|
|
@@ -677,6 +676,9 @@ static const struct hid_device_id mt_devices[] = {
|
|
|
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
|
|
|
HID_USB_DEVICE(USB_VENDOR_ID_LUMIO,
|
|
|
USB_DEVICE_ID_CRYSTALTOUCH) },
|
|
|
+ { .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
|
|
|
+ HID_USB_DEVICE(USB_VENDOR_ID_LUMIO,
|
|
|
+ USB_DEVICE_ID_CRYSTALTOUCH_DUAL) },
|
|
|
|
|
|
/* MosArt panels */
|
|
|
{ .driver_data = MT_CLS_CONFIDENCE_MINUS_ONE,
|
|
@@ -707,10 +709,10 @@ static const struct hid_device_id mt_devices[] = {
|
|
|
HID_USB_DEVICE(USB_VENDOR_ID_STANTUM,
|
|
|
USB_DEVICE_ID_MTP)},
|
|
|
{ .driver_data = MT_CLS_CONFIDENCE,
|
|
|
- HID_USB_DEVICE(USB_VENDOR_ID_STANTUM,
|
|
|
+ HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_STM,
|
|
|
USB_DEVICE_ID_MTP_STM)},
|
|
|
{ .driver_data = MT_CLS_CONFIDENCE,
|
|
|
- HID_USB_DEVICE(USB_VENDOR_ID_STANTUM,
|
|
|
+ HID_USB_DEVICE(USB_VENDOR_ID_STANTUM_SITRONIX,
|
|
|
USB_DEVICE_ID_MTP_SITRONIX)},
|
|
|
|
|
|
/* Touch International panels */
|