CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: skrll Date: Tue Jun 5 19:42:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: Note ucycom as working. To generate a diff of this commit: cvs rdiff -u -r1.1.2.15 -r1.1.2.16 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.15 src/sys/dev/usb/TODO.usbmp:1.1.2.16 --- src/sys/dev/usb/TODO.usbmp:1.1.2.15 Sun Jun 3 09:34:04 2012 +++ src/sys/dev/usb/TODO.usbmp Tue Jun 5 19:42:02 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.15 2012/06/03 09:34:04 skrll Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.16 2012/06/05 19:42:02 skrll Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -119,7 +119,7 @@ driver testing: STATUS - ums working - uts - ukbd working - - ucycom + - ucycom working - uep - udl - ulpt attaches ok, MERGE ISSUE
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: skrll Date: Tue Jun 5 19:42:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: Note ucycom as working. To generate a diff of this commit: cvs rdiff -u -r1.1.2.15 -r1.1.2.16 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.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: skrll Date: Sun Jun 3 09:34:04 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: Note a working driver. To generate a diff of this commit: cvs rdiff -u -r1.1.2.14 -r1.1.2.15 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.14 src/sys/dev/usb/TODO.usbmp:1.1.2.15 --- src/sys/dev/usb/TODO.usbmp:1.1.2.14 Sat Jun 2 08:07:25 2012 +++ src/sys/dev/usb/TODO.usbmp Sun Jun 3 09:34:04 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.14 2012/06/02 08:07:25 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.15 2012/06/03 09:34:04 skrll Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -171,7 +171,7 @@ ucom attachments: - uipaq - umct - uplcom attaches ok - - uslsa + - uslsa working - uvscom - moscom - uvisor
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: skrll Date: Sun Jun 3 09:34:04 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: Note a working driver. To generate a diff of this commit: cvs rdiff -u -r1.1.2.14 -r1.1.2.15 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.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Jun 2 08:07:25 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp usbdi.c usbdi.h usbdi_util.c Log Message: convert usbd_{intr,bulk}_transfer() in the USBMP world: - add a new USBD_SYNCHRONOUS_SIG flag for transfers - in usbd_transfer(), if USBD_SYNCHRONOUS_SIG is set use cv_wait_sig() (or tlseep(xfer, PZERO|PATCH, ...) for the unconverted controllers) - add a usbd_sync_transfer_sig() front-end to usbd_transfer() - greatly simplify both usbd_{intr,bulk}_transfer() to just usbd_sync_transfer_sig() and usbd_get_xfer_status(). this fixes lockdebug issues where usbd_{intr,bulk}_transfer() where it taking the pipe lock, when usbd_transfer() would call functions that expect the pipe lock not to be taken (and try to taken it.) To generate a diff of this commit: cvs rdiff -u -r1.1.2.13 -r1.1.2.14 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.134.2.15 -r1.134.2.16 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.80.2.2 -r1.80.2.3 src/sys/dev/usb/usbdi.h cvs rdiff -u -r1.55.12.7 -r1.55.12.8 src/sys/dev/usb/usbdi_util.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.13 src/sys/dev/usb/TODO.usbmp:1.1.2.14 --- src/sys/dev/usb/TODO.usbmp:1.1.2.13 Sat May 12 21:30:07 2012 +++ src/sys/dev/usb/TODO.usbmp Sat Jun 2 08:07:25 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.13 2012/05/12 21:30:07 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.14 2012/06/02 08:07:25 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -155,7 +155,7 @@ driver testing: STATUS - uyap - udsbr - ugen mostly done, testing is a MERGE ISSUE - - pseye + - pseye working - uvideo - auvitek ? (must take kernel lock for scsipi) - emdtv ? (must take kernel lock for scsipi) Index: src/sys/dev/usb/usbdi.c diff -u src/sys/dev/usb/usbdi.c:1.134.2.15 src/sys/dev/usb/usbdi.c:1.134.2.16 --- src/sys/dev/usb/usbdi.c:1.134.2.15 Tue Mar 6 18:26:48 2012 +++ src/sys/dev/usb/usbdi.c Sat Jun 2 08:07:25 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi.c,v 1.134.2.15 2012/03/06 18:26:48 mrg Exp $ */ +/* $NetBSD: usbdi.c,v 1.134.2.16 2012/06/02 08:07:25 mrg Exp $ */ /* * Copyright (c) 1998, 2012 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: usbdi.c,v 1.134.2.15 2012/03/06 18:26:48 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: usbdi.c,v 1.134.2.16 2012/06/02 08:07:25 mrg Exp $); #include opt_compat_netbsd.h #include opt_usb.h @@ -322,10 +322,17 @@ usbd_transfer(usbd_xfer_handle xfer) if (pipe-device-bus-use_polling) panic(usbd_transfer: not done); - if (pipe-device-bus-lock) - cv_wait(xfer-cv, pipe-device-bus-lock); - else - tsleep(xfer, PRIBIO, usbsyn, 0); + if ((flags USBD_SYNCHRONOUS_SIG) != 0) { + if (pipe-device-bus-lock) +cv_wait_sig(xfer-cv, pipe-device-bus-lock); + else +tsleep(xfer, PZERO|PCATCH, usbsyn, 0); + } else { + if (pipe-device-bus-lock) +cv_wait(xfer-cv, pipe-device-bus-lock); + else +tsleep(xfer, PRIBIO, usbsyn, 0); + } } usbd_unlock_pipe(pipe); return (xfer-status); @@ -339,6 +346,14 @@ usbd_sync_transfer(usbd_xfer_handle xfer return (usbd_transfer(xfer)); } +/* Like usbd_transfer(), but waits for completion and listens for signals. */ +usbd_status +usbd_sync_transfer_sig(usbd_xfer_handle xfer) +{ + xfer-flags |= USBD_SYNCHRONOUS | USBD_SYNCHRONOUS_SIG; + return (usbd_transfer(xfer)); +} + void * usbd_alloc_buffer(usbd_xfer_handle xfer, u_int32_t size) { @@ -780,7 +795,7 @@ usb_transfer_complete(usbd_xfer_handle x #ifdef DIAGNOSTIC if (pipe == NULL) { - printf(usbd_transfer_cb: pipe==0, xfer=%p\n, xfer); + printf(usb_transfer_complete: pipe==0, xfer=%p\n, xfer); return; } #endif @@ -831,7 +846,7 @@ usb_transfer_complete(usbd_xfer_handle x xfer-done = 1; if (!xfer-status xfer-actlen xfer-length !(xfer-flags USBD_SHORT_XFER_OK)) { - DPRINTFN(-1,(usbd_transfer_cb: short transfer %d%d\n, + DPRINTFN(-1,(usb_transfer_complete: short transfer %d%d\n, xfer-actlen, xfer-length)); xfer-status = USBD_SHORT_XFER; } Index: src/sys/dev/usb/usbdi.h diff -u src/sys/dev/usb/usbdi.h:1.80.2.2 src/sys/dev/usb/usbdi.h:1.80.2.3 --- src/sys/dev/usb/usbdi.h:1.80.2.2 Sun Apr 29 23:05:02 2012 +++ src/sys/dev/usb/usbdi.h Sat Jun 2 08:07:25 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi.h,v 1.80.2.2 2012/04/29 23:05:02 mrg Exp $ */ +/* $NetBSD: usbdi.h,v 1.80.2.3 2012/06/02 08:07:25 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.18 1999/11/17 22:33:49 n_hibma Exp $ */ /* @@ -80,6 +80,8 @@ typedef void (*usbd_callback)(usbd_xfer_ #define USBD_SYNCHRONOUS 0x02 /* wait for completion */ /* in usb.h #define USBD_SHORT_XFER_OK 0x04*/ /* allow short reads */ #define USBD_FORCE_SHORT_XFER 0x08 /* force last short packet
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sat Jun 2 11:09:42 UTC 2012 Modified Files: src/sys/arch/acorn26/acorn26 [jmcneill-usbmp]: except.c irq.c machdep.c pmap.c src/sys/arch/acorn26/include [jmcneill-usbmp]: boot.h memcreg.h src/sys/arch/acorn26/iobus [jmcneill-usbmp]: ioc.c iocvar.h src/sys/arch/acorn26/ioc [jmcneill-usbmp]: if_eca.c if_ecavar.h latches.c latchvar.h ssn.c src/sys/arch/acorn26/podulebus [jmcneill-usbmp]: if_eh.c podulebus.c src/sys/arch/acorn26/stand/lib [jmcneill-usbmp]: riscoscalls.h src/sys/arch/acorn26/vidc [jmcneill-usbmp]: arcvideo.c vidcreg.h src/sys/arch/acorn32/acorn32 [jmcneill-usbmp]: rpc_machdep.c src/sys/arch/acorn32/eb7500atx [jmcneill-usbmp]: eb7500atx_machdep.c if_cs.c rsbus_io.c src/sys/arch/acorn32/include [jmcneill-usbmp]: podulebus_machdep.h src/sys/arch/acorn32/podulebus [jmcneill-usbmp]: if_ie.c if_ne_pbus.c netslot.c podulebus_io.c src/sys/arch/acorn32/stand/boot32 [jmcneill-usbmp]: boot32.c src/sys/arch/acorn32/stand/lib [jmcneill-usbmp]: riscoscalls.h riscospart.c src/sys/arch/acorn32/stand/nbfs [jmcneill-usbmp]: nbfs.c src/sys/arch/alpha/alpha [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/amd64 [jmcneill-usbmp]: machdep.c netbsd32_machdep.c process_machdep.c trap.c vector.S src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC files.amd64 src/sys/arch/amd64/include [jmcneill-usbmp]: frameasm.h mcontext.h vmparam.h src/sys/arch/amiga/conf [jmcneill-usbmp]: DRACO GENERIC GENERIC.in INSTALL files.amiga src/sys/arch/amiga/dev [jmcneill-usbmp]: if_ne_zbus.c src/sys/arch/amiga/include [jmcneill-usbmp]: bus.h pci_machdep.h src/sys/arch/arm/arm [jmcneill-usbmp]: cpufunc.c cpufunc_asm_arm11.S sig_machdep.c src/sys/arch/arm/arm32 [jmcneill-usbmp]: cpu.c src/sys/arch/arm/conf [jmcneill-usbmp]: Makefile.arm src/sys/arch/arm/imx [jmcneill-usbmp]: imxclock.c src/sys/arch/arm/include [jmcneill-usbmp]: armreg.h src/sys/arch/arm/iomd [jmcneill-usbmp]: iomd.c iomd_clock.c iomdiic.c iomdkbc.c iomdvar.h qms.c vidc20.c vidcaudio.c vidcvideo.c src/sys/arch/cesfic/include [jmcneill-usbmp]: bus.h src/sys/arch/evbarm/dev [jmcneill-usbmp]: plcom.c plcomreg.h plcomvar.h src/sys/arch/evbarm/ifpga [jmcneill-usbmp]: plcom_ifpga.c plcom_ifpgavar.h src/sys/arch/evbmips/conf [jmcneill-usbmp]: CPMBR1400 LOONGSON src/sys/arch/hp300/include [jmcneill-usbmp]: bus.h src/sys/arch/hp700/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hp700/dev [jmcneill-usbmp]: apic.c asp.c cpu.c dino.c lasi.c mongoose.c power.c siop_sgc.c wax.c src/sys/arch/hp700/gsc [jmcneill-usbmp]: gscbus.c gscbusvar.h src/sys/arch/hp700/hp700 [jmcneill-usbmp]: autoconf.c genassym.cf intr.c locore.S machdep.c mainbus.c src/sys/arch/hp700/include [jmcneill-usbmp]: Makefile cpu.h intr.h src/sys/arch/hppa/hppa [jmcneill-usbmp]: hppa_machdep.c src/sys/arch/hppa/include [jmcneill-usbmp]: cpufunc.h src/sys/arch/i386/conf [jmcneill-usbmp]: GENERIC files.i386 src/sys/arch/i386/i386 [jmcneill-usbmp]: machdep.c src/sys/arch/i386/include [jmcneill-usbmp]: vmparam.h src/sys/arch/i386/stand/lib [jmcneill-usbmp]: exec.c src/sys/arch/luna68k/include [jmcneill-usbmp]: bus.h src/sys/arch/m68k/m68k [jmcneill-usbmp]: sig_machdep.c src/sys/arch/macppc/dev [jmcneill-usbmp]: dbdma.c valkyriefb.c src/sys/arch/macppc/macppc [jmcneill-usbmp]: pic_heathrow.c src/sys/arch/mips/alchemy/dev [jmcneill-usbmp]: if_aumac.c src/sys/arch/mips/mips [jmcneill-usbmp]: cpu_subr.c netbsd32_machdep.c src/sys/arch/news68k/include [jmcneill-usbmp]: bus.h src/sys/arch/powerpc/booke [jmcneill-usbmp]: spe_subr.S trap.c src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3etsec.c pq3gpio.c src/sys/arch/powerpc/include [jmcneill-usbmp]: types.h userret.h src/sys/arch/powerpc/include/booke [jmcneill-usbmp]: etsecreg.h src/sys/arch/powerpc/oea [jmcneill-usbmp]: ofw_autoconf.c ofwoea_machdep.c src/sys/arch/powerpc/powerpc [jmcneill-usbmp]: sig_machdep.c src/sys/arch/powerpc/stand/mkbootimage [jmcneill-usbmp]: mkbootimage.c src/sys/arch/prep/stand/boot [jmcneill-usbmp]: Makefile boot.c boot.h conf.c devopen.c filesystem.c io.c version src/sys/arch/sandpoint/conf [jmcneill-usbmp]: KUROBOX src/sys/arch/sandpoint/sandpoint [jmcneill-usbmp]: autoconf.c iic_eumb.c satmgr.c src/sys/arch/sandpoint/stand/altboot [jmcneill-usbmp]: main.c src/sys/arch/sh3/sh3 [jmcneill-usbmp]: sh3_machdep.c
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Jun 2 21:19:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: umidi.c Log Message: remove a no longer relevant XXX SMP comment. To generate a diff of this commit: cvs rdiff -u -r1.53.2.6 -r1.53.2.7 src/sys/dev/usb/umidi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/umidi.c diff -u src/sys/dev/usb/umidi.c:1.53.2.6 src/sys/dev/usb/umidi.c:1.53.2.7 --- src/sys/dev/usb/umidi.c:1.53.2.6 Sat Jun 2 11:09:30 2012 +++ src/sys/dev/usb/umidi.c Sat Jun 2 21:19:02 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: umidi.c,v 1.53.2.6 2012/06/02 11:09:30 mrg Exp $ */ +/* $NetBSD: umidi.c,v 1.53.2.7 2012/06/02 21:19:02 mrg Exp $ */ /* * Copyright (c) 2001, 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: umidi.c,v 1.53.2.6 2012/06/02 11:09:30 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: umidi.c,v 1.53.2.7 2012/06/02 21:19:02 mrg Exp $); #include sys/types.h #include sys/param.h @@ -374,7 +374,6 @@ umidi_close(void *addr) if ((mididev-flags FREAD) mididev-in_jack) close_in_jack(mididev-in_jack); - /* XXX SMP */ mutex_spin_enter(mididev-sc-sc_lock); mididev-opened = 0;
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Jun 2 08:07:25 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp usbdi.c usbdi.h usbdi_util.c Log Message: convert usbd_{intr,bulk}_transfer() in the USBMP world: - add a new USBD_SYNCHRONOUS_SIG flag for transfers - in usbd_transfer(), if USBD_SYNCHRONOUS_SIG is set use cv_wait_sig() (or tlseep(xfer, PZERO|PATCH, ...) for the unconverted controllers) - add a usbd_sync_transfer_sig() front-end to usbd_transfer() - greatly simplify both usbd_{intr,bulk}_transfer() to just usbd_sync_transfer_sig() and usbd_get_xfer_status(). this fixes lockdebug issues where usbd_{intr,bulk}_transfer() where it taking the pipe lock, when usbd_transfer() would call functions that expect the pipe lock not to be taken (and try to taken it.) To generate a diff of this commit: cvs rdiff -u -r1.1.2.13 -r1.1.2.14 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.134.2.15 -r1.134.2.16 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.80.2.2 -r1.80.2.3 src/sys/dev/usb/usbdi.h cvs rdiff -u -r1.55.12.7 -r1.55.12.8 src/sys/dev/usb/usbdi_util.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sat Jun 2 11:09:42 UTC 2012 Modified Files: src/sys/arch/acorn26/acorn26 [jmcneill-usbmp]: except.c irq.c machdep.c pmap.c src/sys/arch/acorn26/include [jmcneill-usbmp]: boot.h memcreg.h src/sys/arch/acorn26/iobus [jmcneill-usbmp]: ioc.c iocvar.h src/sys/arch/acorn26/ioc [jmcneill-usbmp]: if_eca.c if_ecavar.h latches.c latchvar.h ssn.c src/sys/arch/acorn26/podulebus [jmcneill-usbmp]: if_eh.c podulebus.c src/sys/arch/acorn26/stand/lib [jmcneill-usbmp]: riscoscalls.h src/sys/arch/acorn26/vidc [jmcneill-usbmp]: arcvideo.c vidcreg.h src/sys/arch/acorn32/acorn32 [jmcneill-usbmp]: rpc_machdep.c src/sys/arch/acorn32/eb7500atx [jmcneill-usbmp]: eb7500atx_machdep.c if_cs.c rsbus_io.c src/sys/arch/acorn32/include [jmcneill-usbmp]: podulebus_machdep.h src/sys/arch/acorn32/podulebus [jmcneill-usbmp]: if_ie.c if_ne_pbus.c netslot.c podulebus_io.c src/sys/arch/acorn32/stand/boot32 [jmcneill-usbmp]: boot32.c src/sys/arch/acorn32/stand/lib [jmcneill-usbmp]: riscoscalls.h riscospart.c src/sys/arch/acorn32/stand/nbfs [jmcneill-usbmp]: nbfs.c src/sys/arch/alpha/alpha [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/amd64 [jmcneill-usbmp]: machdep.c netbsd32_machdep.c process_machdep.c trap.c vector.S src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC files.amd64 src/sys/arch/amd64/include [jmcneill-usbmp]: frameasm.h mcontext.h vmparam.h src/sys/arch/amiga/conf [jmcneill-usbmp]: DRACO GENERIC GENERIC.in INSTALL files.amiga src/sys/arch/amiga/dev [jmcneill-usbmp]: if_ne_zbus.c src/sys/arch/amiga/include [jmcneill-usbmp]: bus.h pci_machdep.h src/sys/arch/arm/arm [jmcneill-usbmp]: cpufunc.c cpufunc_asm_arm11.S sig_machdep.c src/sys/arch/arm/arm32 [jmcneill-usbmp]: cpu.c src/sys/arch/arm/conf [jmcneill-usbmp]: Makefile.arm src/sys/arch/arm/imx [jmcneill-usbmp]: imxclock.c src/sys/arch/arm/include [jmcneill-usbmp]: armreg.h src/sys/arch/arm/iomd [jmcneill-usbmp]: iomd.c iomd_clock.c iomdiic.c iomdkbc.c iomdvar.h qms.c vidc20.c vidcaudio.c vidcvideo.c src/sys/arch/cesfic/include [jmcneill-usbmp]: bus.h src/sys/arch/evbarm/dev [jmcneill-usbmp]: plcom.c plcomreg.h plcomvar.h src/sys/arch/evbarm/ifpga [jmcneill-usbmp]: plcom_ifpga.c plcom_ifpgavar.h src/sys/arch/evbmips/conf [jmcneill-usbmp]: CPMBR1400 LOONGSON src/sys/arch/hp300/include [jmcneill-usbmp]: bus.h src/sys/arch/hp700/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hp700/dev [jmcneill-usbmp]: apic.c asp.c cpu.c dino.c lasi.c mongoose.c power.c siop_sgc.c wax.c src/sys/arch/hp700/gsc [jmcneill-usbmp]: gscbus.c gscbusvar.h src/sys/arch/hp700/hp700 [jmcneill-usbmp]: autoconf.c genassym.cf intr.c locore.S machdep.c mainbus.c src/sys/arch/hp700/include [jmcneill-usbmp]: Makefile cpu.h intr.h src/sys/arch/hppa/hppa [jmcneill-usbmp]: hppa_machdep.c src/sys/arch/hppa/include [jmcneill-usbmp]: cpufunc.h src/sys/arch/i386/conf [jmcneill-usbmp]: GENERIC files.i386 src/sys/arch/i386/i386 [jmcneill-usbmp]: machdep.c src/sys/arch/i386/include [jmcneill-usbmp]: vmparam.h src/sys/arch/i386/stand/lib [jmcneill-usbmp]: exec.c src/sys/arch/luna68k/include [jmcneill-usbmp]: bus.h src/sys/arch/m68k/m68k [jmcneill-usbmp]: sig_machdep.c src/sys/arch/macppc/dev [jmcneill-usbmp]: dbdma.c valkyriefb.c src/sys/arch/macppc/macppc [jmcneill-usbmp]: pic_heathrow.c src/sys/arch/mips/alchemy/dev [jmcneill-usbmp]: if_aumac.c src/sys/arch/mips/mips [jmcneill-usbmp]: cpu_subr.c netbsd32_machdep.c src/sys/arch/news68k/include [jmcneill-usbmp]: bus.h src/sys/arch/powerpc/booke [jmcneill-usbmp]: spe_subr.S trap.c src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3etsec.c pq3gpio.c src/sys/arch/powerpc/include [jmcneill-usbmp]: types.h userret.h src/sys/arch/powerpc/include/booke [jmcneill-usbmp]: etsecreg.h src/sys/arch/powerpc/oea [jmcneill-usbmp]: ofw_autoconf.c ofwoea_machdep.c src/sys/arch/powerpc/powerpc [jmcneill-usbmp]: sig_machdep.c src/sys/arch/powerpc/stand/mkbootimage [jmcneill-usbmp]: mkbootimage.c src/sys/arch/prep/stand/boot [jmcneill-usbmp]: Makefile boot.c boot.h conf.c devopen.c filesystem.c io.c version src/sys/arch/sandpoint/conf [jmcneill-usbmp]: KUROBOX src/sys/arch/sandpoint/sandpoint [jmcneill-usbmp]: autoconf.c iic_eumb.c satmgr.c src/sys/arch/sandpoint/stand/altboot [jmcneill-usbmp]: main.c src/sys/arch/sh3/sh3 [jmcneill-usbmp]: sh3_machdep.c
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Jun 2 21:19:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: umidi.c Log Message: remove a no longer relevant XXX SMP comment. To generate a diff of this commit: cvs rdiff -u -r1.53.2.6 -r1.53.2.7 src/sys/dev/usb/umidi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat May 12 21:28:59 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ugen.c Log Message: port this to usbmp and also make it largely MPSAFE, but not yet enough for D_MPSAFE to be added. should be merge-ready now, but needs testing. To generate a diff of this commit: cvs rdiff -u -r1.114.2.4 -r1.114.2.5 src/sys/dev/usb/ugen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ugen.c diff -u src/sys/dev/usb/ugen.c:1.114.2.4 src/sys/dev/usb/ugen.c:1.114.2.5 --- src/sys/dev/usb/ugen.c:1.114.2.4 Sun Apr 29 23:05:01 2012 +++ src/sys/dev/usb/ugen.c Sat May 12 21:28:58 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ugen.c,v 1.114.2.4 2012/04/29 23:05:01 mrg Exp $ */ +/* $NetBSD: ugen.c,v 1.114.2.5 2012/05/12 21:28:58 mrg Exp $ */ /* * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ugen.c,v 1.114.2.4 2012/04/29 23:05:01 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ugen.c,v 1.114.2.5 2012/05/12 21:28:58 mrg Exp $); #include opt_compat_netbsd.h @@ -108,12 +108,17 @@ struct ugen_endpoint { void *dmabuf; u_int16_t sizes[UGEN_NISORFRMS]; } isoreqs[UGEN_NISOREQS]; + /* Keep this last; we don't overwrite it in ugen_set_config() */ + kcondvar_t cv; }; struct ugen_softc { device_t sc_dev; /* base device */ usbd_device_handle sc_udev; + kmutex_t sc_lock; + kcondvar_t sc_detach_cv; + char sc_is_open[USB_MAX_ENDPOINTS]; struct ugen_endpoint sc_endpoints[USB_MAX_ENDPOINTS][2]; #define OUT 0 @@ -201,6 +206,9 @@ ugen_attach(device_t parent, device_t se aprint_naive(\n); aprint_normal(\n); + mutex_init(sc-sc_lock, MUTEX_DEFAULT, IPL_USB); + cv_init(sc-sc_detach_cv, ugendet); + devinfop = usbd_devinfo_alloc(uaa-device, 0); aprint_normal_dev(self, %s\n, devinfop); usbd_devinfo_free(devinfop); @@ -233,6 +241,7 @@ ugen_attach(device_t parent, device_t se sce = sc-sc_endpoints[i][dir]; selinit(sce-rsel); + cv_init(sce-cv, ugensce); } } @@ -256,7 +265,7 @@ ugen_set_config(struct ugen_softc *sc, i u_int8_t niface, nendpt; int ifaceno, endptno, endpt; usbd_status err; - int dir; + int dir, i; DPRINTFN(1,(ugen_set_config: %s to configno %d, sc=%p\n, device_xname(sc-sc_dev), configno, sc)); @@ -284,7 +293,15 @@ ugen_set_config(struct ugen_softc *sc, i err = usbd_interface_count(dev, niface); if (err) return (err); - memset(sc-sc_endpoints, 0, sizeof sc-sc_endpoints); + + /* Clear out the old info, but leave the cv initialised. */ + for (i = 0; i USB_MAX_ENDPOINTS; i++) { + for (dir = OUT; dir = IN; dir++) { + sce = sc-sc_endpoints[i][dir]; + memset(sce, 0, offsetof(struct ugen_endpoint, cv)); + } + } + for (ifaceno = 0; ifaceno niface; ifaceno++) { DPRINTFN(1,(ugen_set_config: ifaceno %d\n, ifaceno)); err = usbd_device2interface_handle(dev, ifaceno, iface); @@ -537,7 +554,6 @@ ugen_do_read(struct ugen_softc *sc, int u_int32_t n, tn; usbd_xfer_handle xfer; usbd_status err; - int s; int error = 0; DPRINTFN(5, (%s: ugenread: %d\n, device_xname(sc-sc_dev), endpt)); @@ -562,15 +578,17 @@ ugen_do_read(struct ugen_softc *sc, int switch (sce-edesc-bmAttributes UE_XFERTYPE) { case UE_INTERRUPT: /* Block until activity occurred. */ - s = splusb(); + mutex_enter(sc-sc_lock); while (sce-q.c_cc == 0) { if (flag IO_NDELAY) { -splx(s); +mutex_exit(sc-sc_lock); return (EWOULDBLOCK); } sce-state |= UGEN_ASLP; DPRINTFN(5, (ugenread: sleep on %p\n, sce)); - error = tsleep(sce, PZERO | PCATCH, ugenri, mstohz(sce-timeout)); + /* ugenri */ + error = cv_timedwait_sig(sce-cv, sc-sc_lock, + mstohz(sce-timeout)); DPRINTFN(5, (ugenread: woke, error=%d\n, error)); if (sc-sc_dying) error = EIO; @@ -579,7 +597,7 @@ ugen_do_read(struct ugen_softc *sc, int break; } } - splx(s); + mutex_exit(sc-sc_lock); /* Transfer as many chunks as possible. */ while (sce-q.c_cc 0 uio-uio_resid 0 !error) { @@ -603,9 +621,9 @@ ugen_do_read(struct ugen_softc *sc, int uio-uio_resid, sce-ra_wb_used)); xfer = sce-ra_wb_xfer; - s = splusb(); + mutex_enter(sc-sc_lock); if (sce-ra_wb_used == 0 flag IO_NDELAY) { -splx(s); +mutex_exit(sc-sc_lock); return (EWOULDBLOCK); } while (uio-uio_resid 0 !error) { @@ -614,8 +632,9 @@ ugen_do_read(struct ugen_softc *sc, int DPRINTFN(5, (ugenread: sleep on %p\n, sce)); - error = tsleep(sce, PZERO | PCATCH, - ugenrb, mstohz(sce-timeout)); + /* ugenrb */ + error = cv_timedwait_sig(sce-cv, + sc-sc_lock, mstohz(sce-timeout)); DPRINTFN(5, (ugenread: woke, error=%d\n, error)); @@ -667,7 +686,7 @@ ugen_do_read(struct ugen_softc *sc, int sce-state |= UGEN_RA_WB_STOP; } } -
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat May 12 21:30:07 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: update: - ugen is done, needs testing - umass has an issue - uhid is done - 2 network cards have been tested To generate a diff of this commit: cvs rdiff -u -r1.1.2.12 -r1.1.2.13 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.12 src/sys/dev/usb/TODO.usbmp:1.1.2.13 --- src/sys/dev/usb/TODO.usbmp:1.1.2.12 Mon Apr 30 02:41:02 2012 +++ src/sys/dev/usb/TODO.usbmp Sat May 12 21:30:07 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.12 2012/04/30 02:41:02 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.13 2012/05/12 21:30:07 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -33,12 +33,12 @@ wake/wakeup conversion: ubt.c ucom.c ucycom.c - ugen.c + ugen.c - done uhid.c - done uhso.c uirda.c ulpt.c - umass.c - done, partially done + umass.c - done, partially done -- need to check umass_scsipi.c change urio.c uscanner.c usscanner.c @@ -55,7 +55,7 @@ convert uhidev users to MPSAFE: uhid(4) - needs some locking here (not completely tested changes) - - MERGE ISSUE + - done ukbd(4) ums(4) @@ -73,7 +73,7 @@ wakeup/tsleep drivers: - if_zyd.c - ucom.c - ucycom.c - - ugen.c + - ugen.c - done - uirda.c - ulpt.c - umass_isdata.c @@ -87,7 +87,7 @@ wakeup/tsleep drivers: missing D_MPSAFE drivers: - ucom - ucycom - - ugen + - ugen - partially ready - uhso - ulpt - urio @@ -154,7 +154,7 @@ driver testing: STATUS - utoppy - uyap - udsbr - - ugen MERGE ISSUE + - ugen mostly done, testing is a MERGE ISSUE - pseye - uvideo - auvitek ? (must take kernel lock for scsipi) @@ -178,6 +178,3 @@ ucom attachments: - ukyopon - u3g - ugensa - - -test two metwork cards. MERGE ISSUE
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat May 12 21:28:59 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ugen.c Log Message: port this to usbmp and also make it largely MPSAFE, but not yet enough for D_MPSAFE to be added. should be merge-ready now, but needs testing. To generate a diff of this commit: cvs rdiff -u -r1.114.2.4 -r1.114.2.5 src/sys/dev/usb/ugen.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat May 12 21:30:07 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: update: - ugen is done, needs testing - umass has an issue - uhid is done - 2 network cards have been tested To generate a diff of this commit: cvs rdiff -u -r1.1.2.12 -r1.1.2.13 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.
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sun Apr 29 23:05:10 UTC 2012 Modified Files: src/sys/arch/amd64/acpi [jmcneill-usbmp]: acpi_wakecode.S src/sys/arch/amd64/amd64 [jmcneill-usbmp]: genassym.cf locore.S machdep.c mptramp.S vector.S src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC XEN3_DOM0 src/sys/arch/amd64/include [jmcneill-usbmp]: param.h src/sys/arch/amiga/amiga [jmcneill-usbmp]: autoconf.c src/sys/arch/amiga/conf [jmcneill-usbmp]: DRACO GENERIC GENERIC.in INSTALL files.amiga src/sys/arch/amiga/dev [jmcneill-usbmp]: if_ne_zbus.c src/sys/arch/arm/imx [jmcneill-usbmp]: files.imx51 imx31_clock.c imx51_axi.c imx51_clock.c imx51_iomux.c imx51_iomuxreg.h imx51reg.h imxclock.c imxclockvar.h imxepitreg.h src/sys/arch/evbarm/conf [jmcneill-usbmp]: ADI_BRH ARMADILLO210 ARMADILLO9 BEAGLEBOARD CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200 LUBBOCK MMNET_GENERIC MPCSA_GENERIC NAPPI NETWALKER NETWALKER_MD NSLU2 OSK5912 OVERO SMDK2410 SMDK2800 TEAMASA_NPWR TEAMASA_NPWR_FC TISDP2420 TISDP2430 TS7200 TWINTAIL VIPER ZAO425 files.netwalker std.netwalker src/sys/arch/evbarm/dev [jmcneill-usbmp]: plcom.c plcomreg.h src/sys/arch/evbarm/netwalker [jmcneill-usbmp]: netwalker_machdep.c netwalker_usb.c src/sys/arch/evbppc/obs405 [jmcneill-usbmp]: rbus_machdep.c src/sys/arch/hp700/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hp700/dev [jmcneill-usbmp]: apic.c cpu.c ssio.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: locore.S machdep.c src/sys/arch/hppa/hppa [jmcneill-usbmp]: fpu.c trap.S trap.c src/sys/arch/i386/acpi [jmcneill-usbmp]: acpi_wakecode.S src/sys/arch/i386/conf [jmcneill-usbmp]: ALL GENERIC XEN3_DOM0 src/sys/arch/i386/i386 [jmcneill-usbmp]: compat_16_machdep.c genassym.cf locore.S mptramp.S src/sys/arch/i386/include [jmcneill-usbmp]: param.h src/sys/arch/ia64/conf [jmcneill-usbmp]: GENERIC GENERIC.SKI src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3etsec.c src/sys/arch/powerpc/include [jmcneill-usbmp]: cpu.h src/sys/arch/sandpoint/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sandpoint/sandpoint [jmcneill-usbmp]: satmgr.c src/sys/arch/sandpoint/stand/altboot [jmcneill-usbmp]: README.altboot brdsetup.c dsk.c globals.h main.c src/sys/arch/sparc/sparc [jmcneill-usbmp]: intr.c machdep.c src/sys/arch/sparc64/dev [jmcneill-usbmp]: ffb.c gfb.c src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: trap.c src/sys/arch/x68k/conf [jmcneill-usbmp]: GENERIC INSTALL files.x68k majors.x68k src/sys/arch/x68k/stand [jmcneill-usbmp]: Makefile src/sys/arch/x68k/stand/mboot [jmcneill-usbmp]: mboot.c src/sys/arch/x68k/x68k [jmcneill-usbmp]: autoconf.c locore.s vectors.s src/sys/arch/x86/acpi [jmcneill-usbmp]: acpi_wakeup.c src/sys/arch/x86/include [jmcneill-usbmp]: cpu.h cpuvar.h pmap.h psl.h specialreg.h src/sys/arch/x86/pci [jmcneill-usbmp]: amdtemp.c files.pci pchb.c pchbvar.h pcib.c src/sys/arch/x86/x86 [jmcneill-usbmp]: cpu.c errata.c mtrr_i686.c pmap.c pmap_tlb.c src/sys/arch/xen/include [jmcneill-usbmp]: xenpmap.h src/sys/arch/xen/x86 [jmcneill-usbmp]: cpu.c x86_xpmap.c xen_pmap.c src/sys/arch/xen/xen [jmcneill-usbmp]: hypervisor.c src/sys/arch/zaurus/conf [jmcneill-usbmp]: GENERIC INSTALL src/sys/coda [jmcneill-usbmp]: coda_psdev.c coda_subr.c coda_venus.c coda_vfsops.c coda_vnops.c coda_vnops.h src/sys/compat/netbsd32 [jmcneill-usbmp]: netbsd32.h netbsd32_execve.c netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_sysent.c syscalls.master src/sys/conf [jmcneill-usbmp]: files src/sys/ddb [jmcneill-usbmp]: db_command.c src/sys/dev [jmcneill-usbmp]: DEVNAMES audio.c midi.c midi_if.h midisyn.c midisynvar.h rndpseudo.c sequencer.c src/sys/dev/acpi [jmcneill-usbmp]: acpi.c acpi_cpu.h acpi_cpu_tstate.c src/sys/dev/acpi/acpica [jmcneill-usbmp]: OsdMemory.c src/sys/dev/ata [jmcneill-usbmp]: ata.c src/sys/dev/cardbus [jmcneill-usbmp]: files.cardbus src/sys/dev/dkwedge [jmcneill-usbmp]: dk.c dkwedge_mbr.c src/sys/dev/i2c [jmcneill-usbmp]: dbcool.c i2c_exec.c i2c_io.h src/sys/dev/ic [jmcneill-usbmp]: ahcisata_core.c bwi.c bwivar.h com.c mvsata.c opl.c oplvar.h siisata.c src/sys/dev/ieee1394 [jmcneill-usbmp]: firewire.c firewirereg.h fwdev.c fwmem.c fwohcivar.h if_fwip.c src/sys/dev/isa [jmcneill-usbmp]: cms.c midi_pcppi.c opl_ess.c
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Apr 30 02:41:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: note that axe(4) works. thanks jdc@! To generate a diff of this commit: cvs rdiff -u -r1.1.2.11 -r1.1.2.12 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.11 src/sys/dev/usb/TODO.usbmp:1.1.2.12 --- src/sys/dev/usb/TODO.usbmp:1.1.2.11 Sat Apr 14 23:11:02 2012 +++ src/sys/dev/usb/TODO.usbmp Mon Apr 30 02:41:02 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.11 2012/04/14 23:11:02 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.12 2012/04/30 02:41:02 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -132,7 +132,7 @@ driver testing: STATUS - ustir - irmce - aue - - axe + - axe working - cdce - cue - kue
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sun Apr 29 23:05:10 UTC 2012 Modified Files: src/sys/arch/amd64/acpi [jmcneill-usbmp]: acpi_wakecode.S src/sys/arch/amd64/amd64 [jmcneill-usbmp]: genassym.cf locore.S machdep.c mptramp.S vector.S src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC XEN3_DOM0 src/sys/arch/amd64/include [jmcneill-usbmp]: param.h src/sys/arch/amiga/amiga [jmcneill-usbmp]: autoconf.c src/sys/arch/amiga/conf [jmcneill-usbmp]: DRACO GENERIC GENERIC.in INSTALL files.amiga src/sys/arch/amiga/dev [jmcneill-usbmp]: if_ne_zbus.c src/sys/arch/arm/imx [jmcneill-usbmp]: files.imx51 imx31_clock.c imx51_axi.c imx51_clock.c imx51_iomux.c imx51_iomuxreg.h imx51reg.h imxclock.c imxclockvar.h imxepitreg.h src/sys/arch/evbarm/conf [jmcneill-usbmp]: ADI_BRH ARMADILLO210 ARMADILLO9 BEAGLEBOARD CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200 LUBBOCK MMNET_GENERIC MPCSA_GENERIC NAPPI NETWALKER NETWALKER_MD NSLU2 OSK5912 OVERO SMDK2410 SMDK2800 TEAMASA_NPWR TEAMASA_NPWR_FC TISDP2420 TISDP2430 TS7200 TWINTAIL VIPER ZAO425 files.netwalker std.netwalker src/sys/arch/evbarm/dev [jmcneill-usbmp]: plcom.c plcomreg.h src/sys/arch/evbarm/netwalker [jmcneill-usbmp]: netwalker_machdep.c netwalker_usb.c src/sys/arch/evbppc/obs405 [jmcneill-usbmp]: rbus_machdep.c src/sys/arch/hp700/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hp700/dev [jmcneill-usbmp]: apic.c cpu.c ssio.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: locore.S machdep.c src/sys/arch/hppa/hppa [jmcneill-usbmp]: fpu.c trap.S trap.c src/sys/arch/i386/acpi [jmcneill-usbmp]: acpi_wakecode.S src/sys/arch/i386/conf [jmcneill-usbmp]: ALL GENERIC XEN3_DOM0 src/sys/arch/i386/i386 [jmcneill-usbmp]: compat_16_machdep.c genassym.cf locore.S mptramp.S src/sys/arch/i386/include [jmcneill-usbmp]: param.h src/sys/arch/ia64/conf [jmcneill-usbmp]: GENERIC GENERIC.SKI src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3etsec.c src/sys/arch/powerpc/include [jmcneill-usbmp]: cpu.h src/sys/arch/sandpoint/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sandpoint/sandpoint [jmcneill-usbmp]: satmgr.c src/sys/arch/sandpoint/stand/altboot [jmcneill-usbmp]: README.altboot brdsetup.c dsk.c globals.h main.c src/sys/arch/sparc/sparc [jmcneill-usbmp]: intr.c machdep.c src/sys/arch/sparc64/dev [jmcneill-usbmp]: ffb.c gfb.c src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: trap.c src/sys/arch/x68k/conf [jmcneill-usbmp]: GENERIC INSTALL files.x68k majors.x68k src/sys/arch/x68k/stand [jmcneill-usbmp]: Makefile src/sys/arch/x68k/stand/mboot [jmcneill-usbmp]: mboot.c src/sys/arch/x68k/x68k [jmcneill-usbmp]: autoconf.c locore.s vectors.s src/sys/arch/x86/acpi [jmcneill-usbmp]: acpi_wakeup.c src/sys/arch/x86/include [jmcneill-usbmp]: cpu.h cpuvar.h pmap.h psl.h specialreg.h src/sys/arch/x86/pci [jmcneill-usbmp]: amdtemp.c files.pci pchb.c pchbvar.h pcib.c src/sys/arch/x86/x86 [jmcneill-usbmp]: cpu.c errata.c mtrr_i686.c pmap.c pmap_tlb.c src/sys/arch/xen/include [jmcneill-usbmp]: xenpmap.h src/sys/arch/xen/x86 [jmcneill-usbmp]: cpu.c x86_xpmap.c xen_pmap.c src/sys/arch/xen/xen [jmcneill-usbmp]: hypervisor.c src/sys/arch/zaurus/conf [jmcneill-usbmp]: GENERIC INSTALL src/sys/coda [jmcneill-usbmp]: coda_psdev.c coda_subr.c coda_venus.c coda_vfsops.c coda_vnops.c coda_vnops.h src/sys/compat/netbsd32 [jmcneill-usbmp]: netbsd32.h netbsd32_execve.c netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_sysent.c syscalls.master src/sys/conf [jmcneill-usbmp]: files src/sys/ddb [jmcneill-usbmp]: db_command.c src/sys/dev [jmcneill-usbmp]: DEVNAMES audio.c midi.c midi_if.h midisyn.c midisynvar.h rndpseudo.c sequencer.c src/sys/dev/acpi [jmcneill-usbmp]: acpi.c acpi_cpu.h acpi_cpu_tstate.c src/sys/dev/acpi/acpica [jmcneill-usbmp]: OsdMemory.c src/sys/dev/ata [jmcneill-usbmp]: ata.c src/sys/dev/cardbus [jmcneill-usbmp]: files.cardbus src/sys/dev/dkwedge [jmcneill-usbmp]: dk.c dkwedge_mbr.c src/sys/dev/i2c [jmcneill-usbmp]: dbcool.c i2c_exec.c i2c_io.h src/sys/dev/ic [jmcneill-usbmp]: ahcisata_core.c bwi.c bwivar.h com.c mvsata.c opl.c oplvar.h siisata.c src/sys/dev/ieee1394 [jmcneill-usbmp]: firewire.c firewirereg.h fwdev.c fwmem.c fwohcivar.h if_fwip.c src/sys/dev/isa [jmcneill-usbmp]: cms.c midi_pcppi.c opl_ess.c
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Apr 30 02:41:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: note that axe(4) works. thanks jdc@! To generate a diff of this commit: cvs rdiff -u -r1.1.2.11 -r1.1.2.12 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.
CVS commit: [jmcneill-usbmp] src/sys/dev
Module Name:src Committed By: mrg Date: Mon Apr 30 02:42:32 UTC 2012 Modified Files: src/sys/dev [jmcneill-usbmp]: audio.c Log Message: pullup audio.c 1.261: audio_clear() locking fixes To generate a diff of this commit: cvs rdiff -u -r1.255.2.4 -r1.255.2.5 src/sys/dev/audio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/external/bsd/ipf/netinet
Module Name:src Committed By: joerg Date: Tue Apr 17 19:25:23 UTC 2012 Added Files: src/sys/external/bsd/ipf/netinet [jmcneill-usbmp]: fil.c ip_auth.c ip_auth.h ip_compat.h ip_dns_pxy.c ip_dstlist.c ip_dstlist.h ip_fil.h ip_fil_compat.c ip_fil_netbsd.c ip_frag.c ip_frag.h ip_ftp_pxy.c ip_h323_pxy.c ip_htable.c ip_htable.h ip_ipsec_pxy.c ip_irc_pxy.c ip_log.c ip_lookup.c ip_lookup.h ip_nat.c ip_nat.h ip_nat6.c ip_netbios_pxy.c ip_pool.c ip_pool.h ip_pptp_pxy.c ip_proxy.c ip_proxy.h ip_raudio_pxy.c ip_rcmd_pxy.c ip_rpcb_pxy.c ip_scan.c ip_scan.h ip_state.c ip_state.h ip_sync.c ip_sync.h ip_tftp_pxy.c ipf_rb.h ipl.h radix_ipf.c radix_ipf.h Log Message: Re-add new ipf on the jmcneill-usbmp branch. To generate a diff of this commit: cvs rdiff -u -r0 -r1.2.2.2 src/sys/external/bsd/ipf/netinet/fil.c \ src/sys/external/bsd/ipf/netinet/ip_auth.c \ src/sys/external/bsd/ipf/netinet/ip_auth.h \ src/sys/external/bsd/ipf/netinet/ip_compat.h \ src/sys/external/bsd/ipf/netinet/ip_dns_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_dstlist.c \ src/sys/external/bsd/ipf/netinet/ip_dstlist.h \ src/sys/external/bsd/ipf/netinet/ip_fil.h \ src/sys/external/bsd/ipf/netinet/ip_fil_compat.c \ src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c \ src/sys/external/bsd/ipf/netinet/ip_frag.c \ src/sys/external/bsd/ipf/netinet/ip_frag.h \ src/sys/external/bsd/ipf/netinet/ip_ftp_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_htable.c \ src/sys/external/bsd/ipf/netinet/ip_htable.h \ src/sys/external/bsd/ipf/netinet/ip_ipsec_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_irc_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_log.c \ src/sys/external/bsd/ipf/netinet/ip_lookup.c \ src/sys/external/bsd/ipf/netinet/ip_lookup.h \ src/sys/external/bsd/ipf/netinet/ip_nat.c \ src/sys/external/bsd/ipf/netinet/ip_nat.h \ src/sys/external/bsd/ipf/netinet/ip_nat6.c \ src/sys/external/bsd/ipf/netinet/ip_netbios_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_pool.c \ src/sys/external/bsd/ipf/netinet/ip_pool.h \ src/sys/external/bsd/ipf/netinet/ip_pptp_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_proxy.c \ src/sys/external/bsd/ipf/netinet/ip_proxy.h \ src/sys/external/bsd/ipf/netinet/ip_raudio_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_rcmd_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_rpcb_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_scan.c \ src/sys/external/bsd/ipf/netinet/ip_scan.h \ src/sys/external/bsd/ipf/netinet/ip_state.c \ src/sys/external/bsd/ipf/netinet/ip_state.h \ src/sys/external/bsd/ipf/netinet/ip_sync.c \ src/sys/external/bsd/ipf/netinet/ip_sync.h \ src/sys/external/bsd/ipf/netinet/ip_tftp_pxy.c \ src/sys/external/bsd/ipf/netinet/ipf_rb.h \ src/sys/external/bsd/ipf/netinet/ipl.h \ src/sys/external/bsd/ipf/netinet/radix_ipf.c \ src/sys/external/bsd/ipf/netinet/radix_ipf.h cvs rdiff -u -r0 -r1.1.2.2 src/sys/external/bsd/ipf/netinet/ip_h323_pxy.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. diffs are larger than 1MB and have been omitted
CVS commit: [jmcneill-usbmp] src/sys/external/bsd/ipf/netinet
Module Name:src Committed By: joerg Date: Tue Apr 17 19:25:23 UTC 2012 Added Files: src/sys/external/bsd/ipf/netinet [jmcneill-usbmp]: fil.c ip_auth.c ip_auth.h ip_compat.h ip_dns_pxy.c ip_dstlist.c ip_dstlist.h ip_fil.h ip_fil_compat.c ip_fil_netbsd.c ip_frag.c ip_frag.h ip_ftp_pxy.c ip_h323_pxy.c ip_htable.c ip_htable.h ip_ipsec_pxy.c ip_irc_pxy.c ip_log.c ip_lookup.c ip_lookup.h ip_nat.c ip_nat.h ip_nat6.c ip_netbios_pxy.c ip_pool.c ip_pool.h ip_pptp_pxy.c ip_proxy.c ip_proxy.h ip_raudio_pxy.c ip_rcmd_pxy.c ip_rpcb_pxy.c ip_scan.c ip_scan.h ip_state.c ip_state.h ip_sync.c ip_sync.h ip_tftp_pxy.c ipf_rb.h ipl.h radix_ipf.c radix_ipf.h Log Message: Re-add new ipf on the jmcneill-usbmp branch. To generate a diff of this commit: cvs rdiff -u -r0 -r1.2.2.2 src/sys/external/bsd/ipf/netinet/fil.c \ src/sys/external/bsd/ipf/netinet/ip_auth.c \ src/sys/external/bsd/ipf/netinet/ip_auth.h \ src/sys/external/bsd/ipf/netinet/ip_compat.h \ src/sys/external/bsd/ipf/netinet/ip_dns_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_dstlist.c \ src/sys/external/bsd/ipf/netinet/ip_dstlist.h \ src/sys/external/bsd/ipf/netinet/ip_fil.h \ src/sys/external/bsd/ipf/netinet/ip_fil_compat.c \ src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c \ src/sys/external/bsd/ipf/netinet/ip_frag.c \ src/sys/external/bsd/ipf/netinet/ip_frag.h \ src/sys/external/bsd/ipf/netinet/ip_ftp_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_htable.c \ src/sys/external/bsd/ipf/netinet/ip_htable.h \ src/sys/external/bsd/ipf/netinet/ip_ipsec_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_irc_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_log.c \ src/sys/external/bsd/ipf/netinet/ip_lookup.c \ src/sys/external/bsd/ipf/netinet/ip_lookup.h \ src/sys/external/bsd/ipf/netinet/ip_nat.c \ src/sys/external/bsd/ipf/netinet/ip_nat.h \ src/sys/external/bsd/ipf/netinet/ip_nat6.c \ src/sys/external/bsd/ipf/netinet/ip_netbios_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_pool.c \ src/sys/external/bsd/ipf/netinet/ip_pool.h \ src/sys/external/bsd/ipf/netinet/ip_pptp_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_proxy.c \ src/sys/external/bsd/ipf/netinet/ip_proxy.h \ src/sys/external/bsd/ipf/netinet/ip_raudio_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_rcmd_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_rpcb_pxy.c \ src/sys/external/bsd/ipf/netinet/ip_scan.c \ src/sys/external/bsd/ipf/netinet/ip_scan.h \ src/sys/external/bsd/ipf/netinet/ip_state.c \ src/sys/external/bsd/ipf/netinet/ip_state.h \ src/sys/external/bsd/ipf/netinet/ip_sync.c \ src/sys/external/bsd/ipf/netinet/ip_sync.h \ src/sys/external/bsd/ipf/netinet/ip_tftp_pxy.c \ src/sys/external/bsd/ipf/netinet/ipf_rb.h \ src/sys/external/bsd/ipf/netinet/ipl.h \ src/sys/external/bsd/ipf/netinet/radix_ipf.c \ src/sys/external/bsd/ipf/netinet/radix_ipf.h cvs rdiff -u -r0 -r1.1.2.2 src/sys/external/bsd/ipf/netinet/ip_h323_pxy.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Apr 14 23:11:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: note that: - umodem works - checking uhid is a merge issue - testing ugen, ulpt and a couple of network devices is a merge issue - ehci issues are done To generate a diff of this commit: cvs rdiff -u -r1.1.2.10 -r1.1.2.11 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.10 src/sys/dev/usb/TODO.usbmp:1.1.2.11 --- src/sys/dev/usb/TODO.usbmp:1.1.2.10 Fri Apr 6 08:22:28 2012 +++ src/sys/dev/usb/TODO.usbmp Sat Apr 14 23:11:02 2012 @@ -1,9 +1,12 @@ -$NetBSD: TODO.usbmp,v 1.1.2.10 2012/04/06 08:22:28 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.11 2012/04/14 23:11:02 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. +flesh out most of usbdi(9). + + host controllers needing to be ported: - dev/ic/slhci.c - arch/mips/adm5120/dev/ahci.c @@ -20,11 +23,6 @@ add lots more asserts usb_event_thread() startup should use something to sync companions -ehci issues: - - ehci_idone() has gone from splhigh() to splusb(). OK? - - ehci_suspend() no longer has splhardusb() across the whole function - - wake/wakeup conversion: - usb_detach_waitold/wakeupold() - usb_detach_wait/broadcast() - drivers: @@ -57,6 +55,7 @@ convert uhidev users to MPSAFE: uhid(4) - needs some locking here (not completely tested changes) + - MERGE ISSUE ukbd(4) ums(4) @@ -123,7 +122,7 @@ driver testing: STATUS - ucycom - uep - udl - - ulpt attaches ok + - ulpt attaches ok, MERGE ISSUE - uhso working (must take kernel lock for scsipi) - umass working (must take kernel lock for scsipi) - uaudio working @@ -155,7 +154,7 @@ driver testing: STATUS - utoppy - uyap - udsbr - - ugen + - ugen MERGE ISSUE - pseye - uvideo - auvitek ? (must take kernel lock for scsipi) @@ -164,7 +163,7 @@ driver testing: STATUS - aubtfwl - u3ginit ucom attachments: - - umodem + - umodem working - uark - ubsa - uchcom @@ -179,3 +178,6 @@ ucom attachments: - ukyopon - u3g - ugensa + + +test two metwork cards. MERGE ISSUE
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Apr 14 23:11:02 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: note that: - umodem works - checking uhid is a merge issue - testing ugen, ulpt and a couple of network devices is a merge issue - ehci issues are done To generate a diff of this commit: cvs rdiff -u -r1.1.2.10 -r1.1.2.11 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.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Fri Apr 6 08:11:41 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uhci.c Log Message: take the thread lock earlier in uhci_device_intr_start(). avoids failed mutex owned asserts, and now bt* work. To generate a diff of this commit: cvs rdiff -u -r1.240.6.19 -r1.240.6.20 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/uhci.c diff -u src/sys/dev/usb/uhci.c:1.240.6.19 src/sys/dev/usb/uhci.c:1.240.6.20 --- src/sys/dev/usb/uhci.c:1.240.6.19 Thu Apr 5 22:32:09 2012 +++ src/sys/dev/usb/uhci.c Fri Apr 6 08:11:41 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: uhci.c,v 1.240.6.19 2012/04/05 22:32:09 mrg Exp $ */ +/* $NetBSD: uhci.c,v 1.240.6.20 2012/04/06 08:11:41 mrg Exp $ */ /* * Copyright (c) 1998, 2004, 2011, 2012 The NetBSD Foundation, Inc. @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.19 2012/04/05 22:32:09 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.20 2012/04/06 08:11:41 mrg Exp $); #include opt_usb.h @@ -2320,6 +2320,8 @@ uhci_device_intr_start(usbd_xfer_handle panic(uhci_device_intr_transfer: a request); #endif + mutex_enter(sc-sc_lock); + endpt = upipe-pipe.endpoint-edesc-bEndpointAddress; isread = UE_GET_DIR(endpt) == UE_DIR_IN; @@ -2328,8 +2330,11 @@ uhci_device_intr_start(usbd_xfer_handle err = uhci_alloc_std_chain(upipe, sc, xfer-length, isread, xfer-flags, xfer-dmabuf, data, dataend); - if (err) + if (err) { + mutex_exit(sc-sc_lock); return (err); + } + dataend-td.td_status |= htole32(UHCI_TD_IOC); usb_syncmem(dataend-dma, dataend-offs + offsetof(uhci_td_t, td_status), @@ -2344,7 +2349,6 @@ uhci_device_intr_start(usbd_xfer_handle } #endif - mutex_enter(sc-sc_lock); /* Set up interrupt info. */ ii-xfer = xfer; ii-stdstart = data;
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Fri Apr 6 08:22:28 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: note that ulpt and uplcom both attach To generate a diff of this commit: cvs rdiff -u -r1.1.2.9 -r1.1.2.10 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.9 src/sys/dev/usb/TODO.usbmp:1.1.2.10 --- src/sys/dev/usb/TODO.usbmp:1.1.2.9 Fri Apr 6 08:13:40 2012 +++ src/sys/dev/usb/TODO.usbmp Fri Apr 6 08:22:28 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.9 2012/04/06 08:13:40 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.10 2012/04/06 08:22:28 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -123,7 +123,7 @@ driver testing: STATUS - ucycom - uep - udl - - ulpt + - ulpt attaches ok - uhso working (must take kernel lock for scsipi) - umass working (must take kernel lock for scsipi) - uaudio working @@ -171,7 +171,7 @@ ucom attachments: - uftdi - uipaq - umct - - uplcom + - uplcom attaches ok - uslsa - uvscom - moscom
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Fri Apr 6 08:11:41 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uhci.c Log Message: take the thread lock earlier in uhci_device_intr_start(). avoids failed mutex owned asserts, and now bt* work. To generate a diff of this commit: cvs rdiff -u -r1.240.6.19 -r1.240.6.20 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Fri Apr 6 08:22:28 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: note that ulpt and uplcom both attach To generate a diff of this commit: cvs rdiff -u -r1.1.2.9 -r1.1.2.10 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.
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Thu Apr 5 21:33:53 UTC 2012 Modified Files: src/sys/arch/alpha/include [jmcneill-usbmp]: limits.h src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC src/sys/arch/amd64/include [jmcneill-usbmp]: limits.h src/sys/arch/amiga/dev [jmcneill-usbmp]: grf.c src/sys/arch/amiga/include [jmcneill-usbmp]: limits.h src/sys/arch/arm/conf [jmcneill-usbmp]: Makefile.arm src/sys/arch/arm/include [jmcneill-usbmp]: limits.h src/sys/arch/atari/include [jmcneill-usbmp]: limits.h src/sys/arch/dreamcast/include [jmcneill-usbmp]: limits.h src/sys/arch/evbarm/conf [jmcneill-usbmp]: IGEPV2 MARVELL_NAS MINI2440 MV2120 SHEEVAPLUG TWINTAIL src/sys/arch/evbarm/g42xxeb [jmcneill-usbmp]: g42xxeb_kmkbd.c src/sys/arch/evbarm/marvell [jmcneill-usbmp]: marvell_machdep.c src/sys/arch/evbppc/mpc85xx [jmcneill-usbmp]: machdep.c src/sys/arch/evbsh3/include [jmcneill-usbmp]: limits.h src/sys/arch/hp300/include [jmcneill-usbmp]: limits.h src/sys/arch/hp700/dev [jmcneill-usbmp]: apic.c cpu.c dino.c lasi.c siop_sgc.c wax.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: intr.c locore.S machdep.c mainbus.c src/sys/arch/hp700/include [jmcneill-usbmp]: cpu.h intr.h src/sys/arch/hpcarm/conf [jmcneill-usbmp]: INSTALL_WZERO3 NETBOOKPRO WZERO3 files.hpcarm files.pxa2x0 src/sys/arch/hpcarm/hpcarm [jmcneill-usbmp]: hpc_machdep.c locore.S pxa2x0_hpc_machdep.c sa11x0_hpc_machdep.c src/sys/arch/hpcsh/include [jmcneill-usbmp]: limits.h src/sys/arch/hppa/conf [jmcneill-usbmp]: files.hppa src/sys/arch/hppa/hppa [jmcneill-usbmp]: db_machdep.c lock_stubs.S trap.S src/sys/arch/hppa/include [jmcneill-usbmp]: cpufunc.h limits.h psl.h src/sys/arch/i386/conf [jmcneill-usbmp]: GENERIC src/sys/arch/i386/include [jmcneill-usbmp]: limits.h src/sys/arch/i386/stand [jmcneill-usbmp]: Makefile.inc src/sys/arch/ia64/include [jmcneill-usbmp]: limits.h src/sys/arch/landisk/include [jmcneill-usbmp]: limits.h src/sys/arch/landisk/landisk [jmcneill-usbmp]: bus_dma.c src/sys/arch/luna68k/include [jmcneill-usbmp]: limits.h src/sys/arch/m68k/include [jmcneill-usbmp]: limits.h profile.h src/sys/arch/mac68k/include [jmcneill-usbmp]: limits.h src/sys/arch/macppc/conf [jmcneill-usbmp]: GENERIC GENERIC_MD INSTALL src/sys/arch/macppc/dev [jmcneill-usbmp]: ofb.c src/sys/arch/macppc/macppc [jmcneill-usbmp]: machdep.c pic_heathrow.c pic_ohare.c src/sys/arch/mips/include [jmcneill-usbmp]: cachectl.h ecoff_machdep.h ieeefp.h limits.h src/sys/arch/mvme68k/include [jmcneill-usbmp]: limits.h src/sys/arch/news68k/include [jmcneill-usbmp]: limits.h src/sys/arch/powerpc/booke [jmcneill-usbmp]: booke_pmap.c copyin.c e500_tlb.c src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3gpio.c src/sys/arch/powerpc/conf [jmcneill-usbmp]: Makefile.powerpc files.powerpc src/sys/arch/powerpc/include [jmcneill-usbmp]: cpu.h limits.h src/sys/arch/powerpc/include/booke [jmcneill-usbmp]: e500var.h pmap.h src/sys/arch/powerpc/powerpc [jmcneill-usbmp]: db_disasm.c powerpc_machdep.c vm_machdep.c src/sys/arch/sh3/include [jmcneill-usbmp]: limits.h src/sys/arch/shark/ofw [jmcneill-usbmp]: vga_ofbus.c src/sys/arch/sparc/conf [jmcneill-usbmp]: BILL-THE-CAT GENERIC INSTALL KRUPS MRCOFFEE TADPOLE3GX src/sys/arch/sparc/dev [jmcneill-usbmp]: tctrl.c src/sys/arch/sparc/include [jmcneill-usbmp]: aout_machdep.h ieeefp.h limits.h src/sys/arch/sparc/sparc [jmcneill-usbmp]: cpu.c src/sys/arch/sparc64/conf [jmcneill-usbmp]: GENERIC NONPLUS64 src/sys/arch/sparc64/dev [jmcneill-usbmp]: central.c ebus_mainbus.c fhc.c fhc_central.c fhc_mainbus.c gfb.c iommu.c iommuvar.h pcf8591_envctrl.c pcfiic_ebus.c pld_wdog.c pyro.c schizo.c schizoreg.h schizovar.h tda.c upa.c src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: locore.s pmap.c trap.c src/sys/arch/vax/conf [jmcneill-usbmp]: INSTALL src/sys/arch/vax/include [jmcneill-usbmp]: limits.h src/sys/arch/x68k/include [jmcneill-usbmp]: limits.h loadfile_machdep.h src/sys/arch/x68k/stand [jmcneill-usbmp]: Makefile src/sys/arch/x68k/stand/boot [jmcneill-usbmp]: Makefile boot.c boot.ldscript conf.c version src/sys/arch/x68k/stand/libsa [jmcneill-usbmp]: sdcd.c src/sys/arch/x68k/stand/mboot [jmcneill-usbmp]: Makefile mboot.c src/sys/arch/x86/include [jmcneill-usbmp]: pmap.h src/sys/arch/x86/x86 [jmcneill-usbmp]: ipmi.c src/sys/arch/xen/x86
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Thu Apr 5 22:32:09 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c ohci.c uhci.c Log Message: make these compile without DIAGNOSTIC. To generate a diff of this commit: cvs rdiff -u -r1.181.6.19 -r1.181.6.20 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.19 -r1.218.6.20 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.18 -r1.240.6.19 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.19 src/sys/dev/usb/ehci.c:1.181.6.20 --- src/sys/dev/usb/ehci.c:1.181.6.19 Thu Apr 5 21:33:33 2012 +++ src/sys/dev/usb/ehci.c Thu Apr 5 22:32:08 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.19 2012/04/05 21:33:33 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.20 2012/04/05 22:32:08 mrg Exp $ */ /* * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.19 2012/04/05 21:33:33 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.20 2012/04/05 22:32:08 mrg Exp $); #include ohci.h #include uhci.h @@ -2596,7 +2596,9 @@ ehci_root_intr_start(usbd_xfer_handle xf Static void ehci_root_intr_abort(usbd_xfer_handle xfer) { +#ifdef DIAGNOSTIC ehci_softc_t *sc = xfer-pipe-device-bus-hci_private; +#endif KASSERT(mutex_owned(sc-sc_lock)); if (xfer-pipe-intrxfer == xfer) { Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.218.6.19 src/sys/dev/usb/ohci.c:1.218.6.20 --- src/sys/dev/usb/ohci.c:1.218.6.19 Sun Mar 11 01:52:28 2012 +++ src/sys/dev/usb/ohci.c Thu Apr 5 22:32:08 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.218.6.19 2012/03/11 01:52:28 mrg Exp $ */ +/* $NetBSD: ohci.c,v 1.218.6.20 2012/04/05 22:32:08 mrg Exp $ */ /* * Copyright (c) 1998, 2004, 2005, 2012 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.19 2012/03/11 01:52:28 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.20 2012/04/05 22:32:08 mrg Exp $); #include opt_usb.h @@ -2873,7 +2873,9 @@ ohci_root_intr_start(usbd_xfer_handle xf Static void ohci_root_intr_abort(usbd_xfer_handle xfer) { +#ifdef DIAGNOSTIC ohci_softc_t *sc = xfer-pipe-device-bus-hci_private; +#endif KASSERT(mutex_owned(sc-sc_lock)); Index: src/sys/dev/usb/uhci.c diff -u src/sys/dev/usb/uhci.c:1.240.6.18 src/sys/dev/usb/uhci.c:1.240.6.19 --- src/sys/dev/usb/uhci.c:1.240.6.18 Sun Mar 11 01:52:28 2012 +++ src/sys/dev/usb/uhci.c Thu Apr 5 22:32:09 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: uhci.c,v 1.240.6.18 2012/03/11 01:52:28 mrg Exp $ */ +/* $NetBSD: uhci.c,v 1.240.6.19 2012/04/05 22:32:09 mrg Exp $ */ /* * Copyright (c) 1998, 2004, 2011, 2012 The NetBSD Foundation, Inc. @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.18 2012/03/11 01:52:28 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.19 2012/04/05 22:32:09 mrg Exp $); #include opt_usb.h @@ -1498,7 +1498,9 @@ uhci_idone(uhci_intr_info_t *ii) { usbd_xfer_handle xfer = ii-xfer; struct uhci_pipe *upipe = (struct uhci_pipe *)xfer-pipe; +#ifdef DIAGNOSTIC uhci_softc_t *sc = upipe-pipe.device-bus-hci_private; +#endif uhci_soft_td_t *std; u_int32_t status = 0, nstatus; int actlen; @@ -2745,7 +2747,9 @@ uhci_device_isoc_start(usbd_xfer_handle void uhci_device_isoc_abort(usbd_xfer_handle xfer) { +#ifdef DIAGNOSTIC uhci_softc_t *sc = xfer-pipe-device-bus-hci_private; +#endif struct uhci_pipe *upipe = (struct uhci_pipe *)xfer-pipe; uhci_soft_td_t **stds = upipe-u.iso.stds; uhci_soft_td_t *std;
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Thu Apr 5 21:33:53 UTC 2012 Modified Files: src/sys/arch/alpha/include [jmcneill-usbmp]: limits.h src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC src/sys/arch/amd64/include [jmcneill-usbmp]: limits.h src/sys/arch/amiga/dev [jmcneill-usbmp]: grf.c src/sys/arch/amiga/include [jmcneill-usbmp]: limits.h src/sys/arch/arm/conf [jmcneill-usbmp]: Makefile.arm src/sys/arch/arm/include [jmcneill-usbmp]: limits.h src/sys/arch/atari/include [jmcneill-usbmp]: limits.h src/sys/arch/dreamcast/include [jmcneill-usbmp]: limits.h src/sys/arch/evbarm/conf [jmcneill-usbmp]: IGEPV2 MARVELL_NAS MINI2440 MV2120 SHEEVAPLUG TWINTAIL src/sys/arch/evbarm/g42xxeb [jmcneill-usbmp]: g42xxeb_kmkbd.c src/sys/arch/evbarm/marvell [jmcneill-usbmp]: marvell_machdep.c src/sys/arch/evbppc/mpc85xx [jmcneill-usbmp]: machdep.c src/sys/arch/evbsh3/include [jmcneill-usbmp]: limits.h src/sys/arch/hp300/include [jmcneill-usbmp]: limits.h src/sys/arch/hp700/dev [jmcneill-usbmp]: apic.c cpu.c dino.c lasi.c siop_sgc.c wax.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: intr.c locore.S machdep.c mainbus.c src/sys/arch/hp700/include [jmcneill-usbmp]: cpu.h intr.h src/sys/arch/hpcarm/conf [jmcneill-usbmp]: INSTALL_WZERO3 NETBOOKPRO WZERO3 files.hpcarm files.pxa2x0 src/sys/arch/hpcarm/hpcarm [jmcneill-usbmp]: hpc_machdep.c locore.S pxa2x0_hpc_machdep.c sa11x0_hpc_machdep.c src/sys/arch/hpcsh/include [jmcneill-usbmp]: limits.h src/sys/arch/hppa/conf [jmcneill-usbmp]: files.hppa src/sys/arch/hppa/hppa [jmcneill-usbmp]: db_machdep.c lock_stubs.S trap.S src/sys/arch/hppa/include [jmcneill-usbmp]: cpufunc.h limits.h psl.h src/sys/arch/i386/conf [jmcneill-usbmp]: GENERIC src/sys/arch/i386/include [jmcneill-usbmp]: limits.h src/sys/arch/i386/stand [jmcneill-usbmp]: Makefile.inc src/sys/arch/ia64/include [jmcneill-usbmp]: limits.h src/sys/arch/landisk/include [jmcneill-usbmp]: limits.h src/sys/arch/landisk/landisk [jmcneill-usbmp]: bus_dma.c src/sys/arch/luna68k/include [jmcneill-usbmp]: limits.h src/sys/arch/m68k/include [jmcneill-usbmp]: limits.h profile.h src/sys/arch/mac68k/include [jmcneill-usbmp]: limits.h src/sys/arch/macppc/conf [jmcneill-usbmp]: GENERIC GENERIC_MD INSTALL src/sys/arch/macppc/dev [jmcneill-usbmp]: ofb.c src/sys/arch/macppc/macppc [jmcneill-usbmp]: machdep.c pic_heathrow.c pic_ohare.c src/sys/arch/mips/include [jmcneill-usbmp]: cachectl.h ecoff_machdep.h ieeefp.h limits.h src/sys/arch/mvme68k/include [jmcneill-usbmp]: limits.h src/sys/arch/news68k/include [jmcneill-usbmp]: limits.h src/sys/arch/powerpc/booke [jmcneill-usbmp]: booke_pmap.c copyin.c e500_tlb.c src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3gpio.c src/sys/arch/powerpc/conf [jmcneill-usbmp]: Makefile.powerpc files.powerpc src/sys/arch/powerpc/include [jmcneill-usbmp]: cpu.h limits.h src/sys/arch/powerpc/include/booke [jmcneill-usbmp]: e500var.h pmap.h src/sys/arch/powerpc/powerpc [jmcneill-usbmp]: db_disasm.c powerpc_machdep.c vm_machdep.c src/sys/arch/sh3/include [jmcneill-usbmp]: limits.h src/sys/arch/shark/ofw [jmcneill-usbmp]: vga_ofbus.c src/sys/arch/sparc/conf [jmcneill-usbmp]: BILL-THE-CAT GENERIC INSTALL KRUPS MRCOFFEE TADPOLE3GX src/sys/arch/sparc/dev [jmcneill-usbmp]: tctrl.c src/sys/arch/sparc/include [jmcneill-usbmp]: aout_machdep.h ieeefp.h limits.h src/sys/arch/sparc/sparc [jmcneill-usbmp]: cpu.c src/sys/arch/sparc64/conf [jmcneill-usbmp]: GENERIC NONPLUS64 src/sys/arch/sparc64/dev [jmcneill-usbmp]: central.c ebus_mainbus.c fhc.c fhc_central.c fhc_mainbus.c gfb.c iommu.c iommuvar.h pcf8591_envctrl.c pcfiic_ebus.c pld_wdog.c pyro.c schizo.c schizoreg.h schizovar.h tda.c upa.c src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: locore.s pmap.c trap.c src/sys/arch/vax/conf [jmcneill-usbmp]: INSTALL src/sys/arch/vax/include [jmcneill-usbmp]: limits.h src/sys/arch/x68k/include [jmcneill-usbmp]: limits.h loadfile_machdep.h src/sys/arch/x68k/stand [jmcneill-usbmp]: Makefile src/sys/arch/x68k/stand/boot [jmcneill-usbmp]: Makefile boot.c boot.ldscript conf.c version src/sys/arch/x68k/stand/libsa [jmcneill-usbmp]: sdcd.c src/sys/arch/x68k/stand/mboot [jmcneill-usbmp]: Makefile mboot.c src/sys/arch/x86/include [jmcneill-usbmp]: pmap.h src/sys/arch/x86/x86 [jmcneill-usbmp]: ipmi.c src/sys/arch/xen/x86
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Thu Apr 5 22:32:09 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c ohci.c uhci.c Log Message: make these compile without DIAGNOSTIC. To generate a diff of this commit: cvs rdiff -u -r1.181.6.19 -r1.181.6.20 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.19 -r1.218.6.20 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.18 -r1.240.6.19 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev
Module Name:src Committed By: mrg Date: Mon Mar 12 06:42:15 UTC 2012 Modified Files: src/sys/dev/pci [jmcneill-usbmp]: ehci_pci.c src/sys/dev/usb [jmcneill-usbmp]: ehci.c usb.c Log Message: fix detach bugs: - need to disestablish the ehci softint's. - need to destroy needs_explore_cv - note that ehci.c inits locks, but ehci_pci.c destroys them due to the way that the (pci) front end does softint handling, and can only be trusted to destroy them. XXX need to fix this, by looking at the many ehci frontends as well and checking ohci/uhci. To generate a diff of this commit: cvs rdiff -u -r1.53.6.3 -r1.53.6.4 src/sys/dev/pci/ehci_pci.c cvs rdiff -u -r1.181.6.17 -r1.181.6.18 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.125.6.12 -r1.125.6.13 src/sys/dev/usb/usb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/pci/ehci_pci.c diff -u src/sys/dev/pci/ehci_pci.c:1.53.6.3 src/sys/dev/pci/ehci_pci.c:1.53.6.4 --- src/sys/dev/pci/ehci_pci.c:1.53.6.3 Sat Feb 18 07:34:36 2012 +++ src/sys/dev/pci/ehci_pci.c Mon Mar 12 06:42:15 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci_pci.c,v 1.53.6.3 2012/02/18 07:34:36 mrg Exp $ */ +/* $NetBSD: ehci_pci.c,v 1.53.6.4 2012/03/12 06:42:15 mrg Exp $ */ /* * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci_pci.c,v 1.53.6.3 2012/02/18 07:34:36 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci_pci.c,v 1.53.6.4 2012/03/12 06:42:15 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -299,9 +299,15 @@ ehci_pci_detach(device_t self, int flags sc-sc.sc_size = 0; } +#if 1 + /* XXX created in ehci.c */ mutex_destroy(sc-sc.sc_lock); mutex_destroy(sc-sc.sc_intr_lock); + softint_disestablish(sc-sc.sc_doorbell_si); + softint_disestablish(sc-sc.sc_pcd_si); +#endif + return 0; } Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.17 src/sys/dev/usb/ehci.c:1.181.6.18 --- src/sys/dev/usb/ehci.c:1.181.6.17 Sun Mar 11 01:52:28 2012 +++ src/sys/dev/usb/ehci.c Mon Mar 12 06:42:15 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.17 2012/03/11 01:52:28 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.18 2012/03/12 06:42:15 mrg Exp $ */ /* * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.17 2012/03/11 01:52:28 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.18 2012/03/12 06:42:15 mrg Exp $); #include ohci.h #include uhci.h @@ -1165,9 +1165,16 @@ ehci_detach(struct ehci_softc *sc, int f cv_destroy(sc-sc_doorbell); cv_destroy(sc-sc_softwake_cv); +#if 0 + /* XXX destroyed in ehci_pci.c as it controls ehci_intr access */ + softint_disestablish(sc-sc_doorbell_si); softint_disestablish(sc-sc_pcd_si); + mutex_destroy(sc-sc_lock); + mutex_destroy(sc-sc_intr_lock); +#endif + while ((xfer = SIMPLEQ_FIRST(sc-sc_free_xfers)) != NULL) { SIMPLEQ_REMOVE_HEAD(sc-sc_free_xfers, next); kmem_free(xfer, sizeof(struct ehci_xfer)); Index: src/sys/dev/usb/usb.c diff -u src/sys/dev/usb/usb.c:1.125.6.12 src/sys/dev/usb/usb.c:1.125.6.13 --- src/sys/dev/usb/usb.c:1.125.6.12 Sun Feb 26 05:05:45 2012 +++ src/sys/dev/usb/usb.c Mon Mar 12 06:42:15 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usb.c,v 1.125.6.12 2012/02/26 05:05:45 mrg Exp $ */ +/* $NetBSD: usb.c,v 1.125.6.13 2012/03/12 06:42:15 mrg Exp $ */ /* * Copyright (c) 1998, 2002, 2008, 2012 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: usb.c,v 1.125.6.12 2012/02/26 05:05:45 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: usb.c,v 1.125.6.13 2012/03/12 06:42:15 mrg Exp $); #include opt_compat_netbsd.h #include opt_usb.h @@ -1053,6 +1053,8 @@ usb_detach(device_t self, int flags) ue-u.ue_ctrlr.ue_bus = device_unit(self); usb_add_event(USB_EVENT_CTRLR_DETACH, ue); + cv_destroy(sc-sc_bus-needs_explore_cv); + return (0); }
CVS commit: [jmcneill-usbmp] src/sys/dev
Module Name:src Committed By: mrg Date: Mon Mar 12 06:42:15 UTC 2012 Modified Files: src/sys/dev/pci [jmcneill-usbmp]: ehci_pci.c src/sys/dev/usb [jmcneill-usbmp]: ehci.c usb.c Log Message: fix detach bugs: - need to disestablish the ehci softint's. - need to destroy needs_explore_cv - note that ehci.c inits locks, but ehci_pci.c destroys them due to the way that the (pci) front end does softint handling, and can only be trusted to destroy them. XXX need to fix this, by looking at the many ehci frontends as well and checking ohci/uhci. To generate a diff of this commit: cvs rdiff -u -r1.53.6.3 -r1.53.6.4 src/sys/dev/pci/ehci_pci.c cvs rdiff -u -r1.181.6.17 -r1.181.6.18 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.125.6.12 -r1.125.6.13 src/sys/dev/usb/usb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/ic
Module Name:src Committed By: mrg Date: Mon Mar 12 04:11:34 UTC 2012 Modified Files: src/sys/dev/ic [jmcneill-usbmp]: sl811hs.c Log Message: fix a comment To generate a diff of this commit: cvs rdiff -u -r1.31.2.3 -r1.31.2.4 src/sys/dev/ic/sl811hs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/ic/sl811hs.c diff -u src/sys/dev/ic/sl811hs.c:1.31.2.3 src/sys/dev/ic/sl811hs.c:1.31.2.4 --- src/sys/dev/ic/sl811hs.c:1.31.2.3 Sun Mar 11 01:52:27 2012 +++ src/sys/dev/ic/sl811hs.c Mon Mar 12 04:11:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: sl811hs.c,v 1.31.2.3 2012/03/11 01:52:27 mrg Exp $ */ +/* $NetBSD: sl811hs.c,v 1.31.2.4 2012/03/12 04:11:34 mrg Exp $ */ /* * Not (c) 2007 Matthew Orgass @@ -84,7 +84,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sl811hs.c,v 1.31.2.3 2012/03/11 01:52:27 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: sl811hs.c,v 1.31.2.4 2012/03/12 04:11:34 mrg Exp $); #include opt_slhci.h @@ -694,7 +694,7 @@ const struct usbd_bus_methods slhci_bus_ slhci_freem, slhci_allocx, slhci_freex, - NULL, /* slhci_get_locks */ + NULL, /* slhci_get_lock */ }; const struct usbd_pipe_methods slhci_pipe_methods = {
CVS commit: [jmcneill-usbmp] src/sys/dev/scsipi
Module Name:src Committed By: mrg Date: Mon Mar 12 04:11:56 UTC 2012 Modified Files: src/sys/dev/scsipi [jmcneill-usbmp]: scsiconf.c Log Message: merge scsiconf.c 1.264. To generate a diff of this commit: cvs rdiff -u -r1.262 -r1.262.8.1 src/sys/dev/scsipi/scsiconf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/scsipi/scsiconf.c diff -u src/sys/dev/scsipi/scsiconf.c:1.262 src/sys/dev/scsipi/scsiconf.c:1.262.8.1 --- src/sys/dev/scsipi/scsiconf.c:1.262 Tue Apr 26 07:41:18 2011 +++ src/sys/dev/scsipi/scsiconf.c Mon Mar 12 04:11:56 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsiconf.c,v 1.262 2011/04/26 07:41:18 hannken Exp $ */ +/* $NetBSD: scsiconf.c,v 1.262.8.1 2012/03/12 04:11:56 mrg Exp $ */ /*- * Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc. @@ -48,7 +48,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: scsiconf.c,v 1.262 2011/04/26 07:41:18 hannken Exp $); +__KERNEL_RCSID(0, $NetBSD: scsiconf.c,v 1.262.8.1 2012/03/12 04:11:56 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -256,11 +256,18 @@ scsibusdetach(device_t self, int flags) struct scsipi_xfer *xs; int error; + /* XXXSMP scsipi */ + KERNEL_LOCK(1, curlwp); + /* * Detach all of the periphs. */ - if ((error = scsipi_target_detach(chan, -1, -1, flags)) != 0) + if ((error = scsipi_target_detach(chan, -1, -1, flags)) != 0) { + /* XXXSMP scsipi */ + KERNEL_UNLOCK_ONE(curlwp); + return error; + } pmf_device_deregister(self); @@ -290,6 +297,10 @@ scsibusdetach(device_t self, int flags) * Now shut down the channel. */ scsipi_channel_shutdown(chan); + + /* XXXSMP scsipi */ + KERNEL_UNLOCK_ONE(curlwp); + return 0; } @@ -378,11 +389,17 @@ scsidevdetached(device_t self, device_t target = device_locator(child, SCSIBUSCF_TARGET); lun = device_locator(child, SCSIBUSCF_LUN); + /* XXXSMP scsipi */ + KERNEL_LOCK(1, curlwp); + periph = scsipi_lookup_periph(chan, target, lun); KASSERT(periph-periph_dev == child); scsipi_remove_periph(chan, periph); free(periph, M_DEVBUF); + + /* XXXSMP scsipi */ + KERNEL_UNLOCK_ONE(curlwp); } /*
CVS commit: [jmcneill-usbmp] src/sys/dev/ic
Module Name:src Committed By: mrg Date: Mon Mar 12 04:11:34 UTC 2012 Modified Files: src/sys/dev/ic [jmcneill-usbmp]: sl811hs.c Log Message: fix a comment To generate a diff of this commit: cvs rdiff -u -r1.31.2.3 -r1.31.2.4 src/sys/dev/ic/sl811hs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/scsipi
Module Name:src Committed By: mrg Date: Mon Mar 12 04:11:56 UTC 2012 Modified Files: src/sys/dev/scsipi [jmcneill-usbmp]: scsiconf.c Log Message: merge scsiconf.c 1.264. To generate a diff of this commit: cvs rdiff -u -r1.262 -r1.262.8.1 src/sys/dev/scsipi/scsiconf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sun Mar 11 01:52:31 UTC 2012 Modified Files: src/sys/arch/acorn26/conf [jmcneill-usbmp]: GENERIC src/sys/arch/acorn32/conf [jmcneill-usbmp]: EB7500ATX GENERIC src/sys/arch/alpha/conf [jmcneill-usbmp]: GENERIC src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC XEN3_DOM0 XEN3_DOMU src/sys/arch/amiga/conf [jmcneill-usbmp]: DRACO GENERIC GENERIC.in src/sys/arch/amigappc/conf [jmcneill-usbmp]: GENERIC NULL src/sys/arch/arc/conf [jmcneill-usbmp]: GENERIC RAMDISK src/sys/arch/atari/conf [jmcneill-usbmp]: ATARITT FALCON GENERIC.in HADES MILAN-ISAIDE MILAN-PCIIDE src/sys/arch/bebox/conf [jmcneill-usbmp]: GENERIC src/sys/arch/cats/conf [jmcneill-usbmp]: GENERIC src/sys/arch/cesfic/conf [jmcneill-usbmp]: GENERIC src/sys/arch/cobalt/conf [jmcneill-usbmp]: GENERIC INSTALL src/sys/arch/dreamcast/conf [jmcneill-usbmp]: GENERIC src/sys/arch/emips/conf [jmcneill-usbmp]: GENERIC src/sys/arch/evbarm/conf [jmcneill-usbmp]: ARMADILLO210 ARMADILLO9 CP3100 GUMSTIX HDL_G MARVELL_NAS MMNET_GENERIC MPCSA_GENERIC MV2120 OVERO SHEEVAPLUG src/sys/arch/evbmips/conf [jmcneill-usbmp]: CPMBR1400 src/sys/arch/evbppc/conf [jmcneill-usbmp]: OPENBLOCKS266 OPENBLOCKS600 src/sys/arch/ews4800mips/conf [jmcneill-usbmp]: GENERIC RAMDISK src/sys/arch/hp300/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hp700/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hpcarm/conf [jmcneill-usbmp]: IPAQ JORNADA720 JORNADA820 NETBOOKPRO WZERO3 src/sys/arch/hpcsh/conf [jmcneill-usbmp]: GENERIC src/sys/arch/hppa/hppa [jmcneill-usbmp]: trap.c vm_machdep.c src/sys/arch/i386/conf [jmcneill-usbmp]: ALL GENERIC GENERIC_PS2TINY GENERIC_TINY MODULAR XEN3_DOM0 XEN3_DOMU src/sys/arch/i386/stand/fatboot [jmcneill-usbmp]: Makefile fatboot.S src/sys/arch/iyonix/conf [jmcneill-usbmp]: GENERIC src/sys/arch/landisk/conf [jmcneill-usbmp]: GENERIC src/sys/arch/luna68k/conf [jmcneill-usbmp]: GENERIC INSTALL src/sys/arch/mac68k/conf [jmcneill-usbmp]: GENERIC src/sys/arch/macppc/conf [jmcneill-usbmp]: GENERIC MAMBO POWERMAC_G5 src/sys/arch/mipsco/conf [jmcneill-usbmp]: GENERIC src/sys/arch/mmeye/conf [jmcneill-usbmp]: GENERIC MMEYE_WLF src/sys/arch/netwinder/conf [jmcneill-usbmp]: GENERIC src/sys/arch/news68k/conf [jmcneill-usbmp]: GENERIC GENERIC_TINY src/sys/arch/newsmips/conf [jmcneill-usbmp]: GENERIC src/sys/arch/next68k/conf [jmcneill-usbmp]: GENERIC SLAB src/sys/arch/ofppc/conf [jmcneill-usbmp]: GENERIC src/sys/arch/pmax/conf [jmcneill-usbmp]: GENERIC GENERIC64 src/sys/arch/prep/conf [jmcneill-usbmp]: GENERIC src/sys/arch/rs6000/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sandpoint/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sbmips/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sgimips/conf [jmcneill-usbmp]: GENERIC32_IP12 GENERIC32_IP2x GENERIC32_IP3x src/sys/arch/shark/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sparc/conf [jmcneill-usbmp]: GENERIC KRUPS MRCOFFEE src/sys/arch/sparc64/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sparc64/include [jmcneill-usbmp]: param.h src/sys/arch/sun2/conf [jmcneill-usbmp]: GENERIC src/sys/arch/sun3/conf [jmcneill-usbmp]: GENERIC GENERIC3X src/sys/arch/vax/conf [jmcneill-usbmp]: GENERIC VAX780 src/sys/arch/vax/vax [jmcneill-usbmp]: clock.c src/sys/arch/x68k/conf [jmcneill-usbmp]: GENERIC src/sys/arch/zaurus/conf [jmcneill-usbmp]: GENERIC INSTALL src/sys/compat/freebsd [jmcneill-usbmp]: freebsd_syscall.h freebsd_syscallargs.h freebsd_syscalls.c freebsd_sysent.c syscalls.master src/sys/compat/netbsd32 [jmcneill-usbmp]: files.netbsd32 netbsd32_sem.c netbsd32_syscall.h netbsd32_syscallargs.h netbsd32_syscalls.c netbsd32_sysent.c syscalls.master src/sys/conf [jmcneill-usbmp]: files src/sys/dev/ic [jmcneill-usbmp]: ncr53c9x.c ninjascsi32.c sl811hs.c src/sys/dev/microcode/cyclades-z [jmcneill-usbmp]: cyzfirm2h.c src/sys/dev/pci [jmcneill-usbmp]: if_bnx.c r128fb.c src/sys/dev/usb [jmcneill-usbmp]: ehci.c if_kue.c ohci.c uhci.c uhub.c usbdivar.h src/sys/kern [jmcneill-usbmp]: init_sysctl.c init_sysent.c kern_exec.c kern_syscall.c syscalls.c syscalls.master uipc_sem.c src/sys/modules/compat_netbsd32 [jmcneill-usbmp]: Makefile src/sys/net/npf [jmcneill-usbmp]: npf_ncode.h src/sys/rump/include/rump [jmcneill-usbmp]: rump_syscalls.h src/sys/rump/kern [jmcneill-usbmp]: Makefile.rumpkerncomp src/sys/rump/librump/rumpkern [jmcneill-usbmp]:
Re: CVS commit: [jmcneill-usbmp] src/sys
mrg@ wrote: Module Name: src Committed By: mrg Date: Tue Mar 6 09:56:29 UTC 2012 : Removed Files: src/sys/dev/pci [jmcneill-usbmp]: lynxfb.c lynxfbreg.h lynxfbvar.h Log Message: sync to -current These removal look out of sync. (They were added in previous sync on March 4) --- Izumi Tsutsui
re: CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Tue Mar 6 09:56:29 UTC 2012 : Removed Files: src/sys/dev/pci [jmcneill-usbmp]: lynxfb.c lynxfbreg.h lynxfbvar.h Log Message: sync to -current These removal look out of sync. (They were added in previous sync on March 4) yes - i tagged a slightly older tree than i thought i was. so i went backwards in time, and then forwards again. it's fixed now. thanks for looking closely. .mrg.
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Tue Mar 6 09:56:29 UTC 2012 Modified Files: src/sys/arch/algor/algor [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/amd64 [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC src/sys/arch/evbmips/adm5120 [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/alchemy [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/atheros [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/conf [jmcneill-usbmp]: LOONGSON files.loongson src/sys/arch/evbmips/loongson [jmcneill-usbmp]: autoconf.c bonito_mainbus.c loongson_bus_defs.h loongson_bus_io.c machdep.c yeeloong_machdep.c src/sys/arch/evbmips/loongson/dev [jmcneill-usbmp]: glx.c src/sys/arch/evbmips/malta [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/rasoc [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/rmixl [jmcneill-usbmp]: machdep.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: intr.c src/sys/arch/hppa/hppa [jmcneill-usbmp]: pmap.c src/sys/arch/i386/conf [jmcneill-usbmp]: ALL src/sys/arch/i386/i386 [jmcneill-usbmp]: locore.S machdep.c src/sys/arch/mips/include [jmcneill-usbmp]: intr.h src/sys/arch/mips/mips [jmcneill-usbmp]: mips_fpu.c mips_machdep.c src/sys/arch/shark/ofw [jmcneill-usbmp]: ofw.c src/sys/arch/sparc64/conf [jmcneill-usbmp]: Makefile.sparc64 files.sparc64 src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: locore.s src/sys/arch/usermode/dev [jmcneill-usbmp]: cpu.c ttycons.c src/sys/arch/usermode/include [jmcneill-usbmp]: intr.h thunk.h src/sys/arch/usermode/usermode [jmcneill-usbmp]: pmap.c thunk.c trap.c src/sys/arch/vax/include [jmcneill-usbmp]: cpu.h src/sys/arch/vax/vax [jmcneill-usbmp]: machdep.c src/sys/arch/x86/include [jmcneill-usbmp]: cpu.h specialreg.h src/sys/arch/x86/isa [jmcneill-usbmp]: isa_machdep.c src/sys/arch/x86/pci [jmcneill-usbmp]: amdtemp.c pci_machdep.c src/sys/arch/xen/x86 [jmcneill-usbmp]: x86_xpmap.c xen_pmap.c src/sys/dev/ic [jmcneill-usbmp]: gcscpcib.c rtl8169.c rtl81x9reg.h src/sys/dev/pci [jmcneill-usbmp]: files.pci gcscaudio.c pcidevs pcidevs.h pcidevs_data.h radeonfb.c radeonfbvar.h sdhc_pci.c src/sys/dev/pci/hdaudio [jmcneill-usbmp]: hdaudio_ids.c src/sys/dev/scsipi [jmcneill-usbmp]: ss.c ss_mustek.c ss_scanjet.c ssvar.h st.c st_atapi.c st_scsi.c stvar.h src/sys/dev/sdmmc [jmcneill-usbmp]: sdhc.c sdhcreg.h src/sys/dev/usb [jmcneill-usbmp]: if_urndis.c umass.c umass_isdata.c umass_quirks.c umass_scsipi.c umassvar.h usbdevs usbdevs.h usbdevs_data.h src/sys/fs/tmpfs [jmcneill-usbmp]: tmpfs_vnops.c src/sys/kern [jmcneill-usbmp]: kern_fork.c kern_synch.c src/sys/lib/libsa [jmcneill-usbmp]: ls.c src/sys/sys [jmcneill-usbmp]: cdefs_elf.h src/sys/ufs/chfs [jmcneill-usbmp]: chfs_inode.h chfs_malloc.c chfs_pool.c Removed Files: src/sys/dev/pci [jmcneill-usbmp]: lynxfb.c lynxfbreg.h lynxfbvar.h Log Message: sync to -current To generate a diff of this commit: cvs rdiff -u -r1.51.6.1 -r1.51.6.2 src/sys/arch/algor/algor/machdep.c cvs rdiff -u -r1.171.2.3 -r1.171.2.4 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.340.2.2 -r1.340.2.3 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.21.6.1 -r1.21.6.2 src/sys/arch/evbmips/adm5120/machdep.c cvs rdiff -u -r1.51.6.1 -r1.51.6.2 src/sys/arch/evbmips/alchemy/machdep.c cvs rdiff -u -r1.27.6.1 -r1.27.6.2 src/sys/arch/evbmips/atheros/machdep.c cvs rdiff -u -r1.7.2.2 -r1.7.2.3 src/sys/arch/evbmips/conf/LOONGSON cvs rdiff -u -r1.2.6.1 -r1.2.6.2 src/sys/arch/evbmips/conf/files.loongson cvs rdiff -u -r1.1.6.1 -r1.1.6.2 src/sys/arch/evbmips/loongson/autoconf.c \ src/sys/arch/evbmips/loongson/bonito_mainbus.c \ src/sys/arch/evbmips/loongson/loongson_bus_defs.h \ src/sys/arch/evbmips/loongson/loongson_bus_io.c cvs rdiff -u -r1.3.6.1 -r1.3.6.2 src/sys/arch/evbmips/loongson/machdep.c cvs rdiff -u -r1.1.6.2 -r1.1.6.3 \ src/sys/arch/evbmips/loongson/yeeloong_machdep.c cvs rdiff -u -r1.1.6.2 -r1.1.6.3 src/sys/arch/evbmips/loongson/dev/glx.c cvs rdiff -u -r1.41.6.1 -r1.41.6.2 src/sys/arch/evbmips/malta/machdep.c cvs rdiff -u -r1.5.6.2 -r1.5.6.3 src/sys/arch/evbmips/rasoc/machdep.c cvs rdiff -u -r1.9.8.2 -r1.9.8.3 src/sys/arch/evbmips/rmixl/machdep.c cvs rdiff -u -r1.36.8.1 -r1.36.8.2 src/sys/arch/hp700/hp700/intr.c cvs rdiff -u -r1.81.6.2 -r1.81.6.3 src/sys/arch/hppa/hppa/pmap.c cvs rdiff -u -r1.327.2.2 -r1.327.2.3 src/sys/arch/i386/conf/ALL cvs rdiff -u -r1.95.8.1 -r1.95.8.2 src/sys/arch/i386/i386/locore.S cvs rdiff -u -r1.714.2.3 -r1.714.2.4 src/sys/arch/i386/i386/machdep.c cvs rdiff -u -r1.5.8.1 -r1.5.8.2 src/sys/arch/mips/include/intr.h cvs rdiff -u -r1.7.6.1 -r1.7.6.2
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Tue Mar 6 18:26:49 UTC 2012 Modified Files: src/sys/arch/algor/algor [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/amd64 [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC src/sys/arch/evbmips/adm5120 [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/alchemy [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/atheros [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/conf [jmcneill-usbmp]: LOONGSON files.loongson src/sys/arch/evbmips/loongson [jmcneill-usbmp]: autoconf.c bonito_mainbus.c loongson_bus_defs.h loongson_bus_io.c machdep.c yeeloong_machdep.c src/sys/arch/evbmips/loongson/dev [jmcneill-usbmp]: glx.c src/sys/arch/evbmips/malta [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/rasoc [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/rmixl [jmcneill-usbmp]: machdep.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: intr.c src/sys/arch/hpcarm/hpcarm [jmcneill-usbmp]: pxa2x0_hpc_machdep.c src/sys/arch/hppa/hppa [jmcneill-usbmp]: pmap.c src/sys/arch/i386/conf [jmcneill-usbmp]: ALL src/sys/arch/i386/i386 [jmcneill-usbmp]: locore.S machdep.c src/sys/arch/mips/include [jmcneill-usbmp]: intr.h src/sys/arch/mips/mips [jmcneill-usbmp]: mips_fpu.c mips_machdep.c src/sys/arch/shark/ofw [jmcneill-usbmp]: ofw.c src/sys/arch/sparc64/conf [jmcneill-usbmp]: Makefile.sparc64 files.sparc64 src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: locore.s src/sys/arch/usermode/dev [jmcneill-usbmp]: cpu.c ttycons.c src/sys/arch/usermode/include [jmcneill-usbmp]: intr.h thunk.h src/sys/arch/usermode/usermode [jmcneill-usbmp]: pmap.c thunk.c trap.c src/sys/arch/vax/include [jmcneill-usbmp]: cpu.h src/sys/arch/vax/vax [jmcneill-usbmp]: machdep.c src/sys/arch/x86/include [jmcneill-usbmp]: cpu.h specialreg.h src/sys/arch/x86/isa [jmcneill-usbmp]: isa_machdep.c src/sys/arch/x86/pci [jmcneill-usbmp]: amdtemp.c pci_machdep.c src/sys/arch/xen/x86 [jmcneill-usbmp]: x86_xpmap.c xen_pmap.c src/sys/arch/xen/xen [jmcneill-usbmp]: xpci_xenbus.c src/sys/compat/netbsd32 [jmcneill-usbmp]: netbsd32.h netbsd32_fs.c src/sys/dev/ic [jmcneill-usbmp]: gcscpcib.c rtl8169.c rtl81x9reg.h src/sys/dev/pci [jmcneill-usbmp]: files.pci gcscaudio.c pcidevs pcidevs.h pcidevs_data.h piixide.c radeonfb.c radeonfbvar.h sdhc_pci.c src/sys/dev/pci/hdaudio [jmcneill-usbmp]: hdaudio_ids.c src/sys/dev/scsipi [jmcneill-usbmp]: ss.c ss_mustek.c ss_scanjet.c ssvar.h st.c st_atapi.c st_scsi.c stvar.h src/sys/dev/sdmmc [jmcneill-usbmp]: sdhc.c sdhcreg.h src/sys/dev/usb [jmcneill-usbmp]: if_aue.c if_axe.c if_udav.c if_urndis.c ohci.c ohcivar.h uhci.c uhcivar.h uhid.c uhub.c ulpt.c umass.c umass_isdata.c umass_quirks.c umass_scsipi.c umassvar.h usb.h usbdevs usbdevs.h usbdevs_data.h usbdi.c usbdi_util.c usbdivar.h src/sys/fs/tmpfs [jmcneill-usbmp]: tmpfs_vnops.c src/sys/kern [jmcneill-usbmp]: kern_fork.c kern_synch.c subr_vmem.c src/sys/lib/libsa [jmcneill-usbmp]: ls.c src/sys/rump/librump/rumpkern [jmcneill-usbmp]: vm.c src/sys/sys [jmcneill-usbmp]: cdefs_elf.h src/sys/ufs/chfs [jmcneill-usbmp]: chfs_inode.h chfs_malloc.c chfs_pool.c Added Files: src/sys/dev/pci [jmcneill-usbmp]: lynxfb.c lynxfbreg.h lynxfbvar.h Log Message: sync to -current To generate a diff of this commit: cvs rdiff -u -r1.51.6.2 -r1.51.6.3 src/sys/arch/algor/algor/machdep.c cvs rdiff -u -r1.171.2.4 -r1.171.2.5 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.340.2.3 -r1.340.2.4 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.21.6.2 -r1.21.6.3 src/sys/arch/evbmips/adm5120/machdep.c cvs rdiff -u -r1.51.6.2 -r1.51.6.3 src/sys/arch/evbmips/alchemy/machdep.c cvs rdiff -u -r1.27.6.2 -r1.27.6.3 src/sys/arch/evbmips/atheros/machdep.c cvs rdiff -u -r1.7.2.3 -r1.7.2.4 src/sys/arch/evbmips/conf/LOONGSON cvs rdiff -u -r1.2.6.2 -r1.2.6.3 src/sys/arch/evbmips/conf/files.loongson cvs rdiff -u -r1.1.6.2 -r1.1.6.3 src/sys/arch/evbmips/loongson/autoconf.c \ src/sys/arch/evbmips/loongson/bonito_mainbus.c \ src/sys/arch/evbmips/loongson/loongson_bus_defs.h \ src/sys/arch/evbmips/loongson/loongson_bus_io.c cvs rdiff -u -r1.3.6.2 -r1.3.6.3 src/sys/arch/evbmips/loongson/machdep.c cvs rdiff -u -r1.1.6.3 -r1.1.6.4 \ src/sys/arch/evbmips/loongson/yeeloong_machdep.c cvs rdiff -u -r1.1.6.3 -r1.1.6.4 src/sys/arch/evbmips/loongson/dev/glx.c cvs rdiff -u -r1.41.6.2 -r1.41.6.3 src/sys/arch/evbmips/malta/machdep.c cvs rdiff -u -r1.5.6.3 -r1.5.6.4 src/sys/arch/evbmips/rasoc/machdep.c cvs rdiff -u -r1.9.8.3 -r1.9.8.4 src/sys/arch/evbmips/rmixl/machdep.c
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Mar 4 01:32:47 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c Log Message: minor KNF. To generate a diff of this commit: cvs rdiff -u -r1.181.6.15 -r1.181.6.16 src/sys/dev/usb/ehci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.15 src/sys/dev/usb/ehci.c:1.181.6.16 --- src/sys/dev/usb/ehci.c:1.181.6.15 Sat Mar 3 02:28:52 2012 +++ src/sys/dev/usb/ehci.c Sun Mar 4 01:32:47 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.15 2012/03/03 02:28:52 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.16 2012/03/04 01:32:47 mrg Exp $ */ /* * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.15 2012/03/03 02:28:52 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.16 2012/03/04 01:32:47 mrg Exp $); #include ohci.h #include uhci.h @@ -851,7 +851,8 @@ ehci_check_qh_intr(ehci_softc_t *sc, str } Static void -ehci_check_itd_intr(ehci_softc_t *sc, struct ehci_xfer *ex) { +ehci_check_itd_intr(ehci_softc_t *sc, struct ehci_xfer *ex) +{ ehci_soft_itd_t *itd; int i;
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Mar 4 06:55:31 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: umass(4) is only partially done wrt tsleep/wakeup conversion. To generate a diff of this commit: cvs rdiff -u -r1.1.2.7 -r1.1.2.8 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.7 src/sys/dev/usb/TODO.usbmp:1.1.2.8 --- src/sys/dev/usb/TODO.usbmp:1.1.2.7 Sun Feb 26 08:02:36 2012 +++ src/sys/dev/usb/TODO.usbmp Sun Mar 4 06:55:30 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.7 2012/02/26 08:02:36 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.8 2012/03/04 06:55:30 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -40,7 +40,7 @@ wake/wakeup conversion: uhso.c uirda.c ulpt.c - umass.c - done + umass.c - done, partially done urio.c uscanner.c usscanner.c
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sun Mar 4 00:46:33 UTC 2012 Modified Files: src/sys/arch/algor/algor [jmcneill-usbmp]: machdep.c src/sys/arch/amd64/amd64 [jmcneill-usbmp]: bios32.c locore.S machdep.c src/sys/arch/amd64/conf [jmcneill-usbmp]: GENERIC XEN3_DOM0 XEN3_DOMU src/sys/arch/evbmips/adm5120 [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/alchemy [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/atheros [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/conf [jmcneill-usbmp]: LOONGSON files.loongson src/sys/arch/evbmips/loongson [jmcneill-usbmp]: autoconf.c bonito_mainbus.c loongson_bus_defs.h loongson_bus_io.c machdep.c yeeloong_machdep.c src/sys/arch/evbmips/loongson/dev [jmcneill-usbmp]: glx.c src/sys/arch/evbmips/malta [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/rasoc [jmcneill-usbmp]: machdep.c src/sys/arch/evbmips/rmixl [jmcneill-usbmp]: machdep.c src/sys/arch/hp700/dev [jmcneill-usbmp]: cpu.c cpudevs cpudevs.h cpudevs_data.h src/sys/arch/hp700/hp700 [jmcneill-usbmp]: intr.c machdep.c src/sys/arch/hp700/include [jmcneill-usbmp]: pdc.h src/sys/arch/hp700/stand/mkboot [jmcneill-usbmp]: mkboot.c src/sys/arch/hp700/stand/xxboot [jmcneill-usbmp]: iplsum.c main.c readufs.h start.S src/sys/arch/hppa/hppa [jmcneill-usbmp]: pmap.c trap.S src/sys/arch/i386/conf [jmcneill-usbmp]: ALL XEN3_DOM0 XEN3_DOMU majors.i386 src/sys/arch/i386/i386 [jmcneill-usbmp]: gdt.c locore.S machdep.c src/sys/arch/ia64/conf [jmcneill-usbmp]: majors.ia64 src/sys/arch/mips/include [jmcneill-usbmp]: intr.h src/sys/arch/mips/mips [jmcneill-usbmp]: mips_fpu.c mips_machdep.c src/sys/arch/shark/ofw [jmcneill-usbmp]: ofw.c src/sys/arch/sparc64/conf [jmcneill-usbmp]: Makefile.sparc64 files.sparc64 src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: locore.s src/sys/arch/usermode/dev [jmcneill-usbmp]: cpu.c ttycons.c src/sys/arch/usermode/include [jmcneill-usbmp]: intr.h thunk.h src/sys/arch/usermode/usermode [jmcneill-usbmp]: pmap.c thunk.c trap.c src/sys/arch/vax/include [jmcneill-usbmp]: cpu.h src/sys/arch/vax/vax [jmcneill-usbmp]: machdep.c src/sys/arch/x68k/x68k [jmcneill-usbmp]: pmap_bootstrap.c src/sys/arch/x86/include [jmcneill-usbmp]: cpu.h specialreg.h src/sys/arch/x86/isa [jmcneill-usbmp]: isa_machdep.c src/sys/arch/x86/pci [jmcneill-usbmp]: amdtemp.c pci_machdep.c src/sys/arch/x86/x86 [jmcneill-usbmp]: pmap.c src/sys/arch/xen/x86 [jmcneill-usbmp]: cpu.c x86_xpmap.c xen_pmap.c src/sys/dev/acpi [jmcneill-usbmp]: acpi_cpu_cstate.c src/sys/dev/ic [jmcneill-usbmp]: gcscpcib.c ld_cac.c rtl8169.c rtl81x9reg.h src/sys/dev/pci [jmcneill-usbmp]: agp_amd64.c files.pci gcscaudio.c pcidevs pcidevs.h pcidevs_data.h radeonfb.c radeonfbvar.h sdhc_pci.c src/sys/dev/pci/hdaudio [jmcneill-usbmp]: hdaudio_ids.c src/sys/dev/scsipi [jmcneill-usbmp]: cd.c scsi_all.h ss.c ss_mustek.c ss_scanjet.c ssvar.h st.c st_atapi.c st_scsi.c stvar.h src/sys/dev/sdmmc [jmcneill-usbmp]: sdhc.c sdhcreg.h src/sys/dev/usb [jmcneill-usbmp]: if_urndis.c umass.c umass_isdata.c umass_quirks.c umass_scsipi.c umassvar.h usbdevs usbdevs.h usbdevs_data.h src/sys/fs/tmpfs [jmcneill-usbmp]: tmpfs_vnops.c src/sys/kern [jmcneill-usbmp]: kern_fork.c kern_mutex.c kern_rwlock.c kern_synch.c src/sys/lib/libsa [jmcneill-usbmp]: ls.c src/sys/sys [jmcneill-usbmp]: cdefs_elf.h src/sys/ufs/chfs [jmcneill-usbmp]: chfs_inode.h chfs_malloc.c chfs_pool.c src/sys/uvm [jmcneill-usbmp]: uvm_km.c uvm_param.h Added Files: src/sys/dev/pci [jmcneill-usbmp]: lynxfb.c lynxfbreg.h lynxfbvar.h Log Message: sync to latest -current. To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.51.6.1 src/sys/arch/algor/algor/machdep.c cvs rdiff -u -r1.19 -r1.19.16.1 src/sys/arch/amd64/amd64/bios32.c cvs rdiff -u -r1.65.8.1 -r1.65.8.2 src/sys/arch/amd64/amd64/locore.S cvs rdiff -u -r1.171.2.2 -r1.171.2.3 src/sys/arch/amd64/amd64/machdep.c cvs rdiff -u -r1.340.2.1 -r1.340.2.2 src/sys/arch/amd64/conf/GENERIC cvs rdiff -u -r1.75.2.1 -r1.75.2.2 src/sys/arch/amd64/conf/XEN3_DOM0 cvs rdiff -u -r1.33.2.1 -r1.33.2.2 src/sys/arch/amd64/conf/XEN3_DOMU cvs rdiff -u -r1.21 -r1.21.6.1 src/sys/arch/evbmips/adm5120/machdep.c cvs rdiff -u -r1.51 -r1.51.6.1 src/sys/arch/evbmips/alchemy/machdep.c cvs rdiff -u -r1.27 -r1.27.6.1 src/sys/arch/evbmips/atheros/machdep.c cvs rdiff -u -r1.7.2.1 -r1.7.2.2 src/sys/arch/evbmips/conf/LOONGSON cvs rdiff -u -r1.2 -r1.2.6.1 src/sys/arch/evbmips/conf/files.loongson cvs rdiff -u -r1.1 -r1.1.6.1
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Mar 4 01:32:47 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c Log Message: minor KNF. To generate a diff of this commit: cvs rdiff -u -r1.181.6.15 -r1.181.6.16 src/sys/dev/usb/ehci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Mar 4 06:55:31 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: umass(4) is only partially done wrt tsleep/wakeup conversion. To generate a diff of this commit: cvs rdiff -u -r1.1.2.7 -r1.1.2.8 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.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Mar 3 02:28:53 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c Log Message: revert a stray splx(s) that somehow got back in here.. To generate a diff of this commit: cvs rdiff -u -r1.181.6.14 -r1.181.6.15 src/sys/dev/usb/ehci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.14 src/sys/dev/usb/ehci.c:1.181.6.15 --- src/sys/dev/usb/ehci.c:1.181.6.14 Sun Feb 26 05:05:44 2012 +++ src/sys/dev/usb/ehci.c Sat Mar 3 02:28:52 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.14 2012/02/26 05:05:44 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.15 2012/03/03 02:28:52 mrg Exp $ */ /* * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.14 2012/02/26 05:05:44 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.15 2012/03/03 02:28:52 mrg Exp $); #include ohci.h #include uhci.h @@ -2879,7 +2879,7 @@ ehci_alloc_itd(ehci_softc_t *sc) { struct ehci_soft_itd *itd, *freeitd; usbd_status err; - int i, s, offs, frindex, previndex; + int i, offs, frindex, previndex; usb_dma_t dma; KASSERT(mutex_owned(sc-sc_lock)); @@ -2933,7 +2933,6 @@ ehci_alloc_itd(ehci_softc_t *sc) itd-u.frame_list.prev = NULL; itd-xfer_next = NULL; itd-slot = 0; - splx(s); return itd; }
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Mar 3 02:29:35 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ohci.c uhci.c Log Message: use usb_delay_ms_locked() in some more places To generate a diff of this commit: cvs rdiff -u -r1.218.6.16 -r1.218.6.17 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.15 -r1.240.6.16 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.218.6.16 src/sys/dev/usb/ohci.c:1.218.6.17 --- src/sys/dev/usb/ohci.c:1.218.6.16 Sun Feb 26 05:05:44 2012 +++ src/sys/dev/usb/ohci.c Sat Mar 3 02:29:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.218.6.16 2012/02/26 05:05:44 mrg Exp $ */ +/* $NetBSD: ohci.c,v 1.218.6.17 2012/03/03 02:29:34 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ /* @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.16 2012/02/26 05:05:44 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.17 2012/03/03 02:29:34 mrg Exp $); #include opt_usb.h @@ -2360,7 +2360,8 @@ ohci_abort_xfer(usbd_xfer_handle xfer, u * use of the xfer. Also make sure the soft interrupt routine * has run. */ - usb_delay_ms(opipe-pipe.device-bus, 20); /* Hardware finishes in 1ms */ + /* Hardware finishes in 1ms */ + usb_delay_ms_locked(opipe-pipe.device-bus, 20, sc-sc_lock); sc-sc_softwake = 1; usb_schedsoftintr(sc-sc_bus); cv_wait(sc-sc_softwake_cv, sc-sc_lock); @@ -3238,7 +3239,7 @@ ohci_device_intr_start(usbd_xfer_handle * TD is gone. */ if (ohcidebug 5) { - usb_delay_ms(sc-sc_bus, 5); + usb_delay_ms_locked(sc-sc_bus, 5, sc-sc_lock); DPRINTF((ohci_device_intr_transfer: status=%x\n, OREAD4(sc, OHCI_COMMAND_STATUS))); ohci_dump_ed(sc, sed); @@ -3290,7 +3291,7 @@ ohci_device_intr_close(usbd_pipe_handle BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD); if ((O32TOH(sed-ed.ed_tailp) OHCI_HEADMASK) != (O32TOH(sed-ed.ed_headp) OHCI_HEADMASK)) - usb_delay_ms(sc-sc_bus, 2); + usb_delay_ms_locked(sc-sc_bus, 2, sc-sc_lock); for (p = sc-sc_eds[pos]; p p-next != sed; p = p-next) continue; @@ -3617,12 +3618,7 @@ ohci_device_isoc_abort(usbd_xfer_handle #endif } - /* XXXMRG is this ok? */ - mutex_exit(sc-sc_lock); - - usb_delay_ms(sc-sc_bus, OHCI_ITD_NOFFSET); - - mutex_enter(sc-sc_lock); + usb_delay_ms_locked(sc-sc_bus, OHCI_ITD_NOFFSET, sc-sc_lock); /* Run callback. */ usb_transfer_complete(xfer); Index: src/sys/dev/usb/uhci.c diff -u src/sys/dev/usb/uhci.c:1.240.6.15 src/sys/dev/usb/uhci.c:1.240.6.16 --- src/sys/dev/usb/uhci.c:1.240.6.15 Sun Feb 26 05:05:44 2012 +++ src/sys/dev/usb/uhci.c Sat Mar 3 02:29:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: uhci.c,v 1.240.6.15 2012/02/26 05:05:44 mrg Exp $ */ +/* $NetBSD: uhci.c,v 1.240.6.16 2012/03/03 02:29:34 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */ /* @@ -43,7 +43,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.15 2012/02/26 05:05:44 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.16 2012/03/03 02:29:34 mrg Exp $); #include opt_usb.h @@ -736,13 +736,13 @@ uhci_resume(device_t dv, const pmf_qual_ UWRITE1(sc, UHCI_SOF, sc-sc_saved_sof); UHCICMD(sc, cmd | UHCI_CMD_FGR); /* force resume */ - usb_delay_ms(sc-sc_bus, USB_RESUME_DELAY); + usb_delay_ms_locked(sc-sc_bus, USB_RESUME_DELAY, sc-sc_intr_lock); UHCICMD(sc, cmd ~UHCI_CMD_EGSM); /* back to normal */ UWRITE2(sc, UHCI_INTR, UHCI_INTR_TOCRCIE | UHCI_INTR_RIE | UHCI_INTR_IOCE | UHCI_INTR_SPIE); UHCICMD(sc, UHCI_CMD_MAXP); uhci_run(sc, 1); /* and start traffic again */ - usb_delay_ms(sc-sc_bus, USB_RESUME_RECOVERY); + usb_delay_ms_locked(sc-sc_bus, USB_RESUME_RECOVERY, sc-sc_intr_lock); sc-sc_bus.use_polling--; if (sc-sc_intr_xfer != NULL) callout_reset(sc-sc_poll_handle, sc-sc_ival, uhci_poll_hub, @@ -787,7 +787,7 @@ uhci_suspend(device_t dv, const pmf_qual UWRITE2(sc, UHCI_INTR, 0); /* disable intrs */ UHCICMD(sc, cmd | UHCI_CMD_EGSM); /* enter suspend */ - usb_delay_ms(sc-sc_bus, USB_RESUME_WAIT); + usb_delay_ms_locked(sc-sc_bus, USB_RESUME_WAIT, sc-sc_intr_lock); sc-sc_bus.use_polling--; mutex_spin_exit(sc-sc_intr_lock); @@ -1686,7 +1686,7 @@ uhci_waitintr(uhci_softc_t *sc, usbd_xfe xfer-status = USBD_IN_PROGRESS; for (; timo = 0; timo--) { - usb_delay_ms(sc-sc_bus, 1); + usb_delay_ms_locked(sc-sc_bus, 1, sc-sc_lock); DPRINTFN(20,(uhci_waitintr: 0x%04x\n, UREAD2(sc, UHCI_STS))); if (UREAD2(sc, UHCI_STS) UHCI_STS_USBINT) { mutex_spin_enter(sc-sc_intr_lock); @@ -1764,7 +1764,7 @@ uhci_run(uhci_softc_t *sc, int run) UREAD2(sc, UHCI_CMD), UREAD2(sc, UHCI_STS))); return (USBD_NORMAL_COMPLETION); } - usb_delay_ms(sc-sc_bus, 1); + usb_delay_ms_locked(sc-sc_bus, 1, sc-sc_intr_lock); }
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Mar 3 02:28:53 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c Log Message: revert a stray splx(s) that somehow got back in here.. To generate a diff of this commit: cvs rdiff -u -r1.181.6.14 -r1.181.6.15 src/sys/dev/usb/ehci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Mar 3 02:29:35 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ohci.c uhci.c Log Message: use usb_delay_ms_locked() in some more places To generate a diff of this commit: cvs rdiff -u -r1.218.6.16 -r1.218.6.17 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.15 -r1.240.6.16 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 08:02:36 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp uhid.c umass.c usbdi_util.c usbdi_util.h Log Message: rename usb_detach_waitcv() to usb_detach_wait() To generate a diff of this commit: cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.84.12.2 -r1.84.12.3 src/sys/dev/usb/uhid.c cvs rdiff -u -r1.141.6.2 -r1.141.6.3 src/sys/dev/usb/umass.c cvs rdiff -u -r1.55.12.5 -r1.55.12.6 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.41.16.2 -r1.41.16.3 src/sys/dev/usb/usbdi_util.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.6 src/sys/dev/usb/TODO.usbmp:1.1.2.7 --- src/sys/dev/usb/TODO.usbmp:1.1.2.6 Sun Feb 26 07:12:49 2012 +++ src/sys/dev/usb/TODO.usbmp Sun Feb 26 08:02:36 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.6 2012/02/26 07:12:49 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.7 2012/02/26 08:02:36 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -26,8 +26,7 @@ ehci issues: wake/wakeup conversion: - - usb_detach_wait/wakeup() - add a usb_detach_waitcv/broadcast() that -take a mutex (done) + - usb_detach_waitold/wakeupold() - usb_detach_wait/broadcast() - drivers: if_aue.c if_axe.c @@ -43,14 +42,10 @@ wake/wakeup conversion: ulpt.c umass.c - done urio.c - usbdi_util.c - usbdi_util.h uscanner.c usscanner.c ustir.c utoppy.c - - maybe rename usb_detach_wait() to usb_detach_waitold(), so that the -new one can be usb_detach_wait() [old names done] use usb_delay_ms_locked() in places Index: src/sys/dev/usb/uhid.c diff -u src/sys/dev/usb/uhid.c:1.84.12.2 src/sys/dev/usb/uhid.c:1.84.12.3 --- src/sys/dev/usb/uhid.c:1.84.12.2 Sat Feb 25 20:52:29 2012 +++ src/sys/dev/usb/uhid.c Sun Feb 26 08:02:36 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: uhid.c,v 1.84.12.2 2012/02/25 20:52:29 mrg Exp $ */ +/* $NetBSD: uhid.c,v 1.84.12.3 2012/02/26 08:02:36 mrg Exp $ */ /* * Copyright (c) 1998, 2004, 2008, 2012 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uhid.c,v 1.84.12.2 2012/02/25 20:52:29 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uhid.c,v 1.84.12.3 2012/02/26 08:02:36 mrg Exp $); #include opt_compat_netbsd.h @@ -214,7 +214,7 @@ uhid_detach(device_t self, int flags) /* Wake everyone */ cv_broadcast(sc-sc_cv); /* Wait for processes to go away. */ - usb_detach_waitcv(sc-sc_hdev.sc_dev, + usb_detach_wait(sc-sc_hdev.sc_dev, sc-sc_detach_cv, sc-sc_lock); } } Index: src/sys/dev/usb/umass.c diff -u src/sys/dev/usb/umass.c:1.141.6.2 src/sys/dev/usb/umass.c:1.141.6.3 --- src/sys/dev/usb/umass.c:1.141.6.2 Sat Feb 25 20:49:17 2012 +++ src/sys/dev/usb/umass.c Sun Feb 26 08:02:36 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: umass.c,v 1.141.6.2 2012/02/25 20:49:17 mrg Exp $ */ +/* $NetBSD: umass.c,v 1.141.6.3 2012/02/26 08:02:36 mrg Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -124,7 +124,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: umass.c,v 1.141.6.2 2012/02/25 20:49:17 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: umass.c,v 1.141.6.3 2012/02/26 08:02:36 mrg Exp $); #ifdef _KERNEL_OPT #include opt_umass.h @@ -680,7 +680,7 @@ umass_detach(device_t self, int flags) aprint_normal_dev(self, waiting for refcnt\n); #endif /* Wait for processes to go away. */ - usb_detach_waitcv(sc-sc_dev, sc-sc_detach_cv, sc-sc_lock); + usb_detach_wait(sc-sc_dev, sc-sc_detach_cv, sc-sc_lock); } mutex_exit(sc-sc_lock); Index: src/sys/dev/usb/usbdi_util.c diff -u src/sys/dev/usb/usbdi_util.c:1.55.12.5 src/sys/dev/usb/usbdi_util.c:1.55.12.6 --- src/sys/dev/usb/usbdi_util.c:1.55.12.5 Sun Feb 26 07:12:50 2012 +++ src/sys/dev/usb/usbdi_util.c Sun Feb 26 08:02:36 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi_util.c,v 1.55.12.5 2012/02/26 07:12:50 mrg Exp $ */ +/* $NetBSD: usbdi_util.c,v 1.55.12.6 2012/02/26 08:02:36 mrg Exp $ */ /* * Copyright (c) 1998, 2012 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: usbdi_util.c,v 1.55.12.5 2012/02/26 07:12:50 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: usbdi_util.c,v 1.55.12.6 2012/02/26 08:02:36 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -514,13 +514,13 @@ usbd_intr_transfer(usbd_xfer_handle xfer } void -usb_detach_waitcv(device_t dv, kcondvar_t *cv, kmutex_t *lock) +usb_detach_wait(device_t dv, kcondvar_t *cv, kmutex_t *lock) { - DPRINTF((usb_detach_waitcv: waiting for %s\n, device_xname(dv))); + DPRINTF((usb_detach_wait: waiting for %s\n, device_xname(dv))); if (cv_timedwait(cv, lock, hz * 60)) // dv, PZERO, usbdet, hz * 60 - printf(usb_detach_waitcv: %s didn't detach\n, +
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 08:02:36 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp uhid.c umass.c usbdi_util.c usbdi_util.h Log Message: rename usb_detach_waitcv() to usb_detach_wait() To generate a diff of this commit: cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.84.12.2 -r1.84.12.3 src/sys/dev/usb/uhid.c cvs rdiff -u -r1.141.6.2 -r1.141.6.3 src/sys/dev/usb/umass.c cvs rdiff -u -r1.55.12.5 -r1.55.12.6 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.41.16.2 -r1.41.16.3 src/sys/dev/usb/usbdi_util.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 10:26:24 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp ehci.c ohci.c uhci.c uhidev.c umass_scsipi.c umidi.c umidivar.h usb.c usbdi.c usbdivar.h Log Message: copyright maintenence. To generate a diff of this commit: cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.181.6.11 -r1.181.6.12 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.12 -r1.218.6.13 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.11 -r1.240.6.12 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.52.6.2 -r1.52.6.3 src/sys/dev/usb/uhidev.c cvs rdiff -u -r1.38.6.2 -r1.38.6.3 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.53.2.4 -r1.53.2.5 src/sys/dev/usb/umidi.c cvs rdiff -u -r1.17.2.1 -r1.17.2.2 src/sys/dev/usb/umidivar.h cvs rdiff -u -r1.125.6.10 -r1.125.6.11 src/sys/dev/usb/usb.c cvs rdiff -u -r1.134.2.11 -r1.134.2.12 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.93.8.8 -r1.93.8.9 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.1 src/sys/dev/usb/TODO.usbmp:1.1.2.2 --- src/sys/dev/usb/TODO.usbmp:1.1.2.1 Sat Feb 25 07:59:03 2012 +++ src/sys/dev/usb/TODO.usbmp Sat Feb 25 10:26:23 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.1 2012/02/25 07:59:03 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.2 2012/02/25 10:26:23 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -134,9 +134,9 @@ driver testing: STATUS - ugen - pseye - uvideo - - auvitek - - emdtv - - ubt + - auvitek ? (must take kernel lock for scsipi) + - emdtv ? (must take kernel lock for scsipi) + - ubt ? (must take kernel lock for scsipi) - aubtfwl - u3ginit ucom attachments: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.11 src/sys/dev/usb/ehci.c:1.181.6.12 --- src/sys/dev/usb/ehci.c:1.181.6.11 Thu Feb 23 09:25:04 2012 +++ src/sys/dev/usb/ehci.c Sat Feb 25 10:26:23 2012 @@ -1,13 +1,13 @@ -/* $NetBSD: ehci.c,v 1.181.6.11 2012/02/23 09:25:04 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.12 2012/02/25 10:26:23 mrg Exp $ */ /* - * Copyright (c) 2004-2011 The NetBSD Foundation, Inc. + * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lenn...@augustsson.net), Charles M. Hannum, - * Jeremy Morse (jeremy.mo...@gmail.com), and Jared D. McNeill - * (jmcne...@invisible.ca). + * Jeremy Morse (jeremy.mo...@gmail.com), Jared D. McNeill + * (jmcne...@invisible.ca) and Matthew R. Green (m...@eterna.com.au). * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.11 2012/02/23 09:25:04 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.12 2012/02/25 10:26:23 mrg Exp $); #include ohci.h #include uhci.h Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.218.6.12 src/sys/dev/usb/ohci.c:1.218.6.13 --- src/sys/dev/usb/ohci.c:1.218.6.12 Thu Feb 23 09:25:04 2012 +++ src/sys/dev/usb/ohci.c Sat Feb 25 10:26:23 2012 @@ -1,14 +1,14 @@ -/* $NetBSD: ohci.c,v 1.218.6.12 2012/02/23 09:25:04 mrg Exp $ */ +/* $NetBSD: ohci.c,v 1.218.6.13 2012/02/25 10:26:23 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ /* - * Copyright (c) 1998, 2004, 2005, 2011 The NetBSD Foundation, Inc. + * Copyright (c) 1998, 2004, 2005, 2012 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lenn...@augustsson.net) at * Carlstedt Research Technology, Jared D. McNeill (jmcne...@invisible.ca) - * and Matthew R. Green. + * and Matthew R. Green (m...@eterna.com.au). * This code is derived from software contributed to The NetBSD Foundation * by Charles M. Hannum. * @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.12 2012/02/23 09:25:04 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.13 2012/02/25 10:26:23 mrg Exp $); #include opt_usb.h Index: src/sys/dev/usb/uhci.c diff -u src/sys/dev/usb/uhci.c:1.240.6.11 src/sys/dev/usb/uhci.c:1.240.6.12 --- src/sys/dev/usb/uhci.c:1.240.6.11 Thu Feb 23 09:25:04 2012 +++ src/sys/dev/usb/uhci.c Sat Feb 25 10:26:23 2012 @@ -1,14 +1,14 @@ -/* $NetBSD: uhci.c,v 1.240.6.11 2012/02/23 09:25:04 mrg Exp $ */ +/* $NetBSD: uhci.c,v 1.240.6.12 2012/02/25 10:26:23 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */ /* - * Copyright (c) 1998, 2004, 2011 The NetBSD Foundation, Inc. + * Copyright (c) 1998, 2004, 2011, 2012 The NetBSD Foundation,
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 12:53:35 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: if_kue.c ohci.c uhci.c Log Message: remove curproc references To generate a diff of this commit: cvs rdiff -u -r1.74.12.1 -r1.74.12.2 src/sys/dev/usb/if_kue.c cvs rdiff -u -r1.218.6.13 -r1.218.6.14 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.12 -r1.240.6.13 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/if_kue.c diff -u src/sys/dev/usb/if_kue.c:1.74.12.1 src/sys/dev/usb/if_kue.c:1.74.12.2 --- src/sys/dev/usb/if_kue.c:1.74.12.1 Sat Feb 18 07:35:05 2012 +++ src/sys/dev/usb/if_kue.c Sat Feb 25 12:53:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: if_kue.c,v 1.74.12.1 2012/02/18 07:35:05 mrg Exp $ */ +/* $NetBSD: if_kue.c,v 1.74.12.2 2012/02/25 12:53:34 mrg Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul wp...@ee.columbia.edu. All rights reserved. @@ -70,7 +70,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_kue.c,v 1.74.12.1 2012/02/18 07:35:05 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: if_kue.c,v 1.74.12.2 2012/02/25 12:53:34 mrg Exp $); #include opt_inet.h @@ -986,13 +986,6 @@ kue_ioctl(struct ifnet *ifp, u_long comm if (sc-kue_dying) return (EIO); -#ifdef DIAGNOSTIC - if (!curproc) { - printf(%s: no proc!!\n, device_xname(sc-kue_dev)); - return EIO; - } -#endif - s = splnet(); switch(command) { Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.218.6.13 src/sys/dev/usb/ohci.c:1.218.6.14 --- src/sys/dev/usb/ohci.c:1.218.6.13 Sat Feb 25 10:26:23 2012 +++ src/sys/dev/usb/ohci.c Sat Feb 25 12:53:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.218.6.13 2012/02/25 10:26:23 mrg Exp $ */ +/* $NetBSD: ohci.c,v 1.218.6.14 2012/02/25 12:53:34 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ /* @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.13 2012/02/25 10:26:23 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.14 2012/02/25 12:53:34 mrg Exp $); #include opt_usb.h @@ -2323,7 +2323,7 @@ ohci_abort_xfer(usbd_xfer_handle xfer, u return; } - if (xfer-device-bus-intr_context || !curproc) + if (xfer-device-bus-intr_context) panic(ohci_abort_xfer: not in process context); /* Index: src/sys/dev/usb/uhci.c diff -u src/sys/dev/usb/uhci.c:1.240.6.12 src/sys/dev/usb/uhci.c:1.240.6.13 --- src/sys/dev/usb/uhci.c:1.240.6.12 Sat Feb 25 10:26:23 2012 +++ src/sys/dev/usb/uhci.c Sat Feb 25 12:53:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: uhci.c,v 1.240.6.12 2012/02/25 10:26:23 mrg Exp $ */ +/* $NetBSD: uhci.c,v 1.240.6.13 2012/02/25 12:53:34 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */ /* @@ -43,7 +43,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.12 2012/02/25 10:26:23 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uhci.c,v 1.240.6.13 2012/02/25 12:53:34 mrg Exp $); #include opt_usb.h @@ -2152,7 +2152,7 @@ uhci_abort_xfer(usbd_xfer_handle xfer, u return; } - if (xfer-device-bus-intr_context || !curproc) + if (xfer-device-bus-intr_context) panic(uhci_abort_xfer: not in process context); /*
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 12:57:32 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: - noticed a concurrency issue with bus-intr_context member. sometimes the host controller interrupt lock is held, sometimes the USB thread lock is held, and i've seen at least two cases where the non-hard or non-soft interrupt handler triggered this test in a code path that could not have raised it itself. note that this needs attention. - update some lists. To generate a diff of this commit: cvs rdiff -u -r1.1.2.2 -r1.1.2.3 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.2 src/sys/dev/usb/TODO.usbmp:1.1.2.3 --- src/sys/dev/usb/TODO.usbmp:1.1.2.2 Sat Feb 25 10:26:23 2012 +++ src/sys/dev/usb/TODO.usbmp Sat Feb 25 12:57:32 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.2 2012/02/25 10:26:23 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.3 2012/02/25 12:57:32 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -17,9 +17,41 @@ eg, if (lock_ptr) mutex_enter(lock_ptr) add lots of asserts +bus-intr_context issues: + - intr_context is raised when the USB lock is dropped to call the call back +for usb_transfer_complete(), then some other cpu can run, take the lock +and end up triggering an intr_context != 0 condition. + - usb_transfer_complete() is sometimes called with host intr lock held, +sometimes with usb lock + - hardware interrupt takes host intr lock to protect intr_context, but +software interrupt takes USB lock. + - need to re-consider soft_intr() API + + wakeup removal core: - usb_detach_wait/wakeup() - add a usb_detach_cvwait/broadcast() that take a mutex + - drivers: + if_aue.c + if_axe.c + if_udav.c + if_url.c + ubt.c + ucom.c + ucycom.c + ugen.c + uhid.c - done, untested + uhso.c + uirda.c + ulpt.c + umass.c - done, untested + urio.c + usbdi_util.c + usbdi_util.h + uscanner.c + usscanner.c + ustir.c + utoppy.c convert uhidev users to MPSAFE:
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 13:17:16 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uaudio.c Log Message: remove remaining splusb() calls, update some comments. To generate a diff of this commit: cvs rdiff -u -r1.124.2.2 -r1.124.2.3 src/sys/dev/usb/uaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/uaudio.c diff -u src/sys/dev/usb/uaudio.c:1.124.2.2 src/sys/dev/usb/uaudio.c:1.124.2.3 --- src/sys/dev/usb/uaudio.c:1.124.2.2 Fri Feb 24 09:11:42 2012 +++ src/sys/dev/usb/uaudio.c Sat Feb 25 13:17:16 2012 @@ -1,12 +1,12 @@ -/* $NetBSD: uaudio.c,v 1.124.2.2 2012/02/24 09:11:42 mrg Exp $ */ +/* $NetBSD: uaudio.c,v 1.124.2.3 2012/02/25 13:17:16 mrg Exp $ */ /* - * Copyright (c) 1999 The NetBSD Foundation, Inc. + * Copyright (c) 1999, 2012 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lenn...@augustsson.net) at - * Carlstedt Research Technology. + * Carlstedt Research Technology, and Matthew R. Green (m...@eterna.com.au). * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -37,7 +37,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uaudio.c,v 1.124.2.2 2012/02/24 09:11:42 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uaudio.c,v 1.124.2.3 2012/02/25 13:17:16 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -2570,7 +2570,7 @@ uaudio_trigger_input(void *addr, void *s struct uaudio_softc *sc; struct chan *ch; usbd_status err; - int i, s; + int i; sc = addr; if (sc-sc_dying) @@ -2602,10 +2602,8 @@ uaudio_trigger_input(void *addr, void *s ch-arg = arg; mutex_spin_exit(sc-sc_intr_lock); - s = splusb(); for (i = 0; i UAUDIO_NCHANBUFS-1; i++) /* XXX -1 shouldn't be needed */ uaudio_chan_rtransfer(ch); - splx(s); mutex_spin_enter(sc-sc_intr_lock); return 0; @@ -2619,7 +2617,7 @@ uaudio_trigger_output(void *addr, void * struct uaudio_softc *sc; struct chan *ch; usbd_status err; - int i, s; + int i; sc = addr; if (sc-sc_dying) @@ -2651,10 +2649,8 @@ uaudio_trigger_output(void *addr, void * ch-arg = arg; mutex_spin_exit(sc-sc_intr_lock); - s = splusb(); for (i = 0; i UAUDIO_NCHANBUFS-1; i++) /* XXX */ uaudio_chan_ptransfer(ch); - splx(s); mutex_spin_enter(sc-sc_intr_lock); return 0; @@ -2765,7 +2761,7 @@ uaudio_chan_free_buffers(struct uaudio_s usbd_free_xfer(ch-chanbufs[i].xfer); } -/* Called at splusb() */ +/* Called with USB lock held. */ Static void uaudio_chan_ptransfer(struct chan *ch) { @@ -2868,7 +2864,7 @@ uaudio_chan_pintr(usbd_xfer_handle xfer, uaudio_chan_ptransfer(ch); } -/* Called at splusb() */ +/* Called with USB lock held. */ Static void uaudio_chan_rtransfer(struct chan *ch) {
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:46:34 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c ohci.c uhci.c usbdi.c usbdivar.h Log Message: replace the (diagnostic-only) intr_context with checks against LP_INTR and cpu_intr_p(). XXX: there's one check that changes behaviour To generate a diff of this commit: cvs rdiff -u -r1.181.6.12 -r1.181.6.13 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.14 -r1.218.6.15 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.13 -r1.240.6.14 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.134.2.12 -r1.134.2.13 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.93.8.9 -r1.93.8.10 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.12 src/sys/dev/usb/ehci.c:1.181.6.13 --- src/sys/dev/usb/ehci.c:1.181.6.12 Sat Feb 25 10:26:23 2012 +++ src/sys/dev/usb/ehci.c Sat Feb 25 20:46:33 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.12 2012/02/25 10:26:23 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.13 2012/02/25 20:46:33 mrg Exp $ */ /* * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.12 2012/02/25 10:26:23 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.13 2012/02/25 20:46:33 mrg Exp $); #include ohci.h #include uhci.h @@ -69,6 +69,7 @@ __KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.1 #include sys/queue.h #include sys/mutex.h #include sys/bus.h +#include sys/cpu.h #include machine/endian.h @@ -648,7 +649,6 @@ ehci_intr1(ehci_softc_t *sc) return (0); EOWRITE4(sc, EHCI_USBSTS, intrs); /* Acknowledge */ - sc-sc_bus.intr_context++; sc-sc_bus.no_intrs++; if (eintrs EHCI_STS_IAA) { DPRINTF((ehci_intr1: door bell\n)); @@ -676,8 +676,6 @@ ehci_intr1(ehci_softc_t *sc) eintrs = ~EHCI_STS_PCD; } - sc-sc_bus.intr_context--; - if (eintrs != 0) { /* Block unprocessed interrupts. */ sc-sc_eintrs = ~eintrs; @@ -745,10 +743,7 @@ ehci_softintr(void *v) KASSERT(sc-sc_bus.use_polling || mutex_owned(sc-sc_lock)); - DPRINTFN(10,(%s: ehci_softintr (%d)\n, device_xname(sc-sc_dev), - sc-sc_bus.intr_context)); - - sc-sc_bus.intr_context++; + DPRINTFN(10,(%s: ehci_softintr\n, device_xname(sc-sc_dev))); /* * The only explanation I can think of for why EHCI is as brain dead @@ -771,8 +766,6 @@ ehci_softintr(void *v) sc-sc_softwake = 0; cv_broadcast(sc-sc_softwake_cv); } - - sc-sc_bus.intr_context--; } /* Check for an interrupt. */ @@ -3010,7 +3003,7 @@ ehci_abort_xfer(usbd_xfer_handle xfer, u return; } - if (xfer-device-bus-intr_context) + if (cpu_intr_p() || (curlwp-l_pflag LP_INTR) != 0) panic(ehci_abort_xfer: not in process context); /* Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.218.6.14 src/sys/dev/usb/ohci.c:1.218.6.15 --- src/sys/dev/usb/ohci.c:1.218.6.14 Sat Feb 25 12:53:34 2012 +++ src/sys/dev/usb/ohci.c Sat Feb 25 20:46:34 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.218.6.14 2012/02/25 12:53:34 mrg Exp $ */ +/* $NetBSD: ohci.c,v 1.218.6.15 2012/02/25 20:46:34 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ /* @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.14 2012/02/25 12:53:34 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.15 2012/02/25 20:46:34 mrg Exp $); #include opt_usb.h @@ -54,6 +54,7 @@ __KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.2 #include sys/select.h #include sys/proc.h #include sys/queue.h +#include sys/cpu.h #include sys/bus.h #include machine/endian.h @@ -1187,7 +1188,6 @@ ohci_intr1(ohci_softc_t *sc) return (0); } - sc-sc_bus.intr_context++; sc-sc_bus.no_intrs++; if (eintrs OHCI_SO) { sc-sc_overrun_cnt++; @@ -1224,8 +1224,6 @@ ohci_intr1(ohci_softc_t *sc) softint_schedule(sc-sc_rhsc_si); } - sc-sc_bus.intr_context--; - if (eintrs != 0) { /* Block unprocessed interrupts. */ OWRITE4(sc, OHCI_INTERRUPT_DISABLE, eintrs); @@ -1287,8 +1285,6 @@ ohci_softintr(void *v) DPRINTFN(10,(ohci_softintr: enter\n)); - sc-sc_bus.intr_context++; - usb_syncmem(sc-sc_hccadma, offsetof(struct ohci_hcca, hcca_done_head), sizeof(sc-sc_hcca-hcca_done_head), BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD); @@ -1486,8 +1482,6 @@ ohci_softintr(void *v) cv_broadcast(sc-sc_softwake_cv); } - sc-sc_bus.intr_context--; - DPRINTFN(10,(ohci_softintr: done:\n)); } @@ -2323,7 +2317,7 @@ ohci_abort_xfer(usbd_xfer_handle xfer, u return; } - if (xfer-device-bus-intr_context) + if (cpu_intr_p() || (curlwp-l_pflag LP_INTR) != 0) panic(ohci_abort_xfer: not in process context); /* Index: src/sys/dev/usb/uhci.c diff -u src/sys/dev/usb/uhci.c:1.240.6.13 src/sys/dev/usb/uhci.c:1.240.6.14 ---
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:47:32 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: usbdi_util.c usbdi_util.h Log Message: implement cv/mutex based usb_detach_wait/wakeup(). To generate a diff of this commit: cvs rdiff -u -r1.55.12.2 -r1.55.12.3 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.41 -r1.41.16.1 src/sys/dev/usb/usbdi_util.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/usbdi_util.c diff -u src/sys/dev/usb/usbdi_util.c:1.55.12.2 src/sys/dev/usb/usbdi_util.c:1.55.12.3 --- src/sys/dev/usb/usbdi_util.c:1.55.12.2 Thu Feb 23 09:25:03 2012 +++ src/sys/dev/usb/usbdi_util.c Sat Feb 25 20:47:32 2012 @@ -1,12 +1,12 @@ -/* $NetBSD: usbdi_util.c,v 1.55.12.2 2012/02/23 09:25:03 mrg Exp $ */ +/* $NetBSD: usbdi_util.c,v 1.55.12.3 2012/02/25 20:47:32 mrg Exp $ */ /* - * Copyright (c) 1998 The NetBSD Foundation, Inc. + * Copyright (c) 1998, 2012 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lenn...@augustsson.net) at - * Carlstedt Research Technology. + * Carlstedt Research Technology and Matthew R. Green (m...@eterna.com.au). * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: usbdi_util.c,v 1.55.12.2 2012/02/23 09:25:03 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: usbdi_util.c,v 1.55.12.3 2012/02/25 20:47:32 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -514,6 +514,23 @@ usbd_intr_transfer(usbd_xfer_handle xfer } void +usb_detach_waitcv(device_t dv, kcondvar_t *cv, kmutex_t *lock) +{ + DPRINTF((usb_detach_waitcv: waiting for %s\n, device_xname(dv))); + if (cv_timedwait(cv, lock, hz * 60)) // dv, PZERO, usbdet, hz * 60 + printf(usb_detach_waitcv: %s didn't detach\n, + device_xname(dv)); + DPRINTF((usb_detach_waitcv: %s done\n, device_xname(dv))); +} + +void +usb_detach_broadcast(device_t dv, kcondvar_t *cv) +{ + DPRINTF((usb_detach_broadcast: for %s\n, device_xname(dv))); + cv_broadcast(cv); +} + +void usb_detach_wait(device_t dv) { DPRINTF((usb_detach_wait: waiting for %s\n, device_xname(dv))); Index: src/sys/dev/usb/usbdi_util.h diff -u src/sys/dev/usb/usbdi_util.h:1.41 src/sys/dev/usb/usbdi_util.h:1.41.16.1 --- src/sys/dev/usb/usbdi_util.h:1.41 Thu Nov 12 08:32:57 2009 +++ src/sys/dev/usb/usbdi_util.h Sat Feb 25 20:47:32 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi_util.h,v 1.41 2009/11/12 08:32:57 uebayasi Exp $ */ +/* $NetBSD: usbdi_util.h,v 1.41.16.1 2012/02/25 20:47:32 mrg Exp $ */ /* * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc. @@ -86,6 +86,12 @@ usbd_status usbd_intr_transfer(usbd_xfer void usb_detach_wait(device_t); void usb_detach_wakeup(device_t); +/* + * MPSAFE versions - mutex must be at IPL_USB. + */ +void usb_detach_waitcv(device_t dv, kcondvar_t *, kmutex_t *); +void usb_detach_broadcast(device_t, kcondvar_t *); + typedef struct { uByte bLength;
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:49:17 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: umass.c umassvar.h Log Message: convert to using SMP usb_detach_wait/wakeup(). To generate a diff of this commit: cvs rdiff -u -r1.141.6.1 -r1.141.6.2 src/sys/dev/usb/umass.c cvs rdiff -u -r1.31 -r1.31.6.1 src/sys/dev/usb/umassvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/umass.c diff -u src/sys/dev/usb/umass.c:1.141.6.1 src/sys/dev/usb/umass.c:1.141.6.2 --- src/sys/dev/usb/umass.c:1.141.6.1 Fri Feb 24 09:11:43 2012 +++ src/sys/dev/usb/umass.c Sat Feb 25 20:49:17 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: umass.c,v 1.141.6.1 2012/02/24 09:11:43 mrg Exp $ */ +/* $NetBSD: umass.c,v 1.141.6.2 2012/02/25 20:49:17 mrg Exp $ */ /* * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -124,7 +124,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: umass.c,v 1.141.6.1 2012/02/24 09:11:43 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: umass.c,v 1.141.6.2 2012/02/25 20:49:17 mrg Exp $); #ifdef _KERNEL_OPT #include opt_umass.h @@ -309,6 +309,9 @@ umass_attach(device_t parent, device_t s aprint_naive(\n); aprint_normal(\n); + mutex_init(sc-sc_lock, MUTEX_DEFAULT, IPL_USB); + cv_init(sc-sc_detach_cv, umassdet); + devinfop = usbd_devinfo_alloc(uaa-device, 0); aprint_normal_dev(self, %s\n, devinfop); usbd_devinfo_free(devinfop); @@ -658,7 +661,7 @@ umass_detach(device_t self, int flags) { struct umass_softc *sc = device_private(self); struct umassbus_softc *scbus; - int rv = 0, i, s; + int rv = 0, i; DPRINTF(UDMASS_USB, (%s: detached\n, device_xname(sc-sc_dev))); @@ -671,15 +674,15 @@ umass_detach(device_t self, int flags) } /* Do we really need reference counting? Perhaps in ioctl() */ - s = splusb(); + mutex_enter(sc-sc_lock); if (--sc-sc_refcnt = 0) { #ifdef DIAGNOSTIC aprint_normal_dev(self, waiting for refcnt\n); #endif /* Wait for processes to go away. */ - usb_detach_wait(sc-sc_dev); + usb_detach_waitcv(sc-sc_dev, sc-sc_detach_cv, sc-sc_lock); } - splx(s); + mutex_exit(sc-sc_lock); scbus = sc-bus; if (scbus != NULL) { @@ -697,6 +700,9 @@ umass_detach(device_t self, int flags) usbd_add_drv_event(USB_EVENT_DRIVER_DETACH, sc-sc_udev, sc-sc_dev); + mutex_destroy(sc-sc_lock); + cv_destroy(sc-sc_detach_cv); + return (rv); } Index: src/sys/dev/usb/umassvar.h diff -u src/sys/dev/usb/umassvar.h:1.31 src/sys/dev/usb/umassvar.h:1.31.6.1 --- src/sys/dev/usb/umassvar.h:1.31 Sun Jul 31 16:32:02 2011 +++ src/sys/dev/usb/umassvar.h Sat Feb 25 20:49:17 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: umassvar.h,v 1.31 2011/07/31 16:32:02 jakllsch Exp $ */ +/* $NetBSD: umassvar.h,v 1.31.6.1 2012/02/25 20:49:17 mrg Exp $ */ /*- * Copyright (c) 1999 MAEKAWA Masahide bis...@rr.iij4u.or.jp, * Nick Hibma n_hi...@freebsd.org @@ -161,6 +161,9 @@ struct umass_softc { const struct umass_wire_methods *sc_methods; + kmutex_t sc_lock; + kcondvar_t sc_detach_cv; + u_int8_t sc_wire; /* wire protocol */ #define UMASS_WPROTO_UNSPEC 0 #define UMASS_WPROTO_BBB 1
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:52:29 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uhid.c Log Message: mark D_MPSAFE: - spl - mutex - convert to SMP usb_detach_wait/wakeup() - add a IPL_NONE access lock, used in most devsw entry points To generate a diff of this commit: cvs rdiff -u -r1.84.12.1 -r1.84.12.2 src/sys/dev/usb/uhid.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/uhid.c diff -u src/sys/dev/usb/uhid.c:1.84.12.1 src/sys/dev/usb/uhid.c:1.84.12.2 --- src/sys/dev/usb/uhid.c:1.84.12.1 Fri Feb 24 09:11:43 2012 +++ src/sys/dev/usb/uhid.c Sat Feb 25 20:52:29 2012 @@ -1,12 +1,12 @@ -/* $NetBSD: uhid.c,v 1.84.12.1 2012/02/24 09:11:43 mrg Exp $ */ +/* $NetBSD: uhid.c,v 1.84.12.2 2012/02/25 20:52:29 mrg Exp $ */ /* - * Copyright (c) 1998, 2004, 2008 The NetBSD Foundation, Inc. + * Copyright (c) 1998, 2004, 2008, 2012 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Lennart Augustsson (lenn...@augustsson.net) at - * Carlstedt Research Technology. + * Carlstedt Research Technology and Matthew R. Green (m...@eterna.com.au). * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: uhid.c,v 1.84.12.1 2012/02/24 09:11:43 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: uhid.c,v 1.84.12.2 2012/02/25 20:52:29 mrg Exp $); #include opt_compat_netbsd.h @@ -78,6 +78,11 @@ int uhiddebug = 0; struct uhid_softc { struct uhidev sc_hdev; + kmutex_t sc_access_lock; /* serialises syscall accesses */ + kmutex_t sc_lock; /* protects refcnt, others */ + kcondvar_t sc_cv; + kcondvar_t sc_detach_cv; + int sc_isize; int sc_osize; int sc_fsize; @@ -110,7 +115,7 @@ dev_type_kqfilter(uhidkqfilter); const struct cdevsw uhid_cdevsw = { uhidopen, uhidclose, uhidread, uhidwrite, uhidioctl, - nostop, notty, uhidpoll, nommap, uhidkqfilter, D_OTHER, + nostop, notty, uhidpoll, nommap, uhidkqfilter, D_OTHER | D_MPSAFE, }; Static void uhid_intr(struct uhidev *, void *, u_int len); @@ -168,6 +173,11 @@ uhid_attach(device_t parent, device_t se aprint_normal(: input=%d, output=%d, feature=%d\n, sc-sc_isize, sc-sc_osize, sc-sc_fsize); + mutex_init(sc-sc_access_lock, MUTEX_DEFAULT, IPL_NONE); + mutex_init(sc-sc_lock, MUTEX_DEFAULT, IPL_USB); + cv_init(sc-sc_cv, uhidrea); + cv_init(sc-sc_detach_cv, uhiddet); + if (!pmf_device_register(self, NULL, NULL)) aprint_error_dev(self, couldn't establish power handler\n); @@ -192,23 +202,23 @@ int uhid_detach(device_t self, int flags) { struct uhid_softc *sc = device_private(self); - int s; int maj, mn; DPRINTF((uhid_detach: sc=%p flags=%d\n, sc, flags)); sc-sc_dying = 1; + mutex_enter(sc-sc_lock); if (sc-sc_hdev.sc_state UHIDEV_OPEN) { - s = splusb(); if (--sc-sc_refcnt = 0) { /* Wake everyone */ - wakeup(sc-sc_q); + cv_broadcast(sc-sc_cv); /* Wait for processes to go away. */ - usb_detach_wait(sc-sc_hdev.sc_dev); + usb_detach_waitcv(sc-sc_hdev.sc_dev, + sc-sc_detach_cv, sc-sc_lock); } - splx(s); } + mutex_exit(sc-sc_lock); /* locate the major number */ maj = cdevsw_lookup_major(uhid_cdevsw); @@ -222,6 +232,10 @@ uhid_detach(device_t self, int flags) sc-sc_hdev.sc_parent-sc_udev, sc-sc_hdev.sc_dev); #endif + cv_destroy(sc-sc_cv); + cv_destroy(sc-sc_detach_cv); + mutex_destroy(sc-sc_lock); + mutex_destroy(sc-sc_access_lock); seldestroy(sc-sc_rsel); softint_disestablish(sc-sc_sih); @@ -244,18 +258,20 @@ uhid_intr(struct uhidev *addr, void *dat } #endif + mutex_enter(sc-sc_lock); (void)b_to_q(data, len, sc-sc_q); if (sc-sc_state UHID_ASLP) { sc-sc_state = ~UHID_ASLP; DPRINTFN(5, (uhid_intr: waking %p\n, sc-sc_q)); - wakeup(sc-sc_q); + cv_broadcast(sc-sc_cv); } selnotify(sc-sc_rsel, 0, 0); if (sc-sc_async != NULL) { DPRINTFN(3, (uhid_intr: sending SIGIO %p\n, sc-sc_async)); softint_schedule(sc-sc_sih); } + mutex_exit(sc-sc_lock); } void @@ -272,8 +288,7 @@ uhid_softintr(void *cookie) } int -uhidopen(dev_t dev, int flag, int mode, -struct lwp *l) +uhidopen(dev_t dev, int flag, int mode, struct lwp *l) { struct uhid_softc *sc; int error; @@ -287,16 +302,23 @@ uhidopen(dev_t dev, int flag, int mode, if (sc-sc_dying) return (ENXIO); + mutex_enter(sc-sc_access_lock); error = uhidev_open(sc-sc_hdev); - if (error) + if (error) { + mutex_exit(sc-sc_access_lock); return (error); + } + mutex_exit(sc-sc_access_lock); if (clalloc(sc-sc_q, UHID_BSIZE, 0) == -1) { + mutex_enter(sc-sc_access_lock); uhidev_close(sc-sc_hdev); + mutex_exit(sc-sc_access_lock); return (ENOMEM); } sc-sc_obuf = malloc(sc-sc_osize,
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:54:03 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: update to reality: - intr_context fixed - SMP usb_detach_wait/wakeup() - mark a couple more drivers at tested To generate a diff of this commit: cvs rdiff -u -r1.1.2.3 -r1.1.2.4 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. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.3 src/sys/dev/usb/TODO.usbmp:1.1.2.4 --- src/sys/dev/usb/TODO.usbmp:1.1.2.3 Sat Feb 25 12:57:32 2012 +++ src/sys/dev/usb/TODO.usbmp Sat Feb 25 20:54:03 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.3 2012/02/25 12:57:32 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.4 2012/02/25 20:54:03 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -17,20 +17,13 @@ eg, if (lock_ptr) mutex_enter(lock_ptr) add lots of asserts -bus-intr_context issues: - - intr_context is raised when the USB lock is dropped to call the call back -for usb_transfer_complete(), then some other cpu can run, take the lock -and end up triggering an intr_context != 0 condition. - - usb_transfer_complete() is sometimes called with host intr lock held, -sometimes with usb lock - - hardware interrupt takes host intr lock to protect intr_context, but -software interrupt takes USB lock. - - need to re-consider soft_intr() API +usb_transfer_complete() is sometimes called with host intr lock held, +sometimes with usb lock. may need to re-consider soft_intr() API. -wakeup removal core: +wake/wakeup conversion: - usb_detach_wait/wakeup() - add a usb_detach_cvwait/broadcast() that -take a mutex +take a mutex (done) - drivers: if_aue.c if_axe.c @@ -40,7 +33,7 @@ wakeup removal core: ucom.c ucycom.c ugen.c - uhid.c - done, untested + uhid.c - done uhso.c uirda.c ulpt.c @@ -113,17 +106,18 @@ missing CALLOUT_MPSAFE drivers: - if_ural - if_url - if_zyd - - ohci - - uhci - ukbd - ulpt - - usbdi - uyurex + - ohci + - uhci + - usbdi + driver testing: STATUS - uhub working - - uhid working, MPSAFE patches not yet fully tested + - uhid working - uhidev working - ums working - uts
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sat Feb 25 21:15:39 UTC 2012 Modified Files: src/sys/arch/mips/adm5120/dev [jmcneill-usbmp]: ahci.c src/sys/dev/ic [jmcneill-usbmp]: sl811hs.c Log Message: catch up with bus-intr_context going away. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.7.6.1 src/sys/arch/mips/adm5120/dev/ahci.c cvs rdiff -u -r1.31.2.1 -r1.31.2.2 src/sys/dev/ic/sl811hs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/mips/adm5120/dev/ahci.c diff -u src/sys/arch/mips/adm5120/dev/ahci.c:1.7 src/sys/arch/mips/adm5120/dev/ahci.c:1.7.6.1 --- src/sys/arch/mips/adm5120/dev/ahci.c:1.7 Fri Jul 1 18:38:49 2011 +++ src/sys/arch/mips/adm5120/dev/ahci.c Sat Feb 25 21:15:39 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ahci.c,v 1.7 2011/07/01 18:38:49 dyoung Exp $ */ +/* $NetBSD: ahci.c,v 1.7.6.1 2012/02/25 21:15:39 mrg Exp $ */ /*- * Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko. @@ -64,7 +64,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ahci.c,v 1.7 2011/07/01 18:38:49 dyoung Exp $); +__KERNEL_RCSID(0, $NetBSD: ahci.c,v 1.7.6.1 2012/02/25 21:15:39 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -460,9 +460,7 @@ ahci_poll_hub(void *arg) xfer-actlen = 1; xfer-status = USBD_NORMAL_COMPLETION; s = splusb(); - xfer-device-bus-intr_context++; usb_transfer_complete(xfer); - xfer-device-bus-intr_context--; splx(s); } @@ -1289,9 +1287,7 @@ ahci_poll_device(void *arg) xfer-status = USBD_NORMAL_COMPLETION; s = splusb(); - xfer-device-bus-intr_context++; usb_transfer_complete(xfer); - xfer-device-bus-intr_context--; splx(s); } Index: src/sys/dev/ic/sl811hs.c diff -u src/sys/dev/ic/sl811hs.c:1.31.2.1 src/sys/dev/ic/sl811hs.c:1.31.2.2 --- src/sys/dev/ic/sl811hs.c:1.31.2.1 Sun Dec 4 13:23:16 2011 +++ src/sys/dev/ic/sl811hs.c Sat Feb 25 21:15:38 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: sl811hs.c,v 1.31.2.1 2011/12/04 13:23:16 jmcneill Exp $ */ +/* $NetBSD: sl811hs.c,v 1.31.2.2 2012/02/25 21:15:38 mrg Exp $ */ /* * Not (c) 2007 Matthew Orgass @@ -84,7 +84,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: sl811hs.c,v 1.31.2.1 2011/12/04 13:23:16 jmcneill Exp $); +__KERNEL_RCSID(0, $NetBSD: sl811hs.c,v 1.31.2.2 2012/02/25 21:15:38 mrg Exp $); #include opt_slhci.h @@ -1471,7 +1471,6 @@ slhci_do_callback(struct slhci_softc *sc int repeat; - sc-sc_bus.intr_context++; start_cc_time(t_callback, (u_int)xfer); simple_unlock(sc-sc_lock); splx(*s); @@ -1483,7 +1482,6 @@ slhci_do_callback(struct slhci_softc *sc *s = splhardusb(); simple_lock(sc-sc_lock); stop_cc_time(t_callback); - sc-sc_bus.intr_context--; if (repeat !sc-sc_bus.use_polling) slhci_do_repeat(sc, xfer); @@ -3661,8 +3659,7 @@ slhci_log_sc(void) DDOLOG(frame=%d rootintr=%p, t-frame, t-rootintr, 0,0); - DDOLOG(use_polling=%d intr_context=%d, ssc-sc_bus.use_polling, - ssc-sc_bus.intr_context, 0,0); + DDOLOG(use_polling=%d, ssc-sc_bus.use_polling, 0,0); } void
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 05:05:45 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp ehci.c if_url.c ohci.c uhci.c usb.c usbdi.c usbdi_util.c Log Message: - add some more XXXSMP ok tags - use cpu_softintr_p() instead of checking LP_INTR directly To generate a diff of this commit: cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.181.6.13 -r1.181.6.14 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.38.12.1 -r1.38.12.2 src/sys/dev/usb/if_url.c cvs rdiff -u -r1.218.6.15 -r1.218.6.16 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.14 -r1.240.6.15 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.125.6.11 -r1.125.6.12 src/sys/dev/usb/usb.c cvs rdiff -u -r1.134.2.13 -r1.134.2.14 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.55.12.3 -r1.55.12.4 src/sys/dev/usb/usbdi_util.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.4 src/sys/dev/usb/TODO.usbmp:1.1.2.5 --- src/sys/dev/usb/TODO.usbmp:1.1.2.4 Sat Feb 25 20:54:03 2012 +++ src/sys/dev/usb/TODO.usbmp Sun Feb 26 05:05:44 2012 @@ -1,11 +1,11 @@ -$NetBSD: TODO.usbmp,v 1.1.2.4 2012/02/25 20:54:03 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.5 2012/02/26 05:05:44 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. -host controller porting: - - slhci +host controllers needing to be ported: + - dev/ic/slhci.c - arch/mips/adm5120/dev/ahci.c - rump/dev/lib/libugenhc/ugenhc.c @@ -14,7 +14,10 @@ use /* XXXSMP ok */ markers for non-SMP- eg, if (lock_ptr) mutex_enter(lock_ptr); else s = splusb(); -add lots of asserts +add lots more asserts + + +usb_event_thread() startup should use something to sync companions usb_transfer_complete() is sometimes called with host intr lock held, @@ -22,7 +25,7 @@ sometimes with usb lock. may need to re wake/wakeup conversion: - - usb_detach_wait/wakeup() - add a usb_detach_cvwait/broadcast() that + - usb_detach_wait/wakeup() - add a usb_detach_waitcv/broadcast() that take a mutex (done) - drivers: if_aue.c @@ -37,7 +40,7 @@ wake/wakeup conversion: uhso.c uirda.c ulpt.c - umass.c - done, untested + umass.c - done urio.c usbdi_util.c usbdi_util.h @@ -45,6 +48,8 @@ wake/wakeup conversion: usscanner.c ustir.c utoppy.c + - maybe rename usb_detach_wait() to usb_detach_waitold(), so that the +new one can be usb_detach_waitcv() convert uhidev users to MPSAFE: @@ -74,8 +79,7 @@ wakeup/tsleep drivers: - uirda.c - ulpt.c - umass_isdata.c - - usb.c - - usb_subr.c + - usb_subr.c: usb_delay_ms() should use kpause - ustir.c - uthum.c - utoppy.c @@ -110,10 +114,6 @@ missing CALLOUT_MPSAFE drivers: - ulpt - uyurex - - ohci - - uhci - - usbdi - driver testing: STATUS - uhub working Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.13 src/sys/dev/usb/ehci.c:1.181.6.14 --- src/sys/dev/usb/ehci.c:1.181.6.13 Sat Feb 25 20:46:33 2012 +++ src/sys/dev/usb/ehci.c Sun Feb 26 05:05:44 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.13 2012/02/25 20:46:33 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.14 2012/02/26 05:05:44 mrg Exp $ */ /* * Copyright (c) 2004-2012 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.13 2012/02/25 20:46:33 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.14 2012/02/26 05:05:44 mrg Exp $); #include ohci.h #include uhci.h @@ -548,7 +548,7 @@ ehci_init(ehci_softc_t *sc) sc-sc_async_head = sqh; EOWRITE4(sc, EHCI_ASYNCLISTADDR, sqh-physaddr | EHCI_LINK_QH); - callout_init((sc-sc_tmo_intrlist), CALLOUT_MPSAFE); + callout_init(sc-sc_tmo_intrlist, CALLOUT_MPSAFE); /* Turn on controller */ EOWRITE4(sc, EHCI_USBCMD, @@ -3003,7 +3003,7 @@ ehci_abort_xfer(usbd_xfer_handle xfer, u return; } - if (cpu_intr_p() || (curlwp-l_pflag LP_INTR) != 0) + if (cpu_intr_p() || cpu_softintr_p()) panic(ehci_abort_xfer: not in process context); /* Index: src/sys/dev/usb/if_url.c diff -u src/sys/dev/usb/if_url.c:1.38.12.1 src/sys/dev/usb/if_url.c:1.38.12.2 --- src/sys/dev/usb/if_url.c:1.38.12.1 Sat Feb 18 07:35:06 2012 +++ src/sys/dev/usb/if_url.c Sun Feb 26 05:05:44 2012 @@ -1,4 +1,5 @@ -/* $NetBSD: if_url.c,v 1.38.12.1 2012/02/18 07:35:06 mrg Exp $ */ +/* $NetBSD: if_url.c,v 1.38.12.2 2012/02/26 05:05:44 mrg Exp $ */ + /* * Copyright (c) 2001, 2002 * Shingo WATANABE n...@nabechan.org. All rights reserved. @@ -43,7 +44,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_url.c,v 1.38.12.1 2012/02/18 07:35:06 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: if_url.c,v 1.38.12.2 2012/02/26 05:05:44 mrg Exp $); #include opt_inet.h Index: src/sys/dev/usb/ohci.c diff -u
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 06:28:59 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: emdtv.c emdtv_dtv.c ezload.c if_cue.c if_kue.c if_otus.c if_upgt.c udsbr.c Log Message: include usbdivar.h in several places that should. To generate a diff of this commit: cvs rdiff -u -r1.4.6.1 -r1.4.6.2 src/sys/dev/usb/emdtv.c cvs rdiff -u -r1.5.6.1 -r1.5.6.2 src/sys/dev/usb/emdtv_dtv.c cvs rdiff -u -r1.12 -r1.12.38.1 src/sys/dev/usb/ezload.c cvs rdiff -u -r1.60.12.2 -r1.60.12.3 src/sys/dev/usb/if_cue.c cvs rdiff -u -r1.74.12.2 -r1.74.12.3 src/sys/dev/usb/if_kue.c cvs rdiff -u -r1.9 -r1.9.14.1 src/sys/dev/usb/if_otus.c cvs rdiff -u -r1.3.14.1 -r1.3.14.2 src/sys/dev/usb/if_upgt.c cvs rdiff -u -r1.18.12.1 -r1.18.12.2 src/sys/dev/usb/udsbr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/emdtv.c diff -u src/sys/dev/usb/emdtv.c:1.4.6.1 src/sys/dev/usb/emdtv.c:1.4.6.2 --- src/sys/dev/usb/emdtv.c:1.4.6.1 Sat Feb 18 07:35:04 2012 +++ src/sys/dev/usb/emdtv.c Sun Feb 26 06:28:58 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: emdtv.c,v 1.4.6.1 2012/02/18 07:35:04 mrg Exp $ */ +/* $NetBSD: emdtv.c,v 1.4.6.2 2012/02/26 06:28:58 mrg Exp $ */ /*- * Copyright (c) 2008, 2011 Jared D. McNeill jmcne...@invisible.ca @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: emdtv.c,v 1.4.6.1 2012/02/18 07:35:04 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: emdtv.c,v 1.4.6.2 2012/02/26 06:28:58 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -38,6 +38,7 @@ __KERNEL_RCSID(0, $NetBSD: emdtv.c,v 1. #include dev/usb/usb.h #include dev/usb/usbdi.h #include dev/usb/usbdi_util.h +#include dev/usb/usbdivar.h #include dev/usb/usbdevs.h #include dev/usb/emdtvvar.h Index: src/sys/dev/usb/emdtv_dtv.c diff -u src/sys/dev/usb/emdtv_dtv.c:1.5.6.1 src/sys/dev/usb/emdtv_dtv.c:1.5.6.2 --- src/sys/dev/usb/emdtv_dtv.c:1.5.6.1 Sat Feb 18 07:35:04 2012 +++ src/sys/dev/usb/emdtv_dtv.c Sun Feb 26 06:28:58 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: emdtv_dtv.c,v 1.5.6.1 2012/02/18 07:35:04 mrg Exp $ */ +/* $NetBSD: emdtv_dtv.c,v 1.5.6.2 2012/02/26 06:28:58 mrg Exp $ */ /*- * Copyright (c) 2008, 2011 Jared D. McNeill jmcne...@invisible.ca @@ -27,7 +27,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: emdtv_dtv.c,v 1.5.6.1 2012/02/18 07:35:04 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: emdtv_dtv.c,v 1.5.6.2 2012/02/26 06:28:58 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -37,6 +37,7 @@ __KERNEL_RCSID(0, $NetBSD: emdtv_dtv.c, #include dev/usb/usb.h #include dev/usb/usbdi.h #include dev/usb/usbdi_util.h +#include dev/usb/usbdivar.h #include dev/usb/usbdevs.h #include dev/i2c/i2cvar.h Index: src/sys/dev/usb/ezload.c diff -u src/sys/dev/usb/ezload.c:1.12 src/sys/dev/usb/ezload.c:1.12.38.1 --- src/sys/dev/usb/ezload.c:1.12 Mon Apr 28 20:23:59 2008 +++ src/sys/dev/usb/ezload.c Sun Feb 26 06:28:58 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ezload.c,v 1.12 2008/04/28 20:23:59 martin Exp $ */ +/* $NetBSD: ezload.c,v 1.12.38.1 2012/02/26 06:28:58 mrg Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ezload.c,v 1.12 2008/04/28 20:23:59 martin Exp $); +__KERNEL_RCSID(0, $NetBSD: ezload.c,v 1.12.38.1 2012/02/26 06:28:58 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -41,6 +41,7 @@ __KERNEL_RCSID(0, $NetBSD: ezload.c,v 1 #include dev/usb/usb.h #include dev/usb/usbdi.h #include dev/usb/usbdi_util.h +#include dev/usb/usbdivar.h #include dev/usb/ezload.h Index: src/sys/dev/usb/if_cue.c diff -u src/sys/dev/usb/if_cue.c:1.60.12.2 src/sys/dev/usb/if_cue.c:1.60.12.3 --- src/sys/dev/usb/if_cue.c:1.60.12.2 Fri Feb 24 09:11:42 2012 +++ src/sys/dev/usb/if_cue.c Sun Feb 26 06:28:58 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: if_cue.c,v 1.60.12.2 2012/02/24 09:11:42 mrg Exp $ */ +/* $NetBSD: if_cue.c,v 1.60.12.3 2012/02/26 06:28:58 mrg Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul wp...@ee.columbia.edu. All rights reserved. @@ -56,7 +56,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_cue.c,v 1.60.12.2 2012/02/24 09:11:42 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: if_cue.c,v 1.60.12.3 2012/02/26 06:28:58 mrg Exp $); #include opt_inet.h @@ -68,7 +68,7 @@ __KERNEL_RCSID(0, $NetBSD: if_cue.c,v 1 #include sys/malloc.h #include sys/kernel.h #include sys/socket.h - +#include sys/bus.h #include sys/device.h #include sys/rnd.h @@ -86,6 +86,7 @@ __KERNEL_RCSID(0, $NetBSD: if_cue.c,v 1 #include dev/usb/usb.h #include dev/usb/usbdi.h #include dev/usb/usbdi_util.h +#include dev/usb/usbdivar.h #include dev/usb/usbdevs.h #include dev/usb/if_cuereg.h Index: src/sys/dev/usb/if_kue.c diff -u src/sys/dev/usb/if_kue.c:1.74.12.2 src/sys/dev/usb/if_kue.c:1.74.12.3 --- src/sys/dev/usb/if_kue.c:1.74.12.2 Sat Feb 25 12:53:34 2012 +++
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 06:59:39 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ukbd.c usb_subr.c usbdivar.h Log Message: use kpause() in usb{d,}_delay_ms(), and add a version that takes a mutex To generate a diff of this commit: cvs rdiff -u -r1.113.4.3 -r1.113.4.4 src/sys/dev/usb/ukbd.c cvs rdiff -u -r1.180.6.3 -r1.180.6.4 src/sys/dev/usb/usb_subr.c cvs rdiff -u -r1.93.8.10 -r1.93.8.11 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ukbd.c diff -u src/sys/dev/usb/ukbd.c:1.113.4.3 src/sys/dev/usb/ukbd.c:1.113.4.4 --- src/sys/dev/usb/ukbd.c:1.113.4.3 Fri Feb 24 09:11:43 2012 +++ src/sys/dev/usb/ukbd.c Sun Feb 26 06:59:38 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ukbd.c,v 1.113.4.3 2012/02/24 09:11:43 mrg Exp $*/ +/* $NetBSD: ukbd.c,v 1.113.4.4 2012/02/26 06:59:38 mrg Exp $*/ /* * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ukbd.c,v 1.113.4.3 2012/02/24 09:11:43 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ukbd.c,v 1.113.4.4 2012/02/26 06:59:38 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -54,6 +54,7 @@ __KERNEL_RCSID(0, $NetBSD: ukbd.c,v 1.1 #include dev/usb/usbdi.h #include dev/usb/usbdi_util.h +#include dev/usb/usbdivar.h #include dev/usb/usbdevs.h #include dev/usb/usb_quirks.h #include dev/usb/uhidev.h Index: src/sys/dev/usb/usb_subr.c diff -u src/sys/dev/usb/usb_subr.c:1.180.6.3 src/sys/dev/usb/usb_subr.c:1.180.6.4 --- src/sys/dev/usb/usb_subr.c:1.180.6.3 Fri Dec 9 01:53:00 2011 +++ src/sys/dev/usb/usb_subr.c Sun Feb 26 06:59:38 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usb_subr.c,v 1.180.6.3 2011/12/09 01:53:00 mrg Exp $ */ +/* $NetBSD: usb_subr.c,v 1.180.6.4 2012/02/26 06:59:38 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */ /* @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: usb_subr.c,v 1.180.6.3 2011/12/09 01:53:00 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: usb_subr.c,v 1.180.6.4 2012/02/26 06:59:38 mrg Exp $); #include opt_compat_netbsd.h #include opt_usbverbose.h @@ -296,20 +296,33 @@ usbd_devinfo_free(char *devinfop) /* Delay for a certain number of ms */ void -usb_delay_ms(usbd_bus_handle bus, u_int ms) +usb_delay_ms_locked(usbd_bus_handle bus, u_int ms, kmutex_t *lock) { /* Wait at least two clock ticks so we know the time has passed. */ if (bus-use_polling || cold) delay((ms+1) * 1000); else - tsleep(ms, PRIBIO, usbdly, (ms*hz+999)/1000 + 1); + kpause(usbdly, false, (ms*hz+999)/1000 + 1, lock); +} + +void +usb_delay_ms(usbd_bus_handle bus, u_int ms) +{ + usb_delay_ms_locked(bus, ms, NULL); +} + +/* Delay given a device handle. */ +void +usbd_delay_ms_locked(usbd_device_handle dev, u_int ms, kmutex_t *lock) +{ + usb_delay_ms_locked(dev-bus, ms, lock); } /* Delay given a device handle. */ void usbd_delay_ms(usbd_device_handle dev, u_int ms) { - usb_delay_ms(dev-bus, ms); + usb_delay_ms_locked(dev-bus, ms, NULL); } usbd_status Index: src/sys/dev/usb/usbdivar.h diff -u src/sys/dev/usb/usbdivar.h:1.93.8.10 src/sys/dev/usb/usbdivar.h:1.93.8.11 --- src/sys/dev/usb/usbdivar.h:1.93.8.10 Sat Feb 25 20:46:34 2012 +++ src/sys/dev/usb/usbdivar.h Sun Feb 26 06:59:38 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdivar.h,v 1.93.8.10 2012/02/25 20:46:34 mrg Exp $ */ +/* $NetBSD: usbdivar.h,v 1.93.8.11 2012/02/26 06:59:38 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdivar.h,v 1.11 1999/11/17 22:33:51 n_hibma Exp $ */ /* @@ -33,6 +33,7 @@ #include sys/callout.h #include sys/mutex.h +#include sys/bus.h /* * Discussion about locking in the USB code: @@ -278,7 +279,10 @@ void usbd_dump_pipe(usbd_pipe_handle pip /* Routines from usb_subr.c */ int usbctlprint(void *, const char *); +void usb_delay_ms_locked(usbd_bus_handle, u_int, kmutex_t *); void usb_delay_ms(usbd_bus_handle, u_int); +void usbd_delay_ms_locked(usbd_device_handle, u_int, kmutex_t *); +void usbd_delay_ms(usbd_device_handle, u_int); usbd_status usbd_reset_port(usbd_device_handle, int, usb_port_status_t *); usbd_status usbd_setup_pipe(usbd_device_handle dev, usbd_interface_handle iface,
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 07:12:50 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp if_aue.c if_axe.c if_udav.c if_url.c stuirda.c ubt.c ucom.c ucycom.c ugen.c uhso.c uirda.c ulpt.c umass_scsipi.c urio.c usbdi_util.c usbdi_util.h uscanner.c usscanner.c ustir.c utoppy.c Log Message: rename old usb_detach_wakeup/wait to usb_detach_{wake,wakeup}old(). To generate a diff of this commit: cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.121.12.1 -r1.121.12.2 src/sys/dev/usb/if_aue.c cvs rdiff -u -r1.50.6.2 -r1.50.6.3 src/sys/dev/usb/if_axe.c cvs rdiff -u -r1.31.12.2 -r1.31.12.3 src/sys/dev/usb/if_udav.c cvs rdiff -u -r1.38.12.2 -r1.38.12.3 src/sys/dev/usb/if_url.c cvs rdiff -u -r1.11.12.1 -r1.11.12.2 src/sys/dev/usb/stuirda.c cvs rdiff -u -r1.40.8.1 -r1.40.8.2 src/sys/dev/usb/ubt.c cvs rdiff -u -r1.88.2.2 -r1.88.2.3 src/sys/dev/usb/ucom.c cvs rdiff -u -r1.33 -r1.33.8.1 src/sys/dev/usb/ucycom.c cvs rdiff -u -r1.114.2.2 -r1.114.2.3 src/sys/dev/usb/ugen.c cvs rdiff -u -r1.5.8.1 -r1.5.8.2 src/sys/dev/usb/uhso.c cvs rdiff -u -r1.34.12.1 -r1.34.12.2 src/sys/dev/usb/uirda.c cvs rdiff -u -r1.86.8.2 -r1.86.8.3 src/sys/dev/usb/ulpt.c cvs rdiff -u -r1.38.6.3 -r1.38.6.4 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.35.12.2 -r1.35.12.3 src/sys/dev/usb/urio.c cvs rdiff -u -r1.55.12.4 -r1.55.12.5 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.41.16.1 -r1.41.16.2 src/sys/dev/usb/usbdi_util.h cvs rdiff -u -r1.68.12.2 -r1.68.12.3 src/sys/dev/usb/uscanner.c cvs rdiff -u -r1.30.12.3 -r1.30.12.4 src/sys/dev/usb/usscanner.c cvs rdiff -u -r1.29.12.1 -r1.29.12.2 src/sys/dev/usb/ustir.c cvs rdiff -u -r1.15.12.1 -r1.15.12.2 src/sys/dev/usb/utoppy.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/TODO.usbmp diff -u src/sys/dev/usb/TODO.usbmp:1.1.2.5 src/sys/dev/usb/TODO.usbmp:1.1.2.6 --- src/sys/dev/usb/TODO.usbmp:1.1.2.5 Sun Feb 26 05:05:44 2012 +++ src/sys/dev/usb/TODO.usbmp Sun Feb 26 07:12:49 2012 @@ -1,4 +1,4 @@ -$NetBSD: TODO.usbmp,v 1.1.2.5 2012/02/26 05:05:44 mrg Exp $ +$NetBSD: TODO.usbmp,v 1.1.2.6 2012/02/26 07:12:49 mrg Exp $ the majority of the USB MP device interface is documented in usbdivar.h. @@ -20,8 +20,9 @@ add lots more asserts usb_event_thread() startup should use something to sync companions -usb_transfer_complete() is sometimes called with host intr lock held, -sometimes with usb lock. may need to re-consider soft_intr() API. +ehci issues: + - ehci_idone() has gone from splhigh() to splusb(). OK? + - ehci_suspend() no longer has splhardusb() across the whole function wake/wakeup conversion: @@ -49,7 +50,10 @@ wake/wakeup conversion: ustir.c utoppy.c - maybe rename usb_detach_wait() to usb_detach_waitold(), so that the -new one can be usb_detach_waitcv() +new one can be usb_detach_wait() [old names done] + + +use usb_delay_ms_locked() in places convert uhidev users to MPSAFE: @@ -79,7 +83,6 @@ wakeup/tsleep drivers: - uirda.c - ulpt.c - umass_isdata.c - - usb_subr.c: usb_delay_ms() should use kpause - ustir.c - uthum.c - utoppy.c Index: src/sys/dev/usb/if_aue.c diff -u src/sys/dev/usb/if_aue.c:1.121.12.1 src/sys/dev/usb/if_aue.c:1.121.12.2 --- src/sys/dev/usb/if_aue.c:1.121.12.1 Sat Feb 18 07:35:04 2012 +++ src/sys/dev/usb/if_aue.c Sun Feb 26 07:12:49 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: if_aue.c,v 1.121.12.1 2012/02/18 07:35:04 mrg Exp $ */ +/* $NetBSD: if_aue.c,v 1.121.12.2 2012/02/26 07:12:49 mrg Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 * Bill Paul wp...@ee.columbia.edu. All rights reserved. @@ -77,7 +77,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_aue.c,v 1.121.12.1 2012/02/18 07:35:04 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: if_aue.c,v 1.121.12.2 2012/02/26 07:12:49 mrg Exp $); #include opt_inet.h @@ -424,7 +424,7 @@ aue_unlock_mii(struct aue_softc *sc) { mutex_exit(sc-aue_mii_lock); if (--sc-aue_refcnt 0) - usb_detach_wakeup((sc-aue_dev)); + usb_detach_wakeupold(sc-aue_dev); } Static int @@ -923,7 +923,7 @@ aue_detach(device_t self, int flags) if (--sc-aue_refcnt = 0) { /* Wait for processes to go away. */ - usb_detach_wait((sc-aue_dev)); + usb_detach_waitold(sc-aue_dev); } splx(s); Index: src/sys/dev/usb/if_axe.c diff -u src/sys/dev/usb/if_axe.c:1.50.6.2 src/sys/dev/usb/if_axe.c:1.50.6.3 --- src/sys/dev/usb/if_axe.c:1.50.6.2 Fri Feb 24 09:11:42 2012 +++ src/sys/dev/usb/if_axe.c Sun Feb 26 07:12:49 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: if_axe.c,v 1.50.6.2 2012/02/24 09:11:42 mrg Exp $ */ +/* $NetBSD: if_axe.c,v 1.50.6.3 2012/02/26 07:12:49 mrg Exp $ */ /* $OpenBSD: if_axe.c,v 1.96 2010/01/09 05:33:08 jsg Exp $ */ /* @@ -89,7 +89,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: if_axe.c,v 1.50.6.2 2012/02/24 09:11:42 mrg Exp
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 10:26:24 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp ehci.c ohci.c uhci.c uhidev.c umass_scsipi.c umidi.c umidivar.h usb.c usbdi.c usbdivar.h Log Message: copyright maintenence. To generate a diff of this commit: cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.181.6.11 -r1.181.6.12 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.12 -r1.218.6.13 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.11 -r1.240.6.12 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.52.6.2 -r1.52.6.3 src/sys/dev/usb/uhidev.c cvs rdiff -u -r1.38.6.2 -r1.38.6.3 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.53.2.4 -r1.53.2.5 src/sys/dev/usb/umidi.c cvs rdiff -u -r1.17.2.1 -r1.17.2.2 src/sys/dev/usb/umidivar.h cvs rdiff -u -r1.125.6.10 -r1.125.6.11 src/sys/dev/usb/usb.c cvs rdiff -u -r1.134.2.11 -r1.134.2.12 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.93.8.8 -r1.93.8.9 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 12:53:35 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: if_kue.c ohci.c uhci.c Log Message: remove curproc references To generate a diff of this commit: cvs rdiff -u -r1.74.12.1 -r1.74.12.2 src/sys/dev/usb/if_kue.c cvs rdiff -u -r1.218.6.13 -r1.218.6.14 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.12 -r1.240.6.13 src/sys/dev/usb/uhci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 12:57:32 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: - noticed a concurrency issue with bus-intr_context member. sometimes the host controller interrupt lock is held, sometimes the USB thread lock is held, and i've seen at least two cases where the non-hard or non-soft interrupt handler triggered this test in a code path that could not have raised it itself. note that this needs attention. - update some lists. To generate a diff of this commit: cvs rdiff -u -r1.1.2.2 -r1.1.2.3 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.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 13:17:16 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uaudio.c Log Message: remove remaining splusb() calls, update some comments. To generate a diff of this commit: cvs rdiff -u -r1.124.2.2 -r1.124.2.3 src/sys/dev/usb/uaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:46:34 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c ohci.c uhci.c usbdi.c usbdivar.h Log Message: replace the (diagnostic-only) intr_context with checks against LP_INTR and cpu_intr_p(). XXX: there's one check that changes behaviour To generate a diff of this commit: cvs rdiff -u -r1.181.6.12 -r1.181.6.13 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.14 -r1.218.6.15 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.13 -r1.240.6.14 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.134.2.12 -r1.134.2.13 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.93.8.9 -r1.93.8.10 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:47:32 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: usbdi_util.c usbdi_util.h Log Message: implement cv/mutex based usb_detach_wait/wakeup(). To generate a diff of this commit: cvs rdiff -u -r1.55.12.2 -r1.55.12.3 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.41 -r1.41.16.1 src/sys/dev/usb/usbdi_util.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:49:17 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: umass.c umassvar.h Log Message: convert to using SMP usb_detach_wait/wakeup(). To generate a diff of this commit: cvs rdiff -u -r1.141.6.1 -r1.141.6.2 src/sys/dev/usb/umass.c cvs rdiff -u -r1.31 -r1.31.6.1 src/sys/dev/usb/umassvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:52:29 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uhid.c Log Message: mark D_MPSAFE: - spl - mutex - convert to SMP usb_detach_wait/wakeup() - add a IPL_NONE access lock, used in most devsw entry points To generate a diff of this commit: cvs rdiff -u -r1.84.12.1 -r1.84.12.2 src/sys/dev/usb/uhid.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sat Feb 25 20:54:03 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp Log Message: update to reality: - intr_context fixed - SMP usb_detach_wait/wakeup() - mark a couple more drivers at tested To generate a diff of this commit: cvs rdiff -u -r1.1.2.3 -r1.1.2.4 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.
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Sat Feb 25 21:15:39 UTC 2012 Modified Files: src/sys/arch/mips/adm5120/dev [jmcneill-usbmp]: ahci.c src/sys/dev/ic [jmcneill-usbmp]: sl811hs.c Log Message: catch up with bus-intr_context going away. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.7.6.1 src/sys/arch/mips/adm5120/dev/ahci.c cvs rdiff -u -r1.31.2.1 -r1.31.2.2 src/sys/dev/ic/sl811hs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 05:05:45 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp ehci.c if_url.c ohci.c uhci.c usb.c usbdi.c usbdi_util.c Log Message: - add some more XXXSMP ok tags - use cpu_softintr_p() instead of checking LP_INTR directly To generate a diff of this commit: cvs rdiff -u -r1.1.2.4 -r1.1.2.5 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.181.6.13 -r1.181.6.14 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.38.12.1 -r1.38.12.2 src/sys/dev/usb/if_url.c cvs rdiff -u -r1.218.6.15 -r1.218.6.16 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.14 -r1.240.6.15 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.125.6.11 -r1.125.6.12 src/sys/dev/usb/usb.c cvs rdiff -u -r1.134.2.13 -r1.134.2.14 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.55.12.3 -r1.55.12.4 src/sys/dev/usb/usbdi_util.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 06:28:59 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: emdtv.c emdtv_dtv.c ezload.c if_cue.c if_kue.c if_otus.c if_upgt.c udsbr.c Log Message: include usbdivar.h in several places that should. To generate a diff of this commit: cvs rdiff -u -r1.4.6.1 -r1.4.6.2 src/sys/dev/usb/emdtv.c cvs rdiff -u -r1.5.6.1 -r1.5.6.2 src/sys/dev/usb/emdtv_dtv.c cvs rdiff -u -r1.12 -r1.12.38.1 src/sys/dev/usb/ezload.c cvs rdiff -u -r1.60.12.2 -r1.60.12.3 src/sys/dev/usb/if_cue.c cvs rdiff -u -r1.74.12.2 -r1.74.12.3 src/sys/dev/usb/if_kue.c cvs rdiff -u -r1.9 -r1.9.14.1 src/sys/dev/usb/if_otus.c cvs rdiff -u -r1.3.14.1 -r1.3.14.2 src/sys/dev/usb/if_upgt.c cvs rdiff -u -r1.18.12.1 -r1.18.12.2 src/sys/dev/usb/udsbr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 06:59:39 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ukbd.c usb_subr.c usbdivar.h Log Message: use kpause() in usb{d,}_delay_ms(), and add a version that takes a mutex To generate a diff of this commit: cvs rdiff -u -r1.113.4.3 -r1.113.4.4 src/sys/dev/usb/ukbd.c cvs rdiff -u -r1.180.6.3 -r1.180.6.4 src/sys/dev/usb/usb_subr.c cvs rdiff -u -r1.93.8.10 -r1.93.8.11 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Sun Feb 26 07:12:50 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: TODO.usbmp if_aue.c if_axe.c if_udav.c if_url.c stuirda.c ubt.c ucom.c ucycom.c ugen.c uhso.c uirda.c ulpt.c umass_scsipi.c urio.c usbdi_util.c usbdi_util.h uscanner.c usscanner.c ustir.c utoppy.c Log Message: rename old usb_detach_wakeup/wait to usb_detach_{wake,wakeup}old(). To generate a diff of this commit: cvs rdiff -u -r1.1.2.5 -r1.1.2.6 src/sys/dev/usb/TODO.usbmp cvs rdiff -u -r1.121.12.1 -r1.121.12.2 src/sys/dev/usb/if_aue.c cvs rdiff -u -r1.50.6.2 -r1.50.6.3 src/sys/dev/usb/if_axe.c cvs rdiff -u -r1.31.12.2 -r1.31.12.3 src/sys/dev/usb/if_udav.c cvs rdiff -u -r1.38.12.2 -r1.38.12.3 src/sys/dev/usb/if_url.c cvs rdiff -u -r1.11.12.1 -r1.11.12.2 src/sys/dev/usb/stuirda.c cvs rdiff -u -r1.40.8.1 -r1.40.8.2 src/sys/dev/usb/ubt.c cvs rdiff -u -r1.88.2.2 -r1.88.2.3 src/sys/dev/usb/ucom.c cvs rdiff -u -r1.33 -r1.33.8.1 src/sys/dev/usb/ucycom.c cvs rdiff -u -r1.114.2.2 -r1.114.2.3 src/sys/dev/usb/ugen.c cvs rdiff -u -r1.5.8.1 -r1.5.8.2 src/sys/dev/usb/uhso.c cvs rdiff -u -r1.34.12.1 -r1.34.12.2 src/sys/dev/usb/uirda.c cvs rdiff -u -r1.86.8.2 -r1.86.8.3 src/sys/dev/usb/ulpt.c cvs rdiff -u -r1.38.6.3 -r1.38.6.4 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.35.12.2 -r1.35.12.3 src/sys/dev/usb/urio.c cvs rdiff -u -r1.55.12.4 -r1.55.12.5 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.41.16.1 -r1.41.16.2 src/sys/dev/usb/usbdi_util.h cvs rdiff -u -r1.68.12.2 -r1.68.12.3 src/sys/dev/usb/uscanner.c cvs rdiff -u -r1.30.12.3 -r1.30.12.4 src/sys/dev/usb/usscanner.c cvs rdiff -u -r1.29.12.1 -r1.29.12.2 src/sys/dev/usb/ustir.c cvs rdiff -u -r1.15.12.1 -r1.15.12.2 src/sys/dev/usb/utoppy.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
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
CVS commit: [jmcneill-usbmp] src/sys
Module Name:src Committed By: mrg Date: Fri Feb 24 09:11:53 UTC 2012 Modified Files: src/sys/arch/acorn26/acorn26 [jmcneill-usbmp]: vm_machdep.c src/sys/arch/acorn32/include [jmcneill-usbmp]: vmparam.h src/sys/arch/alpha/alpha [jmcneill-usbmp]: locore.s machdep.c syscall.c trap.c vm_machdep.c src/sys/arch/amd64/amd64 [jmcneill-usbmp]: db_machdep.c machdep.c netbsd32_machdep.c trap.c src/sys/arch/amd64/include [jmcneill-usbmp]: netbsd32_machdep.h pmap.h src/sys/arch/amiga/amiga [jmcneill-usbmp]: trap.c src/sys/arch/arm/arm [jmcneill-usbmp]: arm_machdep.c syscall.c src/sys/arch/arm/arm32 [jmcneill-usbmp]: fault.c vm_machdep.c src/sys/arch/arm/include [jmcneill-usbmp]: frame.h src/sys/arch/arm/iomd [jmcneill-usbmp]: iomd_clock.c src/sys/arch/atari/atari [jmcneill-usbmp]: atari_init.c trap.c src/sys/arch/cats/include [jmcneill-usbmp]: vmparam.h src/sys/arch/cesfic/cesfic [jmcneill-usbmp]: trap.c src/sys/arch/evbarm/include [jmcneill-usbmp]: vmparam.h src/sys/arch/hp300/hp300 [jmcneill-usbmp]: trap.c src/sys/arch/hp700/gsc [jmcneill-usbmp]: harmony.c src/sys/arch/hp700/hp700 [jmcneill-usbmp]: disksubr.c machdep.c machdep.h mainbus.c src/sys/arch/hppa/hppa [jmcneill-usbmp]: hppa_machdep.c trap.c vm_machdep.c src/sys/arch/i386/i386 [jmcneill-usbmp]: machdep.c trap.c src/sys/arch/i386/include [jmcneill-usbmp]: frame.h pmap.h vmparam.h src/sys/arch/ia64/ia64 [jmcneill-usbmp]: machdep.c trap.c src/sys/arch/iyonix/include [jmcneill-usbmp]: vmparam.h src/sys/arch/luna68k/luna68k [jmcneill-usbmp]: trap.c src/sys/arch/m68k/include [jmcneill-usbmp]: m68k.h src/sys/arch/m68k/m68k [jmcneill-usbmp]: m68k_syscall.c sig_machdep.c switch_subr.s vm_machdep.c src/sys/arch/mac68k/mac68k [jmcneill-usbmp]: trap.c src/sys/arch/mac68k/obio [jmcneill-usbmp]: esp.c src/sys/arch/macppc/stand/ofwboot [jmcneill-usbmp]: boot.c boot.h ofdev.c src/sys/arch/mips/include [jmcneill-usbmp]: frame.h locore.h netbsd32_machdep.h src/sys/arch/mips/mips [jmcneill-usbmp]: cpu_subr.c locore_mips1.S mipsX_subr.S mips_machdep.c netbsd32_machdep.c syscall.c trap.c vm_machdep.c src/sys/arch/mvme68k/mvme68k [jmcneill-usbmp]: trap.c src/sys/arch/netwinder/include [jmcneill-usbmp]: vmparam.h src/sys/arch/news68k/news68k [jmcneill-usbmp]: trap.c src/sys/arch/next68k/next68k [jmcneill-usbmp]: trap.c src/sys/arch/powerpc/booke [jmcneill-usbmp]: trap.c src/sys/arch/powerpc/booke/dev [jmcneill-usbmp]: pq3etsec.c pq3sdhc.c src/sys/arch/powerpc/ibm4xx [jmcneill-usbmp]: trap.c src/sys/arch/powerpc/include [jmcneill-usbmp]: frame.h vmparam.h src/sys/arch/powerpc/powerpc [jmcneill-usbmp]: locore_subr.S powerpc_machdep.c syscall.c trap.c vm_machdep.c src/sys/arch/prep/pnpbus [jmcneill-usbmp]: nvram_pnpbus.c src/sys/arch/sandpoint/conf [jmcneill-usbmp]: ENCPP1 GENERIC SANDPOINT src/sys/arch/sandpoint/sandpoint [jmcneill-usbmp]: satmgr.c src/sys/arch/sh3/include [jmcneill-usbmp]: frame.h src/sys/arch/sh3/sh3 [jmcneill-usbmp]: exception.c sh3_machdep.c syscall.c vm_machdep.c src/sys/arch/shark/include [jmcneill-usbmp]: vmparam.h src/sys/arch/sparc/include [jmcneill-usbmp]: cpu.h src/sys/arch/sparc/sparc [jmcneill-usbmp]: locore.s machdep.c syscall.c trap.c vm_machdep.c src/sys/arch/sparc64/conf [jmcneill-usbmp]: files.sparc64 src/sys/arch/sparc64/sparc64 [jmcneill-usbmp]: db_interface.c locore.s machdep.c netbsd32_machdep.c syscall.c trap.c vm_machdep.c src/sys/arch/sun2/sun2 [jmcneill-usbmp]: trap.c src/sys/arch/sun3/sun3 [jmcneill-usbmp]: trap.c src/sys/arch/vax/vax [jmcneill-usbmp]: machdep.c syscall.c trap.c vm_machdep.c src/sys/arch/x68k/x68k [jmcneill-usbmp]: trap.c src/sys/arch/x86/x86 [jmcneill-usbmp]: identcpu.c linux_trap.c pmap.c syscall.c vm_machdep.c src/sys/arch/xen/x86 [jmcneill-usbmp]: cpu.c x86_xpmap.c src/sys/arch/xen/xen [jmcneill-usbmp]: if_xennet_xenbus.c xbd_xenbus.c xengnt.c src/sys/arch/zaurus/include [jmcneill-usbmp]: vmparam.h src/sys/compat/aoutm68k [jmcneill-usbmp]: aoutm68k_exec.c src/sys/compat/common [jmcneill-usbmp]: Makefile kern_sig_16.c src/sys/compat/freebsd [jmcneill-usbmp]: freebsd_exec.c src/sys/compat/ibcs2 [jmcneill-usbmp]: ibcs2_exec.c src/sys/compat/linux/arch/powerpc [jmcneill-usbmp]: linux_exec_powerpc.c src/sys/compat/linux/common [jmcneill-usbmp]: linux_exec.c src/sys/compat/linux32/common [jmcneill-usbmp]:
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
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.
Re: CVS commit: [jmcneill-usbmp] src/sys
On Sat, Feb 18, 2012 at 07:36:37AM +, matthew green wrote: Module Name: src Committed By: mrg Date: Sat Feb 18 07:36:03 UTC 2012 ... Log Message: merge to -current. Don't you mean pullup to -current? or has it been merged into -current? Reinoud
re: CVS commit: [jmcneill-usbmp] src/sys
On Sat, Feb 18, 2012 at 07:36:37AM +, matthew green wrote: Module Name:src Committed By: mrg Date: Sat Feb 18 07:36:03 UTC 2012 ... Log Message: merge to -current. Don't you mean pullup to -current? or has it been merged into -current? english is fun. we usually call this sync to -current, but what i wrote also makes sense to me :-) i didn't touch -current itself. .mrg.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Thu Feb 23 09:25:04 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c ohci.c uhci.c usb.c usbdi.c usbdi_util.c usbdivar.h Log Message: update a bunch of comments for reality. usb lock isn't a thread lock, which is terminology we copied from the audiomp code. To generate a diff of this commit: cvs rdiff -u -r1.181.6.10 -r1.181.6.11 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.11 -r1.218.6.12 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.10 -r1.240.6.11 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.125.6.9 -r1.125.6.10 src/sys/dev/usb/usb.c cvs rdiff -u -r1.134.2.10 -r1.134.2.11 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.55.12.1 -r1.55.12.2 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.93.8.7 -r1.93.8.8 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.10 src/sys/dev/usb/ehci.c:1.181.6.11 --- src/sys/dev/usb/ehci.c:1.181.6.10 Mon Feb 20 22:42:24 2012 +++ src/sys/dev/usb/ehci.c Thu Feb 23 09:25:04 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.10 2012/02/20 22:42:24 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.11 2012/02/23 09:25:04 mrg Exp $ */ /* * Copyright (c) 2004-2011 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.10 2012/02/20 22:42:24 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.11 2012/02/23 09:25:04 mrg Exp $); #include ohci.h #include uhci.h @@ -1406,11 +1406,11 @@ ehci_freex(struct usbd_bus *bus, usbd_xf } Static void -ehci_get_lock(struct usbd_bus *bus, kmutex_t **thread) +ehci_get_lock(struct usbd_bus *bus, kmutex_t **lock) { struct ehci_softc *sc = bus-hci_private; - *thread = sc-sc_lock; + *lock = sc-sc_lock; } Static void @@ -1811,7 +1811,7 @@ ehci_open(usbd_pipe_handle pipe) } /* - * Add an ED to the schedule. Called with USB thread lock held. + * Add an ED to the schedule. Called with USB lock held. */ Static void ehci_add_qh(ehci_softc_t *sc, ehci_soft_qh_t *sqh, ehci_soft_qh_t *head) @@ -1839,7 +1839,7 @@ ehci_add_qh(ehci_softc_t *sc, ehci_soft_ } /* - * Remove an ED from the schedule. Called with USB thread lock held. + * Remove an ED from the schedule. Called with USB lock held. */ Static void ehci_rem_qh(ehci_softc_t *sc, ehci_soft_qh_t *sqh, ehci_soft_qh_t *head) Index: src/sys/dev/usb/ohci.c diff -u src/sys/dev/usb/ohci.c:1.218.6.11 src/sys/dev/usb/ohci.c:1.218.6.12 --- src/sys/dev/usb/ohci.c:1.218.6.11 Mon Feb 20 06:50:21 2012 +++ src/sys/dev/usb/ohci.c Thu Feb 23 09:25:04 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ohci.c,v 1.218.6.11 2012/02/20 06:50:21 mrg Exp $ */ +/* $NetBSD: ohci.c,v 1.218.6.12 2012/02/23 09:25:04 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ /* @@ -42,7 +42,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.11 2012/02/20 06:50:21 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ohci.c,v 1.218.6.12 2012/02/23 09:25:04 mrg Exp $); #include opt_usb.h @@ -991,11 +991,11 @@ ohci_freex(struct usbd_bus *bus, usbd_xf } Static void -ohci_get_lock(struct usbd_bus *bus, kmutex_t **thread) +ohci_get_lock(struct usbd_bus *bus, kmutex_t **lock) { struct ohci_softc *sc = bus-hci_private; - *thread = sc-sc_lock; + *lock = sc-sc_lock; } /* @@ -1865,7 +1865,7 @@ ohci_device_request(usbd_xfer_handle xfe } /* - * Add an ED to the schedule. Called with USB thread lock held. + * Add an ED to the schedule. Called with USB lock held. */ Static void ohci_add_ed(ohci_softc_t *sc, ohci_soft_ed_t *sed, ohci_soft_ed_t *head) @@ -1890,7 +1890,7 @@ ohci_add_ed(ohci_softc_t *sc, ohci_soft_ } /* - * Remove an ED from the schedule. Called with USB thread lock held. + * Remove an ED from the schedule. Called with USB lock held. */ Static void ohci_rem_ed(ohci_softc_t *sc, ohci_soft_ed_t *sed, ohci_soft_ed_t *head) @@ -1925,7 +1925,7 @@ ohci_rem_ed(ohci_softc_t *sc, ohci_soft_ */ #define HASH(a) (((a) 4) % OHCI_HASH_SIZE) -/* Called with USB thread lock held. */ +/* Called with USB lock held. */ void ohci_hash_add_td(ohci_softc_t *sc, ohci_soft_td_t *std) { @@ -1936,7 +1936,7 @@ ohci_hash_add_td(ohci_softc_t *sc, ohci_ LIST_INSERT_HEAD(sc-sc_hash_tds[h], std, hnext); } -/* Called with USB thread lock held. */ +/* Called with USB lock held. */ void ohci_hash_rem_td(ohci_softc_t *sc, ohci_soft_td_t *std) { @@ -1960,7 +1960,7 @@ ohci_hash_find_td(ohci_softc_t *sc, ohci return (NULL); } -/* Called with USB thread lock held. */ +/* Called with USB lock held. */ void ohci_hash_add_itd(ohci_softc_t *sc, ohci_soft_itd_t *sitd) { @@ -1974,7 +1974,7 @@ ohci_hash_add_itd(ohci_softc_t *sc, ohci LIST_INSERT_HEAD(sc-sc_hash_itds[h], sitd, hnext); } -/* Called with USB thread lock held. */ +/*
CVS commit: [jmcneill-usbmp] src/sys/rump/dev/lib/libugenhc
Module Name:src Committed By: mrg Date: Fri Feb 24 07:35:00 UTC 2012 Modified Files: src/sys/rump/dev/lib/libugenhc [jmcneill-usbmp]: ugenhc.c Log Message: add a couple of comments to note areas will need work to enable mp. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.9.14.1 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. Modified files: Index: src/sys/rump/dev/lib/libugenhc/ugenhc.c diff -u src/sys/rump/dev/lib/libugenhc/ugenhc.c:1.9 src/sys/rump/dev/lib/libugenhc/ugenhc.c:1.9.14.1 --- src/sys/rump/dev/lib/libugenhc/ugenhc.c:1.9 Mon Mar 22 12:05:45 2010 +++ src/sys/rump/dev/lib/libugenhc/ugenhc.c Fri Feb 24 07:35:00 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ugenhc.c,v 1.9 2010/03/22 12:05:45 pooka Exp $ */ +/* $NetBSD: ugenhc.c,v 1.9.14.1 2012/02/24 07:35:00 mrg Exp $ */ /* * Copyright (c) 2009, 2010 Antti Kantee. All Rights Reserved. @@ -61,7 +61,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ugenhc.c,v 1.9 2010/03/22 12:05:45 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: ugenhc.c,v 1.9.14.1 2012/02/24 07:35:00 mrg Exp $); #include sys/param.h #include sys/bus.h @@ -312,6 +312,7 @@ rumpusb_root_ctrl_start(usbd_xfer_handle ret: xfer-status = err; + /* XXX locking */ usb_transfer_complete(xfer); return (USBD_IN_PROGRESS); } @@ -842,6 +843,7 @@ rumpusb_device_bulk_transfer(usbd_xfer_h SIMPLEQ_FIRST(xfer-pipe-queue)); } else { /* biglocked */ + /* XXX locking */ err = usb_insert_transfer(xfer); if (err) return err;
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Thu Feb 23 09:25:04 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c ohci.c uhci.c usb.c usbdi.c usbdi_util.c usbdivar.h Log Message: update a bunch of comments for reality. usb lock isn't a thread lock, which is terminology we copied from the audiomp code. To generate a diff of this commit: cvs rdiff -u -r1.181.6.10 -r1.181.6.11 src/sys/dev/usb/ehci.c cvs rdiff -u -r1.218.6.11 -r1.218.6.12 src/sys/dev/usb/ohci.c cvs rdiff -u -r1.240.6.10 -r1.240.6.11 src/sys/dev/usb/uhci.c cvs rdiff -u -r1.125.6.9 -r1.125.6.10 src/sys/dev/usb/usb.c cvs rdiff -u -r1.134.2.10 -r1.134.2.11 src/sys/dev/usb/usbdi.c cvs rdiff -u -r1.55.12.1 -r1.55.12.2 src/sys/dev/usb/usbdi_util.c cvs rdiff -u -r1.93.8.7 -r1.93.8.8 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Thu Feb 23 09:31:56 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: uhidev.c uhidev.h Log Message: - remove redundant sc_refcnt member - protect sc_state with a mutex To generate a diff of this commit: cvs rdiff -u -r1.52.6.1 -r1.52.6.2 src/sys/dev/usb/uhidev.c cvs rdiff -u -r1.11.2.1 -r1.11.2.2 src/sys/dev/usb/uhidev.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/rump/dev/lib/libugenhc
Module Name:src Committed By: mrg Date: Fri Feb 24 07:35:00 UTC 2012 Modified Files: src/sys/rump/dev/lib/libugenhc [jmcneill-usbmp]: ugenhc.c Log Message: add a couple of comments to note areas will need work to enable mp. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.9.14.1 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.
CVS commit: [jmcneill-usbmp] src/sys/dev
Module Name:src Committed By: mrg Date: Mon Feb 20 20:35:40 UTC 2012 Modified Files: src/sys/dev/scsipi [jmcneill-usbmp]: scsipi_base.c src/sys/dev/usb [jmcneill-usbmp]: umass_scsipi.c usscanner.c Log Message: pullup from -current: assert kernel lock is held in a few places in inside scsipi. lock the kernel when calling into scsipi from umass and usscanner. with these two in place on usbmp branch, umass appears stable. To generate a diff of this commit: cvs rdiff -u -r1.155 -r1.155.12.1 src/sys/dev/scsipi/scsipi_base.c cvs rdiff -u -r1.38 -r1.38.6.1 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.30.12.1 -r1.30.12.2 src/sys/dev/usb/usscanner.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/scsipi/scsipi_base.c diff -u src/sys/dev/scsipi/scsipi_base.c:1.155 src/sys/dev/scsipi/scsipi_base.c:1.155.12.1 --- src/sys/dev/scsipi/scsipi_base.c:1.155 Sat Nov 13 13:52:11 2010 +++ src/sys/dev/scsipi/scsipi_base.c Mon Feb 20 20:35:40 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: scsipi_base.c,v 1.155 2010/11/13 13:52:11 uebayasi Exp $ */ +/* $NetBSD: scsipi_base.c,v 1.155.12.1 2012/02/20 20:35:40 mrg Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: scsipi_base.c,v 1.155 2010/11/13 13:52:11 uebayasi Exp $); +__KERNEL_RCSID(0, $NetBSD: scsipi_base.c,v 1.155.12.1 2012/02/20 20:35:40 mrg Exp $); #include opt_scsi.h @@ -218,6 +218,8 @@ scsipi_lookup_periph(struct scsipi_chann uint32_t hash; int s; + KASSERT(KERNEL_LOCKED_P()); + if (target = chan-chan_ntargets || lun = chan-chan_nluns) return (NULL); @@ -1261,6 +1263,8 @@ scsipi_done(struct scsipi_xfer *xs) struct scsipi_channel *chan = periph-periph_channel; int s, freezecnt; + KASSERT(KERNEL_LOCKED_P()); + SC_DEBUG(periph, SCSIPI_DB2, (scsipi_done\n)); #ifdef SCSIPI_DEBUG if (periph-periph_dbflags SCSIPI_DB1) @@ -1860,6 +1864,7 @@ scsipi_execute_xs(struct scsipi_xfer *xs int oasync, async, poll, error, s; KASSERT(!cold); + KASSERT(KERNEL_LOCKED_P()); (chan-chan_bustype-bustype_cmd)(xs); Index: src/sys/dev/usb/umass_scsipi.c diff -u src/sys/dev/usb/umass_scsipi.c:1.38 src/sys/dev/usb/umass_scsipi.c:1.38.6.1 --- src/sys/dev/usb/umass_scsipi.c:1.38 Wed Aug 24 11:28:50 2011 +++ src/sys/dev/usb/umass_scsipi.c Mon Feb 20 20:35:40 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: umass_scsipi.c,v 1.38 2011/08/24 11:28:50 mbalmer Exp $ */ +/* $NetBSD: umass_scsipi.c,v 1.38.6.1 2012/02/20 20:35:40 mrg Exp $ */ /* * Copyright (c) 2001, 2003 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: umass_scsipi.c,v 1.38 2011/08/24 11:28:50 mbalmer Exp $); +__KERNEL_RCSID(0, $NetBSD: umass_scsipi.c,v 1.38.6.1 2012/02/20 20:35:40 mrg Exp $); #ifdef _KERNEL_OPT #include opt_umass.h @@ -317,7 +317,9 @@ umass_scsipi_request(struct scsipi_chann /* Return if command finishes early. */ done: + KERNEL_LOCK(1, curlwp); scsipi_done(xs); + KERNEL_UNLOCK_ONE(curlwp); return; default: /* Not supported, nothing to do. */ @@ -451,7 +453,9 @@ umass_scsipi_cb(struct umass_softc *sc, xs-error, xs-xs_status, xs-resid)); s = splbio(); + KERNEL_LOCK(1, curlwp); scsipi_done(xs); + KERNEL_UNLOCK_ONE(curlwp); splx(s); } @@ -490,7 +494,9 @@ umass_scsipi_sense_cb(struct umass_softc xs-resid)); s = splbio(); + KERNEL_LOCK(1, curlwp); scsipi_done(xs); + KERNEL_UNLOCK_ONE(curlwp); splx(s); } @@ -510,12 +516,17 @@ umass_atapi_probe_device(struct atapibus if (target != UMASS_ATAPI_DRIVE) /* only probe drive 0 */ return; + KERNEL_LOCK(1, curlwp); + /* skip if already attached */ - if (scsipi_lookup_periph(chan, target, 0) != NULL) + if (scsipi_lookup_periph(chan, target, 0) != NULL) { + KERNEL_UNLOCK_ONE(curlwp); return; + } periph = scsipi_alloc_periph(M_NOWAIT); if (periph == NULL) { + KERNEL_UNLOCK_ONE(curlwp); aprint_error_dev(atapi-sc_dev, can't allocate link for drive %d\n, target); return; @@ -531,6 +542,7 @@ umass_atapi_probe_device(struct atapibus /* Now go ask the device all about itself. */ memset(inqbuf, 0, sizeof(inqbuf)); if (scsipi_inquire(periph, inqbuf, XS_CTL_DISCOVERY) != 0) { + KERNEL_UNLOCK_ONE(curlwp); DPRINTF(UDMASS_SCSI, (umass_atapi_probe_device: scsipi_inquire failed\n)); free(periph, M_DEVBUF); @@ -556,5 +568,7 @@ umass_atapi_probe_device(struct atapibus '%s' '%s' '%s'\n, vendor, product, revision)); atapi_probe_device(atapi, target, periph, sa); /* atapi_probe_device() frees the periph when there is no device.*/ + + KERNEL_UNLOCK_ONE(curlwp); } #endif Index: src/sys/dev/usb/usscanner.c diff -u src/sys/dev/usb/usscanner.c:1.30.12.1 src/sys/dev/usb/usscanner.c:1.30.12.2 --- src/sys/dev/usb/usscanner.c:1.30.12.1 Sat Feb 18 07:35:12 2012
CVS commit: [jmcneill-usbmp] src/sys/rump/librump/rumpkern
Module Name:src Committed By: mrg Date: Mon Feb 20 22:36:11 UTC 2012 Modified Files: src/sys/rump/librump/rumpkern [jmcneill-usbmp]: klock.c Log Message: pull across from -current: add a _kernel_locked_p(). To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.3.12.1 src/sys/rump/librump/rumpkern/klock.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/rump/librump/rumpkern/klock.c diff -u src/sys/rump/librump/rumpkern/klock.c:1.3 src/sys/rump/librump/rumpkern/klock.c:1.3.12.1 --- src/sys/rump/librump/rumpkern/klock.c:1.3 Wed Dec 1 14:59:38 2010 +++ src/sys/rump/librump/rumpkern/klock.c Mon Feb 20 22:36:11 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: klock.c,v 1.3 2010/12/01 14:59:38 pooka Exp $ */ +/* $NetBSD: klock.c,v 1.3.12.1 2012/02/20 22:36:11 mrg Exp $ */ /* * Copyright (c) 2007-2010 Antti Kantee. All Rights Reserved. @@ -29,7 +29,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: klock.c,v 1.3 2010/12/01 14:59:38 pooka Exp $); +__KERNEL_RCSID(0, $NetBSD: klock.c,v 1.3.12.1 2012/02/20 22:36:11 mrg Exp $); #include sys/param.h #include sys/systm.h @@ -117,6 +117,13 @@ _kernel_unlock(int nlocks, int *countp) } } +bool +_kernel_locked_p(void) +{ + + return giantowner == curlwp; +} + void rump_user_unschedule(int nlocks, int *countp, void *interlock) {
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Feb 20 22:42:25 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c Log Message: make sure we have the thread lock when calling usb_transfer_complete() To generate a diff of this commit: cvs rdiff -u -r1.181.6.9 -r1.181.6.10 src/sys/dev/usb/ehci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/ehci.c diff -u src/sys/dev/usb/ehci.c:1.181.6.9 src/sys/dev/usb/ehci.c:1.181.6.10 --- src/sys/dev/usb/ehci.c:1.181.6.9 Mon Feb 20 06:50:20 2012 +++ src/sys/dev/usb/ehci.c Mon Feb 20 22:42:24 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: ehci.c,v 1.181.6.9 2012/02/20 06:50:20 mrg Exp $ */ +/* $NetBSD: ehci.c,v 1.181.6.10 2012/02/20 22:42:24 mrg Exp $ */ /* * Copyright (c) 2004-2011 The NetBSD Foundation, Inc. @@ -53,7 +53,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.9 2012/02/20 06:50:20 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: ehci.c,v 1.181.6.10 2012/02/20 22:42:24 mrg Exp $); #include ohci.h #include uhci.h @@ -3575,6 +3575,8 @@ ehci_device_bulk_start(usbd_xfer_handle panic(ehci_device_bulk_start: a request); #endif + mutex_enter(sc-sc_lock); + len = xfer-length; endpt = epipe-pipe.endpoint-edesc-bEndpointAddress; isread = UE_GET_DIR(endpt) == UE_DIR_IN; @@ -3588,6 +3590,7 @@ ehci_device_bulk_start(usbd_xfer_handle DPRINTFN(-1,(ehci_device_bulk_transfer: no memory\n)); xfer-status = err; usb_transfer_complete(xfer); + mutex_exit(sc-sc_lock); return (err); } @@ -3609,7 +3612,6 @@ ehci_device_bulk_start(usbd_xfer_handle exfer-isdone = 0; #endif - mutex_enter(sc-sc_lock); ehci_set_qh_qtd(sqh, data); /* also does usb_syncmem(sqh) */ if (xfer-timeout !sc-sc_bus.use_polling) { callout_reset(xfer-timeout_handle, mstohz(xfer-timeout), @@ -3759,6 +3761,8 @@ ehci_device_intr_start(usbd_xfer_handle panic(ehci_device_intr_start: a request); #endif + mutex_enter(sc-sc_lock); + len = xfer-length; endpt = epipe-pipe.endpoint-edesc-bEndpointAddress; isread = UE_GET_DIR(endpt) == UE_DIR_IN; @@ -3772,6 +3776,7 @@ ehci_device_intr_start(usbd_xfer_handle DPRINTFN(-1, (ehci_device_intr_start: no memory\n)); xfer-status = err; usb_transfer_complete(xfer); + mutex_exit(sc-sc_lock); return (err); } @@ -3793,7 +3798,6 @@ ehci_device_intr_start(usbd_xfer_handle exfer-isdone = 0; #endif - mutex_enter(sc-sc_lock); ehci_set_qh_qtd(sqh, data); /* also does usb_syncmem(sqh) */ if (xfer-timeout !sc-sc_bus.use_polling) { callout_reset(xfer-timeout_handle, mstohz(xfer-timeout),
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Feb 20 22:42:47 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: usbdi.c Log Message: keep the thread lock taken for the abort() callback. To generate a diff of this commit: cvs rdiff -u -r1.134.2.9 -r1.134.2.10 src/sys/dev/usb/usbdi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/usbdi.c diff -u src/sys/dev/usb/usbdi.c:1.134.2.9 src/sys/dev/usb/usbdi.c:1.134.2.10 --- src/sys/dev/usb/usbdi.c:1.134.2.9 Mon Feb 20 06:50:21 2012 +++ src/sys/dev/usb/usbdi.c Mon Feb 20 22:42:47 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdi.c,v 1.134.2.9 2012/02/20 06:50:21 mrg Exp $ */ +/* $NetBSD: usbdi.c,v 1.134.2.10 2012/02/20 22:42:47 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $ */ /* @@ -32,7 +32,7 @@ */ #include sys/cdefs.h -__KERNEL_RCSID(0, $NetBSD: usbdi.c,v 1.134.2.9 2012/02/20 06:50:21 mrg Exp $); +__KERNEL_RCSID(0, $NetBSD: usbdi.c,v 1.134.2.10 2012/02/20 22:42:47 mrg Exp $); #include opt_compat_netbsd.h #include opt_usb.h @@ -749,11 +749,7 @@ usbd_ar_pipe(usbd_pipe_handle pipe) DPRINTFN(2,(usbd_ar_pipe: pipe=%p xfer=%p (methods=%p)\n, pipe, xfer, pipe-methods)); /* Make the HC abort it (and invoke the callback). */ - if (pipe-device-bus-lock) - mutex_exit(pipe-device-bus-lock); pipe-methods-abort(xfer); - if (pipe-device-bus-lock) - mutex_enter(pipe-device-bus-lock); /* XXX only for non-0 usbd_clear_endpoint_stall(pipe); */ } pipe-aborting = 0;
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Feb 20 22:43:12 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: usbdivar.h Log Message: expand a command slightly To generate a diff of this commit: cvs rdiff -u -r1.93.8.6 -r1.93.8.7 src/sys/dev/usb/usbdivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/dev/usb/usbdivar.h diff -u src/sys/dev/usb/usbdivar.h:1.93.8.6 src/sys/dev/usb/usbdivar.h:1.93.8.7 --- src/sys/dev/usb/usbdivar.h:1.93.8.6 Mon Feb 20 06:50:21 2012 +++ src/sys/dev/usb/usbdivar.h Mon Feb 20 22:43:12 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: usbdivar.h,v 1.93.8.6 2012/02/20 06:50:21 mrg Exp $ */ +/* $NetBSD: usbdivar.h,v 1.93.8.7 2012/02/20 22:43:12 mrg Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdivar.h,v 1.11 1999/11/17 22:33:51 n_hibma Exp $ */ /* @@ -66,7 +66,8 @@ * * The above semantics are likely to change. * - * USB functions known to expect the thread lock taken include: + * USB functions known to expect the thread lock taken include (this + * list is probably not exhaustive): *usb_transfer_complete() *usb_insert_transfer() *usb_start_next()
CVS commit: [jmcneill-usbmp] src/sys/dev
Module Name:src Committed By: mrg Date: Mon Feb 20 20:35:40 UTC 2012 Modified Files: src/sys/dev/scsipi [jmcneill-usbmp]: scsipi_base.c src/sys/dev/usb [jmcneill-usbmp]: umass_scsipi.c usscanner.c Log Message: pullup from -current: assert kernel lock is held in a few places in inside scsipi. lock the kernel when calling into scsipi from umass and usscanner. with these two in place on usbmp branch, umass appears stable. To generate a diff of this commit: cvs rdiff -u -r1.155 -r1.155.12.1 src/sys/dev/scsipi/scsipi_base.c cvs rdiff -u -r1.38 -r1.38.6.1 src/sys/dev/usb/umass_scsipi.c cvs rdiff -u -r1.30.12.1 -r1.30.12.2 src/sys/dev/usb/usscanner.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/rump/librump/rumpkern
Module Name:src Committed By: mrg Date: Mon Feb 20 22:36:11 UTC 2012 Modified Files: src/sys/rump/librump/rumpkern [jmcneill-usbmp]: klock.c Log Message: pull across from -current: add a _kernel_locked_p(). To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.3.12.1 src/sys/rump/librump/rumpkern/klock.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Feb 20 22:42:25 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: ehci.c Log Message: make sure we have the thread lock when calling usb_transfer_complete() To generate a diff of this commit: cvs rdiff -u -r1.181.6.9 -r1.181.6.10 src/sys/dev/usb/ehci.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: [jmcneill-usbmp] src/sys/dev/usb
Module Name:src Committed By: mrg Date: Mon Feb 20 22:42:47 UTC 2012 Modified Files: src/sys/dev/usb [jmcneill-usbmp]: usbdi.c Log Message: keep the thread lock taken for the abort() callback. To generate a diff of this commit: cvs rdiff -u -r1.134.2.9 -r1.134.2.10 src/sys/dev/usb/usbdi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.