Module Name: src Committed By: mrg Date: Sun Jun 10 06:15:55 UTC 2012
Modified Files: src/sys/dev/ic: sl811hs.c src/sys/dev/pci: ehci_pci.c ohci_pci.c uhci_pci.c src/sys/dev/usb: ehci.c ehcivar.h ohci.c ohcivar.h uaudio.c ugen.c uhci.c uhcivar.h uhid.c uhidev.c uhidev.h ukbd.c umass.c umassvar.h umidi.c usb.c usb_mem.c usb_subr.c usbdi.c usbdi.h usbdi_util.c usbdi_util.h usbdivar.h utoppy.c src/sys/rump/dev/lib/libugenhc: ugenhc.c Added Files: src/sys/dev/usb: TODO.usbmp Log Message: merge the jmcneill-usbmp branch. many thanks to jared for the initial work, and every one else who has tested things for me. this is largely my fault at this point :-) the main changes are something like: - usbd_bus_methods{} gains a get_lock() to enable the host controller to provide a lock for the USB code. if the lock isn't provided, old-style protection is (partially) applied. - ehci/ohci/uhci have been converted to the new interfaces, including mutex/cv/etc conversion. - usbdivar.h contains a discussion about locking and what locks are held for which method calls. more to come for usbdi(9) here. - audio drivers (uaudio, umidi, auvitek) have been properly SMPified now that USB is ready. - scsi drivers have been modified to take the kernel lock explicitly before calling into scsi code. - usb pipes are associated with a lock, that is the same as the controller lock. (this could be split up further in the future.) - several usbfoo_locked() or usbfoo_unlocked() functions have been added to the usbdi(9) to enable functionality with or without the USB lock (per controller) already being held. the TODO.usbmp file has specific details on what is left to do, including what device-specific changes should be done now that the whole framework is ready. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/dev/ic/sl811hs.c cvs rdiff -u -r1.54 -r1.55 src/sys/dev/pci/ehci_pci.c \ src/sys/dev/pci/uhci_pci.c cvs rdiff -u -r1.49 -r1.50 src/sys/dev/pci/ohci_pci.c cvs rdiff -u -r0 -r1.2 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.189 -r1.190 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.39 -r1.40 src/sys/dev/usb/ehcivar.h cvs rdiff -u -r1.223 -r1.224 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.52 -r1.53 src/sys/dev/usb/ohcivar.h \ src/sys/dev/usb/usb_mem.c cvs rdiff -u -r1.132 -r1.133 src/sys/dev/usb/uaudio.c cvs rdiff -u -r1.119 -r1.120 src/sys/dev/usb/ugen.c cvs rdiff -u -r1.247 -r1.248 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.50 -r1.51 src/sys/dev/usb/uhcivar.h cvs rdiff -u -r1.87 -r1.88 src/sys/dev/usb/uhid.c cvs rdiff -u -r1.55 -r1.56 src/sys/dev/usb/uhidev.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/usb/uhidev.h cvs rdiff -u -r1.123 -r1.124 src/sys/dev/usb/ukbd.c cvs rdiff -u -r1.144 -r1.145 src/sys/dev/usb/umass.c cvs rdiff -u -r1.32 -r1.33 src/sys/dev/usb/umassvar.h cvs rdiff -u -r1.62 -r1.63 src/sys/dev/usb/umidi.c cvs rdiff -u -r1.129 -r1.130 src/sys/dev/usb/usb.c cvs rdiff -u -r1.181 -r1.182 src/sys/dev/usb/usb_subr.c cvs rdiff -u -r1.137 -r1.138 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.82 -r1.83 src/sys/dev/usb/usbdi.h cvs rdiff -u -r1.56 -r1.57 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.43 -r1.44 src/sys/dev/usb/usbdi_util.h cvs rdiff -u -r1.96 -r1.97 src/sys/dev/usb/usbdivar.h cvs rdiff -u -r1.19 -r1.20 src/sys/dev/usb/utoppy.c cvs rdiff -u -r1.9 -r1.10 src/sys/rump/dev/lib/libugenhc/ugenhc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.