Re: Weird USB hub port reset problem - hub go completely dead

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

 



On Fri, 7 Aug 2009, Cory Xie wrote:

> Hi experts,
> 
> I'm working on a customized USB stack in a RTOS. I got a weird USB hub
> problem and puzzled me for a month.
> The hub is using a cascaded two layer TI  TUSB2046B hub chips, which
> is said to have been used in the USB.org golden tree.
> The hub in question (745580 DIOHUB USB 3/3) can be found at:
> http://contra-brno.cz/html/Download/usb.pdf
> 
> The weird problem I encountered is described below:
> 
> When I attach two devices (a mouse and a keyboard) to the 2nd layer
> ports as below:
> 
> UHCI root hub -->TI hub layer 1
>                                       |->port 1
>                                       |->port 2
>                                       |->port 3
>                                       |->port 4 (internal) --->TI hub
> layer 2
> 
>   |->port 1--->mouse
> 
>   |->port 2--->keyboar
> 
>   |->port 3
> 
>   |->port 4 (internal)
> 
> And then trying to issue port reset to the two devices periodically,
> with an interval about 500ms(or less); the port reset in effect will
> simulate
> device disconnection and connection events. Normally, when the reset
> returns OK, we can anticipate a reset change to be reported soon, and
> we can proceed to handle the case just as a real device connection
> process. But after doing the test for some time, when one of the port
> reset
> returns OK (for example, port 1 for the mouse), there is no "port
> reset change" to be followed for that port reset. And when another
> port reset is
> issued to another port (for example, port 2 for the keyboard), the
> reset itself will return with STALL. And then, this hub seems
> "completely dead"!
> 
> At this time, if I switch (do not power off) the whole TI hub to
> Windows, the Windows is also not able to work with the hub
> (Unrecognized devices!)
> That is to say, the whole hub is not usable for any OS (I think even
> Linux can not make it back too, because it *seems* completely dead).
> The only
> way to make the hub back to life is to power off the hub and then
> power on it again (it is a self powered hub).
> 
> Some times, even the above reset passed, there may be another issue,
> that Get Port Status will not work. After the URB is submitted, the
> URB
> can never return. And in this case, it still seems the hub is dead as above.
> 
> Still some times, the Get Device Descriptor for the connected devices
> will also never return, and the hub seems also dead as above.
> 
> Does anyone out there has any similar problem with any hub? I am
> tearing my hair out!
> 
> Can anyone point me for a direction on what aspects to check for this
> kind of problem? We suspect our timing for the operation may not
> accurate, but that
> is really hard to tell which part to check for this kind of issue, so
> your suggestions are highly appreciated.

Maybe the problem isn't in your program but rather in the hub.  You 
should test your program with a different type of hub.

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