TODO revision 1.29
11.1SaugustssSome things that need to be done in no particular order: 21.7Saugustss-------------------------------------------------------- 31.1Saugustss 41.11SaugustssAdd lots of bus_dmamap_sync(). 51.11Saugustss 61.2SaugustssDo bandwidth accounting. 71.2Saugustss 81.2SaugustssUse lock manager locks. 91.2Saugustss 101.5SaugustssUse the pool allocator for TDs et al. 111.5Saugustss 121.6SaugustssThrow out more USBDI gunk. 131.7Saugustss 141.13SaugustssMake hub driver notice transition between self and bus powered state. 151.21SaugustssSome hubs change the number of available ports on this transition. :( 161.7SaugustssHandle overcurrent conditions. 171.13Saugustss 181.13SaugustssMake it possible to open any device in a "generic" way, i.e., like ugen. 191.13Saugustss 201.13SaugustssRewrite mouse and keyboard driver to handle devices which use the 211.13Saugustssreport ID. One way would be to attach ums and ukbd to uhid. 221.13Saugustss 231.13SaugustssRotate the QHs for bulk transport to get fairer scheduling. 241.13Saugustss 251.13SaugustssChange HC drivers to queue multiple request for an endpoint 261.13Saugustssto get better performance. 271.13Saugustss 281.14SaugustssAdd isoc to OHCI driver. 291.14Saugustss 301.25SaugustssDo memory deallocation when HC driver is detached. 311.20Saugustss 321.14Saugustssuaudio problems: 331.14Saugustss mixer names are awful, use some heuristics. 341.14Saugustss implement selector units 351.14Saugustss implement input 361.14Saugustss test with more devices 371.15Saugustss 381.17SaugustssStylistic changes: 391.17Saugustss use usb_ and usbd_ consistently 401.17Saugustss rearrange the contents and names of some files (Nick) 411.17Saugustss 421.10SaugustssDocument device driver API. 431.10Saugustss 441.10SaugustssDocument HC driver API. 451.22Saugustss 461.28SaugustssHandle CLEAR_ENDPOINT_STALL centrally. 471.25Saugustss 481.25SaugustssUse splsoftusb() or a thread to deliver callbacks. 491.25Saugustss 501.25SaugustssAdd threads to the Ethernet drivers. 511.29Saugustss 521.29SaugustssChange what's done at watchdog timeout inb if_{a,c,k}ue.c; what we have 531.29Saugustssnow doesn't work because it's done in an interrupt context. 541.29Saugustss 55