On 06/23/15 07:43, takahiro hayashi wrote:
Hello,
Here is xhci patch for nick-nhusb branch.
nh-xhci-check.diff
+ Add port range check in xhci_rhpsc().
+ Add sanity check if xfer->ux_pipe != NULL in xhci_handle_event().
nh-xhci-prc.diff
+ Remove SET_FEATURE C_PORT_RESET(PRC) -- what would happen?
nh-xhci-methods1.diff
+ Sync return type of xhci_close_pipe() with return type of
upm_close method.
nh-xhci-abort.diff
+ Add routines for aborting xfer and command.
nh-xhci-comments.diff
+ Update comments.
nh-usb_subr.diff
+ Don't give up doing SET_CONFIG in usbd_set_config_index()
even if it fails to get BOS descriptor.
In this case ud_bdesc will be NULL.
Thanks, I'll look them over.
Known problems:
+ 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.
This is a general problem that has been around forever. I have a plan.
+ 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.
+ xhci.c cannot handle cross-64k transfer yet.
(It works anyway though.)
+ Power management is not implemented.
+ USB keyboard interaction is laggy and annoying.
Any idea why keyboard is laggy?
+ ASM1042 and some Intel PCH do not work at all.
No interrupts.
+ 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 devices.
+ SS part of asm107x hub under hudson2 xhci roothub is not recognized.
It drops Port Enable Disable (PED) bit after port reset.
rhpsc: 0x21203<CSC,PIC=0x0,XSPEED=0x4=SS,PP,PLS=0x0=U0,PED,CCS>
after reset: 0x6202c0<PLC,PRC,CSC,PIC=0x0,XSPEED=0x0=NONE,PP,PLS=0x6=SS_INA>
Not sure what you mean by "hudson2 xhci roothub" here.