diff options
| author | Josef Karthauser <joe@FreeBSD.org> | 2002-09-30 17:50:18 +0000 |
|---|---|---|
| committer | Josef Karthauser <joe@FreeBSD.org> | 2002-09-30 17:50:18 +0000 |
| commit | fe7465081669234e0ab8f5cfa2bf221020e1ac01 (patch) | |
| tree | f99522c62b99212707db1a2b0a975eb3d62df114 /sys/dev/usb | |
| parent | 793afc3a5b1a663db0ae962eb5b826ce7eacb0cf (diff) | |
Notes
Diffstat (limited to 'sys/dev/usb')
| -rw-r--r-- | sys/dev/usb/ohci.c | 6 | ||||
| -rw-r--r-- | sys/dev/usb/ohcivar.h | 3 | ||||
| -rw-r--r-- | sys/dev/usb/uhci.c | 6 | ||||
| -rw-r--r-- | sys/dev/usb/uhcivar.h | 3 | ||||
| -rw-r--r-- | sys/dev/usb/usb_port.h | 3 |
5 files changed, 21 insertions, 0 deletions
diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c index a20be66e8fe9e..9a248cdba9cf8 100644 --- a/sys/dev/usb/ohci.c +++ b/sys/dev/usb/ohci.c @@ -1462,10 +1462,12 @@ ohci_softintr(void *v) } } +#ifdef USB_USE_SOFTINTR if (sc->sc_softwake) { sc->sc_softwake = 0; wakeup(&sc->sc_softwake); } +#endif /* USB_USE_SOFTINTR */ sc->sc_bus.intr_context--; DPRINTFN(10,("ohci_softintr: done:\n")); @@ -2228,9 +2230,13 @@ ohci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) */ usb_delay_ms(opipe->pipe.device->bus, 20); /* Hardware finishes in 1ms */ s = splusb(); +#ifdef USB_USE_SOFTINTR sc->sc_softwake = 1; +#endif /* USB_USE_SOFTINTR */ usb_schedsoftintr(&sc->sc_bus); +#ifdef USB_USE_SOFTINTR tsleep(&sc->sc_softwake, PZERO, "ohciab", 0); +#endif /* USB_USE_SOFTINTR */ splx(s); /* diff --git a/sys/dev/usb/ohcivar.h b/sys/dev/usb/ohcivar.h index e72b94f7beaf1..6b501223c1513 100644 --- a/sys/dev/usb/ohcivar.h +++ b/sys/dev/usb/ohcivar.h @@ -111,7 +111,10 @@ typedef struct ohci_softc { int sc_noport; u_int8_t sc_addr; /* device address */ u_int8_t sc_conf; /* device configuration */ + +#ifdef USB_USE_SOFTINTR char sc_softwake; +#endif /* USB_USE_SOFTINTR */ ohci_soft_ed_t *sc_freeeds; ohci_soft_td_t *sc_freetds; diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c index 382c2955b9298..c96294a9ccbbb 100644 --- a/sys/dev/usb/uhci.c +++ b/sys/dev/usb/uhci.c @@ -1268,10 +1268,12 @@ uhci_softintr(void *v) LIST_FOREACH(ii, &sc->sc_intrhead, list) uhci_check_intr(sc, ii); +#ifdef USB_USE_SOFTINTR if (sc->sc_softwake) { sc->sc_softwake = 0; wakeup(&sc->sc_softwake); } +#endif /* USB_USE_SOFTINTR */ sc->sc_bus.intr_context--; } @@ -1927,10 +1929,14 @@ uhci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) */ usb_delay_ms(upipe->pipe.device->bus, 2); /* Hardware finishes in 1ms */ s = splusb(); +#ifdef USB_USE_SOFTINTR sc->sc_softwake = 1; +#endif /* USB_USE_SOFTINTR */ usb_schedsoftintr(&sc->sc_bus); +#ifdef USB_USE_SOFTINTR DPRINTFN(1,("uhci_abort_xfer: tsleep\n")); tsleep(&sc->sc_softwake, PZERO, "uhciab", 0); +#endif /* USB_USE_SOFTINTR */ splx(s); /* diff --git a/sys/dev/usb/uhcivar.h b/sys/dev/usb/uhcivar.h index 82be04b88ed4f..760f4ea3b2b63 100644 --- a/sys/dev/usb/uhcivar.h +++ b/sys/dev/usb/uhcivar.h @@ -167,7 +167,10 @@ typedef struct uhci_softc { u_int8_t sc_saved_sof; u_int16_t sc_saved_frnum; +#ifdef USB_USE_SOFTINTR char sc_softwake; +#endif /* USB_USE_SOFTINTR */ + char sc_isreset; char sc_suspend; char sc_dying; diff --git a/sys/dev/usb/usb_port.h b/sys/dev/usb/usb_port.h index 03dcbb17c8b96..baaae52484baf 100644 --- a/sys/dev/usb/usb_port.h +++ b/sys/dev/usb/usb_port.h @@ -339,7 +339,10 @@ MALLOC_DECLARE(M_USBHC); #define USBVERBOSE +/* We don't the soft interrupt code on FreeBSD. +#if 0 #define USB_USE_SOFTINTR +#endif #define Static static |
