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