Re: USB regression for Android phone and sound card in 4.14

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux