Re: Usb hub fast plug/unplug issue

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

 



Hi Sarah, 
   Thx for reply.

1. This sounds like an issue similar to what Wang Chao is experiencing,
see http://marc.info/?l=linux-usb&m=131962188623590&w=2

Yes, it's a similar to Mr. Wang's issue.

2. 
Do you mean that you see the issue with device fast plug/unplug under a
USB 2.0 host controller as well, or just under the xHCI host controller?
Are you plugging and unplugging the USB 3.0 hub, or the devices attached
to the hub?

I have tested again, sorry it doesn't happen on USB2.0 host controller
only on xhci host, and very easy to reproduce. with or without device attached.

3. 
So the high speed portion of the hub has re-enumerated (although it does
get a transfer error for whatever reason), but the SuperSpeed portion of
the hub hasn't come back yet.

Yes

4.
I suspect the SuperSpeed portion of the hub isn't responding to the set
address control transfer, and the xHC never completes the Set Address
command.  There's a FIXME note in the driver in that code:

       /* FIXME: From section 4.3.4: "Software shall be responsible for timing
        * the SetAddress() "recovery interval" required by USB and aborting the
        * command on a timeout.
        */
       if (timeleft <= 0) {
               xhci_warn(xhci, "%s while waiting for a slot\n",
                               timeleft == 0 ? "Timeout" : "Signal");
               /* FIXME cancel the address device command */
               return -ETIME;
       }
So it's probably an xHCI driver bug.  I'll get you a patch to test next
week.

Thanks, i will try to record some PCIe trace as well to see if there's any 
important info on xhci side

Thanks!

--
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