xref: /netbsd-src/sys/dev/usb/TODO.usbmp (revision 82ad575716605df31379cf04a2f3efbc97b8a6f5)
1$NetBSD: TODO.usbmp,v 1.2 2012/06/10 06:15:53 mrg Exp $
2
3
4the majority of the USB MP device interface is documented in usbdivar.h.
5
6
7flesh out most of usbdi(9).
8
9
10host controllers needing to be ported:
11  - dev/ic/slhci.c
12  - arch/mips/adm5120/dev/ahci.c
13  - rump/dev/lib/libugenhc/ugenhc.c
14
15
16use /* XXXSMP ok */ markers for non-SMP-safe host controller driver uses.
17eg, "if (lock_ptr) mutex_enter(lock_ptr); else s = splusb();"
18
19
20add lots more asserts
21
22
23usb_event_thread() startup should use something to sync companions
24
25
26wake/wakeup conversion:
27  - usb_detach_waitold/wakeupold() -> usb_detach_wait/broadcast()
28  - drivers:
29      if_aue.c
30      if_axe.c
31      if_udav.c
32      if_url.c
33      ubt.c
34      ucom.c
35      ucycom.c
36      ugen.c		- done
37      uhid.c		- done
38      uhso.c
39      uirda.c
40      ulpt.c
41      umass.c		- done, partially done -- need to check umass_scsipi.c change
42      urio.c
43      uscanner.c
44      usscanner.c
45      ustir.c
46      utoppy.c
47
48
49use usb_delay_ms_locked() in places
50
51
52convert uhidev users to MPSAFE:
53  ucycom(4)
54  - own cdevsw that isn't D_MPSAFE; need to check intr handlers
55
56  uhid(4)
57  - needs some locking here (not completely tested changes)
58  - done
59
60  ukbd(4)
61  ums(4)
62  uts(4)
63  pbms(4)
64  - depends upon wscons? check intr
65
66  uyurex(4)
67  - sysmon -- hm?
68
69
70wakeup/tsleep drivers:
71  - if_otus.c
72  - if_upgt.c
73  - if_zyd.c
74  - ucom.c
75  - ucycom.c
76  - ugen.c		- done
77  - uirda.c
78  - ulpt.c
79  - umass_isdata.c
80  - ustir.c
81  - uthum.c
82  - utoppy.c
83  - uvscom.c
84  - uyurex.c
85
86
87missing D_MPSAFE drivers:
88  - ucom
89  - ucycom
90  - ugen		- partially ready
91  - uhso
92  - ulpt
93  - urio
94  - usb
95  - uscanner
96  - utoppy
97
98
99missing CALLOUT_MPSAFE drivers:
100  - if_aue
101  - if_axe
102  - if_cue
103  - if_otus
104  - if_rum
105  - if_run
106  - if_udav
107  - if_upgt
108  - if_ural
109  - if_url
110  - if_urtw
111  - if_urtwn
112  - if_zyd
113  - ukbd
114  - ulpt
115  - uyurex
116
117
118driver testing:		STATUS
119  - uhub		working
120  - uhid		working
121  - uhidev		working
122  - ums			working
123  - uts
124  - ukbd		working
125  - ucycom
126  - uep
127  - udl
128  - ulpt		attaches ok
129  - uhso		working (must take kernel lock for scsipi)
130  - umass		working (must take kernel lock for scsipi)
131  - uaudio		working
132  - umidi		working
133  - uirda
134  - stuirda
135  - ustir
136  - irmce
137  - aue
138  - axe			working
139  - cdce
140  - cue
141  - kue
142  - udav
143  - url
144  - urndis
145  - atu
146  - otus
147  - ral
148  - rum
149  - run
150  - urtw
151  - urtwn
152  - upgt
153  - zyd
154  - upl
155  - uberry
156  - uipad
157  - urio
158  - uscanner		? (must take kernel lock for scsipi)
159  - usscanner
160  - utoppy
161  - uyap
162  - udsbr
163  - ugen		mostly done
164  - pseye		working
165  - uvideo
166  - auvitek		? (must take kernel lock for scsipi)
167  - emdtv		? (must take kernel lock for scsipi)
168  - ubt			working (must take kernel lock for scsipi)
169  - aubtfwl
170  - u3ginit
171ucom attachments:
172  - umodem		working
173  - uark
174  - ubsa
175  - uchcom
176  - uftdi
177  - uipaq
178  - umct
179  - uplcom		attaches ok
180  - uslsa
181  - uvscom
182  - moscom
183  - uvisor
184  - ukyopon
185  - u3g
186  - ugensa
187