Module Name: src
Committed By: mrg
Date: Sat Feb 25 07:59:03 UTC 2012
Added Files:
src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp
Log Message:
document the status of usbmp branch. major remaining tasks:
- port slhci, adm5120 usb and rump usb host controllers [*]
- implement usb_detach_wait/wakeup based upon cv/mutex [*]
- port drivers that use tsleep/wakeup to modern facilities
- port cdev/bdev drivers to D_MPSAFE
- update callouts to CALLOUT_MPSAFE
- test more devices [*]
only really more testing is necessary at this point, all the above
can be done after merging this code into -current. items marked
with [*] are planned to be done before this.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1.2.1 src/sys/dev/usb/TODO.usbmp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: src/sys/dev/usb/TODO.usbmp
diff -u /dev/null src/sys/dev/usb/TODO.usbmp:1.1.2.1
--- /dev/null Sat Feb 25 07:59:04 2012
+++ src/sys/dev/usb/TODO.usbmp Sat Feb 25 07:59:03 2012
@@ -0,0 +1,157 @@
+$NetBSD: TODO.usbmp,v 1.1.2.1 2012/02/25 07:59:03 mrg Exp $
+
+
+the majority of the USB MP device interface is documented in usbdivar.h.
+
+
+host controller porting:
+ - slhci
+ - arch/mips/adm5120/dev/ahci.c
+ - rump/dev/lib/libugenhc/ugenhc.c
+
+
+use /* XXXSMP ok */ markers for non-SMP-safe host controller driver uses.
+eg, "if (lock_ptr) mutex_enter(lock_ptr); else s = splusb();"
+
+
+add lots of asserts
+
+
+wakeup removal core:
+ - usb_detach_wait/wakeup() -> add a usb_detach_cvwait/broadcast() that
+ take a mutex
+
+
+convert uhidev users to MPSAFE:
+ ucycom(4)
+ - own cdevsw that isn't D_MPSAFE; need to check intr handlers
+
+ uhid(4)
+ - needs some locking here (not completely tested changes)
+
+ ukbd(4)
+ ums(4)
+ uts(4)
+ pbms(4)
+ - depends upon wscons? check intr
+
+ uyurex(4)
+ - sysmon -- hm?
+
+
+wakeup/tsleep drivers:
+ - if_otus.c
+ - if_upgt.c
+ - if_zyd.c
+ - ucom.c
+ - ucycom.c
+ - ugen.c
+ - uirda.c
+ - ulpt.c
+ - umass_isdata.c
+ - usb.c
+ - usb_subr.c
+ - ustir.c
+ - uthum.c
+ - utoppy.c
+ - uvscom.c
+ - uyurex.c
+
+
+missing D_MPSAFE drivers:
+ - ucom
+ - ucycom
+ - ugen
+ - uhso
+ - ulpt
+ - urio
+ - usb
+ - uscanner
+ - utoppy
+
+
+missing CALLOUT_MPSAFE drivers:
+ - if_aue
+ - if_axe
+ - if_cue
+ - if_otus
+ - if_rum
+ - if_udav
+ - if_upgt
+ - if_ural
+ - if_url
+ - if_zyd
+ - ohci
+ - uhci
+ - ukbd
+ - ulpt
+ - usbdi
+ - uyurex
+
+
+driver testing: STATUS
+ - uhub working
+ - uhid working, MPSAFE patches not yet fully tested
+ - uhidev working
+ - ums working
+ - uts
+ - ukbd working
+ - ucycom
+ - uep
+ - udl
+ - ulpt
+ - uhso ? (must take kernel lock for scsipi)
+ - umass working (must take kernel lock for scsipi)
+ - uaudio working
+ - umidi working
+ - uirda
+ - stuirda
+ - ustir
+ - irmce
+ - aue
+ - axe
+ - cdce
+ - cue
+ - kue
+ - udav
+ - url
+ - urndis
+ - atu
+ - otus
+ - ral
+ - rum
+ - upgt
+ - zyd
+ - upl
+ - uberry
+ - uipad
+ - urio
+ - uscanner ? (must take kernel lock for scsipi)
+ - usscanner
+ - utoppy
+ - uyap
+ - udsbr
+ - ugen
+ - pseye
+ - uvideo
+ - auvitek
+ - emdtv
+ - ubt
+ - aubtfwl
+ - u3ginit
+ucom attachments:
+ - umodem
+ - uark
+ - ubsa
+ - uchcom
+ - uftdi
+ - uipaq
+ - umct
+ - uplcom
+ - uslsa
+ - uvscom
+ - moscom
+ - uvisor
+ - ukyopon
+ - u3g
+ - ugensa