diff options
Diffstat (limited to 'drivers/hid/hid-multitouch.c')
| -rw-r--r-- | drivers/hid/hid-multitouch.c | 12 | 
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c index 0b2dcd0ee59..62cac4dc3b6 100644 --- a/drivers/hid/hid-multitouch.c +++ b/drivers/hid/hid-multitouch.c @@ -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 */  |