Re: Linux USB HID should ignore values outside LogicalMinimum/Maximum range

From: Denilson Figueiredo de SÃ
Date: Wed Nov 02 2011 - 19:40:00 EST


On Mon, 31 Oct 2011 13:24:09 -0200, Jiri Kosina <jkosina@xxxxxxx> wrote:

I personally find the wording of the spec here a bit unfortunate (the
'declaring bit field in a report that is capable of containing a range of
values largen than those actually generated by the control' seems to be a
bit too foggy and vague).

I don't think it is vague.

"declaring bit field in a report" -> Input()
"that is capable of containing a range of values" -> Report_size()
"larger than those actually generated by the control" -> The entire range repreented using Report_size bits is larger than the Logical minimum/maximum,

For me, that paragraph is not foggy. Maybe other pieces of the spec are, but that one seemed clear for me.

> + if (value < field->logical_minimum ||
> + value > field->logical_maximum) {

After thinking about it a little bit more, I think I agree.
[...]
So please let me know the result of your testing.

Seems to work on my device, thanks!
I haven't done more than a couple of minutes of testing, though. But it seems to work.


(another test below)

I've also tested the behavior when one axis is valid, while the other one as an invalid (and thus discarded) value.

This was based on a question from Chris Friesen: https://lkml.org/lkml/2011/10/24/290

Running "evtest /dev/input/event9" only shows the valid axis. That's good, it seems invalid values don't generate events.

But Xorg moves the pointer in both axes at once, instead of just one of them.
IMHO, that's not perfect, but it seems good enough, specially considering this is a somewhat unlikely edge-case (remember I'm talking about one axis valid and another discarded). It might also be a bug in Xorg.


(if anything in this message doesn't make much sense, that's probably because I need some sleep - but I wanted to give you feedback as soon as I could)


--
Denilson Figueiredo de SÃ
Rio de Janeiro - Brasil
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/