Re: [PATCH v2] HID: usbhid: do not sleep when opening device

From: Jiri Kosina
Date: Tue Aug 18 2020 - 13:52:24 EST


On Tue, 18 Aug 2020, Johannes Hirte wrote:

> > usbhid tries to give the device 50 milliseconds to drain its queues when
> > opening the device, but dies it naively by simply sleeping in open handler,
> > which slows down device probing (and thus may affect overall boot time).
> >
> > However we do not need to sleep as we can instead mark a point of time in
> > the future when we should start processing the events.
> >
> > Reported-by: Nicolas Boichat <drinkcat@xxxxxxxxxxxx>
> > Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> > ---
> >
>
> This change breaks various Logitech devices:
> https://bugzilla.kernel.org/show_bug.cgi?id=208935

Copy/pasting from the other thread:

=====
Yeah, this problem popped out also in other contexts, where many Logitech
devices didn't probe properly, because of the race where the first IRQ is
dropped on the floor (after hid_device_io_start() happens, but before the
50ms timeout passess), and report descriptor never gets parsed and
populated.

As this is just a boot time micro-optimization, I am going to revert the
patch for 5.9 now, and we can try to fix this properly for next merge
window.
=====

Thanks,

--
Jiri Kosina
SUSE Labs