[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.1410291104550.20256@pobox.suse.cz>
Date: Wed, 29 Oct 2014 11:05:28 +0100 (CET)
From: Jiri Kosina <jkosina@...e.cz>
To: Benjamin Tissoires <benjamin.tissoires@...hat.com>
cc: Hans de Goede <hdegoede@...hat.com>,
Bastien Nocera <hadess@...ess.net>,
linux-kernel@...r.kernel.org, linux-input@...r.kernel.org
Subject: Re: [PATCH] HID: usbhid: prevent unwanted events to be sent when
re-opening the device
On Tue, 30 Sep 2014, Benjamin Tissoires wrote:
> When events occurs while no one is listening to the node (hid->open == 0
> and usb_kill_urb() called) some events are still stacked somewhere in
> the USB (kernel or device?) stack. When the node gets reopened, these
> events are drained, and this results in spurious touch down/up, or mouse
> button clicks.
>
> The problem was spotted with touchscreens in fdo bug #81781 [1], but it
> actually occurs with any mouse using hid-generic or touchscreen.
>
> A way to reproduce it is to call:
>
> $ xinput disable 9 ; sleep 5 ; xinput enable 9
>
> With 9 being the device ID for the touchscreen/mouse. During the "sleep",
> produce some touch events or click events. When "xinput enable" is called,
> at least one click is generated.
>
> This patch tries to fix this by draining the queue for 50 msec and
> during this time frame, not forwarding these old events to the hid layer.
>
> Hans completed the explanation:
> """
> Devices like mice (basically any hid device) will have a fifo
> on the device side, when we stop submitting urbs to get hid reports from
> it, that fifo will fill up, and when we resume we will get whatever
> is there in that fifo.
> """
>
> [1] https://bugs.freedesktop.org/show_bug.cgi?id=81781
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@...hat.com>
> ---
>
> OK, I know this is uggly, but I could not find a better way :(
I have been thinking about this quite a lot, but unfortunately wasn't able
to come up with anything better either, so I am queuing this now.
Thanks.
--
Jiri Kosina
SUSE Labs
--
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