Some things that need to be done in no particular order: -------------------------------------------------------- Add lots of bus_dmamap_sync(). Do bandwidth accounting. Use lock manager locks. Use the pool allocator for TDs et al. Throw out more USBDI gunk. Make hub driver notice transition between self and bus powered state. Handle overcurrent conditions. Use a TD chain in ohci.c to allow transfers > 8K. Add an event mechanism to find out about attach and detach. Make it possible to open any device in a "generic" way, i.e., like ugen. Rewrite mouse and keyboard driver to handle devices which use the report ID. One way would be to attach ums and ukbd to uhid. Rotate the QHs for bulk transport to get fairer scheduling. Change HC drivers to queue multiple request for an endpoint to get better performance. Add generic ucom layer for serial adapters. Add isoc to OHCI driver. uaudio problems: mixer names are awful, use some heuristics. implement selector units implement input test with more devices Document device driver API. Document HC driver API.