Back the last commit out. The network drivers need reworking first. :(
This commit is contained in:
parent
b784ffe91a
commit
86cf1335d5
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: usbdi.c,v 1.80 2001/04/13 11:19:58 augustss Exp $ */
|
||||
/* $NetBSD: usbdi.c,v 1.79 2001/01/21 02:39:53 augustss Exp $ */
|
||||
/* $FreeBSD$ */
|
||||
|
||||
/*
|
||||
@ -294,7 +294,28 @@ usbd_transfer(usbd_xfer_handle xfer)
|
||||
if (!xfer->done) {
|
||||
if (pipe->device->bus->use_polling)
|
||||
panic("usbd_transfer: not done\n");
|
||||
tsleep(xfer, PRIBIO, "usbsyn", 0);
|
||||
/* XXX Temporary hack XXX */
|
||||
if (xfer->flags & USBD_NO_TSLEEP) {
|
||||
int i;
|
||||
usbd_bus_handle bus = pipe->device->bus;
|
||||
int to = xfer->timeout * 1000;
|
||||
DPRINTFN(2,("usbd_transfer: polling\n"));
|
||||
for (i = 0; i < to; i += 10) {
|
||||
delay(10);
|
||||
bus->methods->do_poll(bus);
|
||||
if (xfer->done)
|
||||
break;
|
||||
}
|
||||
DPRINTFN(2,("usbd_transfer: polling done =\n",
|
||||
xfer->done));
|
||||
/* XXX Is this right, what about the HC timeout? */
|
||||
if (!xfer->done) {
|
||||
pipe->methods->abort(xfer);
|
||||
xfer->status = USBD_TIMEOUT;
|
||||
}
|
||||
} else
|
||||
/* XXX End hack XXX */
|
||||
tsleep(xfer, PRIBIO, "usbsyn", 0);
|
||||
}
|
||||
splx(s);
|
||||
return (xfer->status);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: usbdi.h,v 1.51 2001/04/13 11:19:58 augustss Exp $ */
|
||||
/* $NetBSD: usbdi.h,v 1.50 2001/04/12 01:18:24 thorpej Exp $ */
|
||||
/* $FreeBSD$ */
|
||||
|
||||
/*
|
||||
@ -85,6 +85,9 @@ typedef void (*usbd_callback)(usbd_xfer_handle, usbd_private_handle,
|
||||
/* in usb.h #define USBD_SHORT_XFER_OK 0x04*/ /* allow short reads */
|
||||
#define USBD_FORCE_SHORT_XFER 0x08 /* force last short packet on write */
|
||||
|
||||
/* XXX Temporary hack XXX */
|
||||
#define USBD_NO_TSLEEP 0x80 /* XXX use busy wait */
|
||||
|
||||
#define USBD_NO_TIMEOUT 0
|
||||
#define USBD_DEFAULT_TIMEOUT 5000 /* ms = 5 s */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user