On Mon, Mar 11, 2024 at 10:58:18AM +0100, Jan Čermák wrote: > On 07. 03. 24 20:34, Alan Stern wrote: > > Another thing the traces showed is that the device doesn't like the > > "new" initialization scheme; it wants the "old" one. You can test > > this by setting the old_scheme_first module parameter for usbcore > > before plugging in the device: > > > > echo 1 >/sys/module/usbcore/parameters/old_scheme_first > > > > You are right, this indeed works and probing is successful after the > power-cycling attempt. Well, at least this means you do have a way of using the device, even if it is rather awkward. It might even work on the Raspberry Pi machine. > > Also, you can try the patch below (without the module parameter set). > > I suspect it should be applied in any case, but it would be nice to > > know if it makes any difference in your case. > > > > Index: usb-devel/drivers/usb/core/hub.c > > =================================================================== > > --- usb-devel.orig/drivers/usb/core/hub.c > > +++ usb-devel/drivers/usb/core/hub.c > > @@ -5481,6 +5481,7 @@ loop: > > msleep(2 * hub_power_on_good_delay(hub)); > > usb_hub_set_port_power(hdev, hub, port1, true); > > msleep(hub_power_on_good_delay(hub)); > > + hub_port_debounce_be_stable(hub, port1); > > } > > } > > if (hub->hdev->parent || > > Unfortunately, this doesn't fix it. It changes the log output a bit but > still does not enumerate: > > [ 199.295695] usb 1-1.2: new full-speed USB device number 25 using ehci-pci > [ 199.360684] usb 1-1.2: device descriptor read/64, error -32 > [ 199.534678] usb 1-1.2: device descriptor read/64, error -32 > [ 199.708671] usb 1-1.2: new full-speed USB device number 26 using ehci-pci > [ 199.773666] usb 1-1.2: device descriptor read/64, error -32 > [ 199.941602] usb 1-1.2: device descriptor read/64, error -32 > [ 200.044871] usb 1-1-port2: attempt power cycle > [ 200.528631] usb 1-1.2: new full-speed USB device number 27 using ehci-pci > [ 200.940603] usb 1-1.2: device not accepting address 27, error -32 > [ 201.208592] usb 1-1.2: new full-speed USB device number 28 using ehci-pci > [ 201.223783] usb 1-1.2: device descriptor read/8, error -32 > [ 201.345772] usb 1-1.2: device descriptor read/8, error -32 > [ 201.452899] usb 1-1-port2: unable to enumerate USB device > > I'm attaching usbmon traces with this patch. The device is so non-responsive, I'm amazed it ever works at all. Judging by the usbmon traces, it doesn't look as if it would work on a Windows system. Actually, if you have access to a computer running Windows or Mac OSX and you can try out the device on that computer, it would be good to get the equivalent of a usbmon trace (something like a Wireshark capture log would do). If those systems manage to do something that Linux doesn't, we ought to know what it is. Alan Stern