|
|
@@ -778,9 +778,16 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
|
/*
|
|
|
* some egalax touchscreens have "application == HID_DG_TOUCHSCREEN"
|
|
|
* for the stylus.
|
|
|
+ * The check for mt_report_id ensures we don't process
|
|
|
+ * HID_DG_CONTACTCOUNT from the pen report as it is outside the physical
|
|
|
+ * collection, but within the report ID.
|
|
|
*/
|
|
|
if (field->physical == HID_DG_STYLUS)
|
|
|
return 0;
|
|
|
+ else if ((field->physical == 0) &&
|
|
|
+ (field->report->id != td->mt_report_id) &&
|
|
|
+ (td->mt_report_id != -1))
|
|
|
+ return 0;
|
|
|
|
|
|
if (field->application == HID_DG_TOUCHSCREEN ||
|
|
|
field->application == HID_DG_TOUCHPAD)
|