On Tue, Mar 19, 2024 at 12:54:37PM +0100, Jan Čermák wrote: > Hello Alan, > > On 16. 03. 24 21:35, Alan Stern wrote: > > Below is a patch meant to get the number of resets back to what it > > should be. I'd appreciate it if you can test this, and report the > > kernel log output along with the usbmon output for the normal case and > > also with the "old_scheme_first" parameter set. > > > > I'm not very hopeful that this will solve the problem, but there's a > > good chance it will help point us in the right direction by removing > > extraneous complications. > > unfortunately you were right, the problem is still unresolved with your > patch. I hope the traces will provide some new insights then. I get the strong impression that this device just takes a long time to initialize when it is plugged in. A lot longer than the current debounce time of 150 ms -- more like 2000 ms! The usbmon traces show the device disconnecting and reconnecting about 1500 ms after it is first plugged in, and then it starts working about 300-400 ms later. Try doing this: Keep the patch applied, but make the following changes in addition. In drivers/usb/core/hub.c, around line 128 the code says: #define HUB_DEBOUNCE_TIMEOUT 2000 #define HUB_DEBOUNCE_STEP 25 #define HUB_DEBOUNCE_STABLE 100 Change the HUB_DEBOUNCE_TIMEOUT value to 4500, the HUB_DEBOUNCE_STEP value to 250 and the HUB_DEBOUNCE_STABLE value to 2000. That just might give the device enough time to settle down and start working before the computer tries using it. This is not something we would want to do for ordinary kernels; it would cause new USB devices to be ignored for more than 2 seconds after they are plugged in, which would annoy many people. But if my theory is right, it may be what your device needs. Alan Stern