On Fri, 4 May 2018, Nazar Mokrynskyi wrote: > 03.05.18 23:20, Alan Stern пише: > > On Thu, 3 May 2018, Nazar Mokrynskyi wrote: > > > >> 03.05.18 22:16, Alan Stern пише: > >>> On Wed, 2 May 2018, Nazar Mokrynskyi wrote: > >>> > >>> As far as I know, hubs attached at boot time get initialized and > >>> handled in exactly the same way as hubs attached afterward. > >>> > >>> When a device is connected to a high-speed hub, the hardware in the hub > >>> is what determines the device's speed. Not the software in the kernel. > >>> The kernel just uses whatever speed the hub says to use. > >>> > >>> Have you tried a different brand of hub, to see if it makes any > >>> difference? > >>> > >>> Alan Stern > >>> > >> I had the same issue with different USB hub that was integrated into > >> monitor. It had additional power (current hub doesn't), but I don't > >> own that monitor anymore (I was using it when reported this issue > >> initially). > >> > >> There is definitely some difference, maybe related to powering USB > >> port at early stages of boot process, so that USB hub decides to run > >> devices attached to it at slower speed or something tricky like that. > > Or maybe it's a noise issue. > > > >> I've noticed that after boot manager (GRUB) gives control to Linux it > >> disconnect USB devices for a short time, but I'm not familiar with > >> how and why it happens. > > The kernel has to reset all the attached hardware, because it doesn't > > know what state the firmware or boot loader left the devices in. > > > > Anyway, perhaps you can work around this problem with a simple script > > that is set to run automatically, shortly after the system boots. The > > problem hub is 1-9, right? So the script needs to do this: > > > > echo 0 >/sys/bus/usb/devices/1-9/bConfigurationValue > > echo 1 >/sys/bus/usb/devices/1-9/bConfigurationValue > > > > That will do a soft reinit of the hub and all the devices attached to > > it. Hopefully the reinitialized sound card will run at high speed. > > > > Alan Stern > > Interestingly, soft reinit doesn't change anything. Sound card is again initialized at full-speed instead of high-speed. > > Here is some more information about hub and its devices specifically (including soft reinitialization): https://pastebin.com/DDgnWMQq You can try using the usbreset program from here: https://marc.info/?l=linux-usb&m=144820655510812&w=2 That program wants the usbfs pathname of the hub instead of the sysfs path. So you would call it with usbreset /dev/bus/usb/001/DDD where DDD is the hub's device number. You can get this number by reading the /sys/bus/usb/devices/1-0/devnum file, but the value has to be zero-padded to three digits. The usbreset program will send a bus reset to the hub, which is stronger than a soft reinit but not as strong as unplugging it and then plugging it back in. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html