CVS commit: [jmcneill-usbmp] src/sys/dev/usb

2012-06-05 Thread Nick Hudson
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

2012-06-05 Thread Nick Hudson
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

2012-06-03 Thread Nick Hudson
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

2012-06-03 Thread Nick Hudson
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

2012-06-02 Thread matthew green
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

2012-06-02 Thread matthew green
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

2012-06-02 Thread matthew green
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

2012-06-02 Thread matthew green
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

2012-06-02 Thread matthew green
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

2012-06-02 Thread matthew green
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

2012-05-12 Thread matthew green
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

2012-05-12 Thread matthew green
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

2012-05-12 Thread matthew green
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

2012-05-12 Thread matthew green
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

2012-04-29 Thread matthew green
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

2012-04-29 Thread matthew green
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

2012-04-29 Thread matthew green
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

2012-04-29 Thread matthew green
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

2012-04-29 Thread matthew green
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

2012-04-17 Thread Joerg Sonnenberger
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

2012-04-17 Thread Joerg Sonnenberger
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

2012-04-14 Thread matthew green
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

2012-04-14 Thread matthew green
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

2012-04-06 Thread matthew green
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

2012-04-06 Thread matthew green
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

2012-04-06 Thread matthew green
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

2012-04-06 Thread matthew green
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

2012-04-05 Thread matthew green
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

2012-04-05 Thread matthew green
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

2012-04-05 Thread matthew green
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

2012-04-05 Thread matthew green
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

2012-03-12 Thread matthew green
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

2012-03-12 Thread matthew green
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

2012-03-11 Thread matthew green
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

2012-03-11 Thread matthew green
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

2012-03-11 Thread matthew green
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

2012-03-11 Thread matthew green
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

2012-03-10 Thread matthew green
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

2012-03-06 Thread Izumi Tsutsui
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

2012-03-06 Thread matthew green

  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

2012-03-06 Thread matthew green
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

2012-03-06 Thread matthew green
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

2012-03-03 Thread matthew green
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

2012-03-03 Thread matthew green
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

2012-03-03 Thread matthew green
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

2012-03-03 Thread matthew green
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

2012-03-03 Thread matthew green
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

2012-03-02 Thread matthew green
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

2012-03-02 Thread matthew green
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

2012-03-02 Thread matthew green
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

2012-03-02 Thread matthew green
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

2012-02-26 Thread matthew green
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

2012-02-26 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-25 Thread matthew green
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

2012-02-24 Thread matthew green
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

2012-02-24 Thread matthew green
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

2012-02-24 Thread matthew green
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

2012-02-23 Thread Reinoud Zandijk
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

2012-02-23 Thread matthew green

 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

2012-02-23 Thread matthew green
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

2012-02-23 Thread matthew green
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

2012-02-23 Thread matthew green
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

2012-02-23 Thread matthew green
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

2012-02-23 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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

2012-02-20 Thread matthew green
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.



  1   2   >