tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
xhci current status
Hello,
Thanks to Nick, my xhci patches has been applied to nick-nhusb
branch.
I summarise current problems I found.
Some of them are ongoing to solve, about some of them I have no idea
why they happen.
------
+ HS hub in 3.0 hub under 3.0 port is disconnected and reconnected every
several minutes repeatedly.
I don't know what is culprit yet.
+ Detaching hubs or devices might cause panic.
Especially when the hub that hangs many devices is disconnected.
+ KASSERT(sc->sc_command_addr == 0) in xhci_do_command() may fail.
If two or more threads run xhci_do_command(), all of them except one
should be blocked at mutex_enter. But one of blocked thread can get
sc_lock with sc_command_addr != 0 when cv_timedwait() unlocks sc_lock.
+ usbd_clear_endpoint_stall{,_async}() does not work on xhci.
To clear stall condition, RESET_ENDPOINT command shall be issued priorly
on xhci. Currently this is achieved by running
xhci_clear_endpoint_stall_async() in xhci_handle_event() if
command complete code is STALL.
+ xhci.c cannot handle cross-64k transfer yet.
(It works anyway though.)
+ Aborting xfer is not implemented.
+ Power management is not implemented.
+ Isochronous transfer is not implemented.
+ Stream protocol is not supported.
+ Fresco1100 does not report CSC if the device is connected at boot.
Only PortResetChange is set in change bits.
uhub ignores ports without CSC bit, so cannot detect the device.
+ Conexant CX93010 umodem is not recognized (XACT in ADDRESS_DEVICE).
It can be recognized when many debug messages are printed on console
or under hubs.
Thank you,
--
t-hash
Home |
Main Index |
Thread Index |
Old Index