Weird USB hub port reset problem - hub go completely dead

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

 



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.

Thanks in advance,
Cory
--
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