Re: Sometimes USB 3.0 disk can't run in SuperSpeed in AMD XHCI controller [1022:7814]

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

 



On Wed, Apr 23, 2014 at 11:12 PM, Sarah Sharp
<sarah.a.sharp@xxxxxxxxxxxxxxx> wrote:
> On Wed, Apr 23, 2014 at 08:16:49AM +0800, Gavin Guo wrote:
>> Hi Sarah,
>>
>>
>> On Wed, Apr 23, 2014 at 7:57 AM, Sarah Sharp
>> <sarah.a.sharp@xxxxxxxxxxxxxxx> wrote:
>> >
>> > [Adding Mathias, who is the xHCI driver maintainer as of 3.15.]
>> >
>> > On Wed, Apr 23, 2014 at 07:23:43AM +0800, Gavin Guo wrote:
>> > > Hi Sarah,
>> > >
>> > > I found that in [AMD] FCH USB XHCI Controller [1022:7814]. The USB 3.0 disk
>> > > can't work in SuperSpeed after several times of hotplug. I've tested many
>> > > platforms having this XHCI controller [1022:7814] and found that some are
>> > > easy to duplicate some are hard.
>> > >
>> > > The log is attached. Let me shortly explain how I tested the platform:
>> > >
>> > > I used the 3.13 kernel and built the xhci_hcd as modules with
>> > > CONFIG_USB_DEBUG enabled. So, you will see a lot of messages in the booting
>> > > process. Then, I disabled the debug by dynamic debug mechanism using the
>> > > commands "echo '-p' > /sys/kernel/debug/dynamic_debugger/control" and
>> > > enabled only the xhci_hcd by "echo 'module xhci_hcd +p' >
>> > > /sys/kernel/debug/dynamic_debug/control." Finally, after 4 times of
>> > > hotplug, you can see the line "5582 Apr 22 18:34:59 u-HP-xx-xxxxxxxx-PC
>> > > kernel: [  282.130270] usb 3-1: new high-speed USB device number 5 using
>> > > xhci_hcd." The usb 3.0 disk is recognized as the high-speed.
>> >
>> > The xHCI hardware (host and device) link trains at either high speed or
>> > SuperSpeed.  Software has no control over that.  It's possible that
>> > there wasn't a good electrical connection at SuperSpeed, so the device
>> > was recognized at high speed, and wasn't able to link train at
>> > SuperSpeed when it was reset.
>> >
>> > I expect that some devices are better than others at link training.
>> > Some host controllers have better link training PHYs than others, so I
>> > would expect some host controllers to not be able to link train
>> > occasionally.  I also expect that changing the SuperSpeed cable might
>> > make a difference.
>> >
>> > Basically, this is not a software problem, it's probably a hardware
>> > issue.
>>
>>
>> We found that removing the xhci_hcd module and doing insmod again can
>> solve the problem. So, I'm thinking if it has the possibility to add
>> the fix as quriks in the code.
>
> That only helps because unloading and reloading the driver resets the
> host controller, which will cause the host to link train the port again.
> In the meantime, you disconnect all your other devices, which may
> include the USB hard drive with your boot partition.  That would be
> disastrous, and very user unfriendly.
>
> This is *not* the right fix, and I would not recommend Mathias take such
> a quirk patch.  Users with that particular USB device and host combo
> will just have to deal with it occasionally coming up as a high speed
> device.

I'm really appreciated for your patient reply. Totally agree with your analysis.

Thanks,
Gavin Guo
>
> Sarah Sharp
--
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