tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: xhci patch 20150623
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.
+ axen does not work after interface up -> down -> up.
When the interface goes down, axen driver closes both of RX and TX
pipes.
That causes transtion slot state of this device to ADDRESSED from
CONFIGURED.
+ xhci.c does not snoop SET_CONFIG request and does not transtion the
slot state to CONFIGURED from ADDRESSED even if SET_CONFIG is issued.
+ Isochronous transfer is not implemented.
+ Stream protocol is not supported.
+ Conexant CX93010 umodem is not recognized (XACT in ADDRESS_DEVICE).
It can be recognized by inserting 150ms delay before port reset
while enumeration.
+ usbd_clear_endpoint_stall{,_async}() does not work on xhci to clear
stall
condition because this function does not issue RESET_ENDPOINT command.
However, xhci.c detects whether xfer is stalled and issues
RESET_ENDPOINT
automatically.
+ Address of root hub is 0 (but it works anyway).
+ Not sure it work on big endian machines.
+ usbdevs(8) does not report correctly if num of ports > 16.
Size of udi_ports in struct usb_device_info should be
expanded from 16 to 256. Needs compat treatment.
(currently usbdevs is not part of nick-nhusb branch.)
I can change this :)
Nick
Home |
Main Index |
Thread Index |
Old Index