Message ID | 51C1D4C8.5040201@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am 19.06.2013 17:56, schrieb Benjamin Tissoires: > > Thanks for the logs. The problem comes from a commit introduced in 3.3 which discards the BTN_LEFT information. > > If possible, can you apply and test the following patch? > It works. Many thanks for making a patch that quick. Kind regards Jan -- 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
On Wed, 19 Jun 2013, Benjamin Tissoires wrote: > From: Benjamin Tissoires <benjamin.tissoires@redhat.com> > Date: Wed, 19 Jun 2013 17:49:05 +0200 > Subject: [PATCH] HID: input: fix false positive out of range values > > Commit 6da7066906e977d42104a859c490f5f9a300488c introduced in 3.3 > "HID: ignore absolute values which don't fit between logical min and max" > prevents some Posiflex touch screen to work because they do not provide > logical min and max for their buttons. > Thus, logical min and max are at 0, discarding the buttons events, and > preventing the device to report appropriate X Y. > > Adding a check on "min < max" solves the problem. > > Reported-by: Jan Kandziora <jjj@gmx.de> > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Thanks. I am applying this with Jan's Tested-by: (and I am also extending the comnent preceeding the condition to better explain this case).
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index c526a3c..930f1bb 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c @@ -1045,6 +1045,7 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct * section 5.10 and 6.2.25 */ if ((field->flags & HID_MAIN_ITEM_VARIABLE) && + (field->logical_minimum < field->logical_maximum) && (value < field->logical_minimum || value > field->logical_maximum)) { dbg_hid("Ignoring out-of-range value %x\n", value);