From: Jeff Brown <redacted>
This change fixes two problems.
First, it ensures that the hid-multitouch driver does not incorrectly
map GenericDesktop usages that are intended for other applications,
such as a Mouse.
Second, it sets the appropriate input properties so that user-space
can distinguish TouchScreen devices (INPUT_PROP_DIRECT) from
TouchPad devices (INPUT_PROP_POINTER) and configure them accordingly.
Signed-off-by: jeffbrown@android.com
---
drivers/hid/hid-multitouch.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
@@ -213,6 +213,16 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,structmt_class*cls=td->mtclass;__s32quirks=cls->quirks;+/* Only map fields from TouchScreen or TouchPad collections.+*Weneedtoignorefieldsthatbelongtoothercollections+*suchasMousethatmighthavethesameGenericDesktopusages.*/+if(field->application==HID_DG_TOUCHSCREEN)+set_bit(INPUT_PROP_DIRECT,hi->input->propbit);+elseif(field->application==HID_DG_TOUCHPAD)+set_bit(INPUT_PROP_POINTER,hi->input->propbit);+else+return0;+switch(usage->hid&HID_USAGE_PAGE){caseHID_UP_GENDESK:
From: Benjamin Tissoires <hidden> Date: 2011-08-16 07:29:34
Hi Jeff,
thank you for resubmitting this patch set.
Acked-By: Benjamin Tissoires <redacted>
Cheers,
Benjamin
On Tue, Aug 16, 2011 at 01:44, [off-list ref] wrote:
quoted hunk
From: Jeff Brown <redacted>
This change fixes two problems.
First, it ensures that the hid-multitouch driver does not incorrectly
map GenericDesktop usages that are intended for other applications,
such as a Mouse.
Second, it sets the appropriate input properties so that user-space
can distinguish TouchScreen devices (INPUT_PROP_DIRECT) from
TouchPad devices (INPUT_PROP_POINTER) and configure them accordingly.
Signed-off-by: jeffbrown@android.com
---
drivers/hid/hid-multitouch.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
struct mt_class *cls = td->mtclass;
__s32 quirks = cls->quirks;
+ /* Only map fields from TouchScreen or TouchPad collections.
+ * We need to ignore fields that belong to other collections
+ * such as Mouse that might have the same GenericDesktop usages. */
+ if (field->application == HID_DG_TOUCHSCREEN)
+ set_bit(INPUT_PROP_DIRECT, hi->input->propbit);
+ else if (field->application == HID_DG_TOUCHPAD)
+ set_bit(INPUT_PROP_POINTER, hi->input->propbit);
+ else
+ return 0;
+
switch (usage->hid & HID_USAGE_PAGE) {
case HID_UP_GENDESK:
--
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
@@ -213,6 +213,16 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,structmt_class*cls=td->mtclass;__s32quirks=cls->quirks;+/* Only map fields from TouchScreen or TouchPad collections.+*Weneedtoignorefieldsthatbelongtoothercollections
^
+ * such as Mouse that might have the same GenericDesktop usages. */
^
You might want to use tabs here instead of spaces.
Best regards,
Nicolas Kaiser