On Tue, Feb 04, 2020 at 02:55:41PM +0200, Lauri Jakku wrote: > > On 4.2.2020 14.43, Jiri Kosina wrote: > > On Tue, 4 Feb 2020, Johan Hovold wrote: > > > >>> Why modify usb-hid-core: No need to modify driver by driver. > >> Because you cannot decide how every use should handle timeouts. > >> > >> Just fix up the driver that needs this. > > I think that if the device is left to errorneus state without > re-trying, it shows up to user very annoying. For example: > My mouse now has the problem with buttons: if i click left > button -> nothing may happen, and it is not functioning until > right button is pressed once. I make adaption to divide the > timeout by 100, and keep the try-loop in core. > > I dont have list all the drivers that needs this -> better fix at > one common place. No, that's precisely my point. You cannot force this behaviour onto every user of control requests. Different devices need different handling, that's why this must be per driver or possibly implemented as a device quirk as Jiri suggested. But we need a better description of the problem first. Is this an issue also during enumeration, or only after when you use your mouse? And exactly which control requests are failing here? Your example above doesn't seem to involve any such requests (only interrupt URB completions). > > I believe it will actually not be a particular driver, but perhaps a set > > of devices with b0rked USB implementation, and we could just introduce > > (another, oh well) per-device quirk list if needed. > > > > Do we have any idea / indication how many devices out there actually > > require this? > Well i'd say quite many. What do you base that on? Johan