[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAN+gG=FwXaSWN_AYnU7Vpxn4GcWYG3Bf100P0QD_8cQfEnGc7A@mail.gmail.com>
Date: Mon, 3 Sep 2012 14:59:03 +0200
From: Benjamin Tissoires <benjamin.tissoires@...c.fr>
To: Henrik Rydberg <rydberg@...omail.se>
Cc: Dmitry Torokhov <dmitry.torokhov@...il.com>,
Jiri Kosina <jkosina@...e.cz>, linux-input@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 20/20] HID: hid-multitouch: Add missing contact count detection
On Sat, Sep 1, 2012 at 9:47 PM, Henrik Rydberg <rydberg@...omail.se> wrote:
> Some devices report the number of contacts via the CONTACTCOUNT usage,
> rather than using the CONTACTMAX feature. Without this patch, such
> devices will be capped to ten fingers, the default maximum. Fixes a
> long-standing regression on 3M and similar panels.
>
> Cc: Benjamin Tissoires <benjamin.tissoires@...c.fr>
> Signed-off-by: Henrik Rydberg <rydberg@...omail.se>
> ---
> Since this patch looks like it could be backported as-is: In 3.6,
> maxcontacts may be modified after the slots have been initialized,
> leaving the patch harmless but ineffective.
>
> drivers/hid/hid-multitouch.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
> index eee19c9..2fc5335 100644
> --- a/drivers/hid/hid-multitouch.c
> +++ b/drivers/hid/hid-multitouch.c
> @@ -388,6 +388,8 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
> td->last_field_index = field->index;
> return 1;
> case HID_DG_CONTACTCOUNT:
> + if (td->maxcontacts < field->logical_maximum + 1)
> + td->maxcontacts = field->logical_maximum + 1;
Hi Henrik,
Unfortunately, this is not working. We have bad devices that present either:
- a null logical_maximum (some Stantum do) -> the value 1 is assigned
to maxcontacts, and the device is turned into a mono touch....
- an obviously wrong value (with respect to the current state of the
devices) -> Quanta devices report 255 there.... and they support only
2 touches....
And of course, 3M decided to stop sending 60 touches on their recent
devices: we have here a 0x506 device that present a contact_count of
max 60, a maximum contact feature of max 60, but whatever I'm doing,
it does not want to send more than 10 touches....
Cheers,
Benjamin
> td->last_field_index = field->index;
> return 1;
> case HID_DG_CONTACTMAX:
> --
> 1.7.12
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists