From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754195Ab1KBXj7 (ORCPT ); Wed, 2 Nov 2011 19:39:59 -0400 Received: from mail-gy0-f174.google.com ([209.85.160.174]:40383 "EHLO mail-gy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751629Ab1KBXj4 (ORCPT ); Wed, 2 Nov 2011 19:39:56 -0400 Content-Type: text/plain; charset=utf-8; format=flowed; delsp=yes To: "Jiri Kosina" Cc: "Dmitry Torokhov" , "Christoph Fritz" , linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, linux-usb@vger.kernel.org Subject: Re: Linux USB HID should ignore values outside Logical Minimum/Maximum range References: <1319476183.3210.12.camel@lovely> <20111024203204.GA31721@core.coreip.homeip.net> Date: Wed, 02 Nov 2011 21:39:50 -0200 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: =?utf-8?Q?Denilson_Figueiredo_de_S=C3=A1?= Message-ID: In-Reply-To: User-Agent: Opera Mail/11.51 (Linux) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 31 Oct 2011 13:24:09 -0200, Jiri Kosina 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