diff options
-rw-r--r-- | sys/arch/arm/xscale/pxa27x_udc.c | 4 | ||||
-rw-r--r-- | sys/dev/usb/ehci.c | 52 | ||||
-rw-r--r-- | sys/dev/usb/ehcivar.h | 6 | ||||
-rw-r--r-- | sys/dev/usb/if_aue.c | 16 | ||||
-rw-r--r-- | sys/dev/usb/if_auereg.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/if_axe.c | 16 | ||||
-rw-r--r-- | sys/dev/usb/if_axereg.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/if_cue.c | 12 | ||||
-rw-r--r-- | sys/dev/usb/if_cuereg.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/if_udav.c | 16 | ||||
-rw-r--r-- | sys/dev/usb/if_udavreg.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/if_upl.c | 4 | ||||
-rw-r--r-- | sys/dev/usb/if_url.c | 16 | ||||
-rw-r--r-- | sys/dev/usb/if_urlreg.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/if_wi_usb.c | 4 | ||||
-rw-r--r-- | sys/dev/usb/ohci.c | 26 | ||||
-rw-r--r-- | sys/dev/usb/ohcivar.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/uhci.c | 44 | ||||
-rw-r--r-- | sys/dev/usb/uhcivar.h | 4 | ||||
-rw-r--r-- | sys/dev/usb/ukbd.c | 33 | ||||
-rw-r--r-- | sys/dev/usb/usb.c | 14 | ||||
-rw-r--r-- | sys/dev/usb/usb_port.h | 13 | ||||
-rw-r--r-- | sys/dev/usb/usbdi.c | 4 | ||||
-rw-r--r-- | sys/dev/usb/usbdivar.h | 6 | ||||
-rw-r--r-- | sys/dev/usb/usbf_subr.c | 14 | ||||
-rw-r--r-- | sys/dev/usb/usbfvar.h | 6 |
26 files changed, 187 insertions, 147 deletions
diff --git a/sys/arch/arm/xscale/pxa27x_udc.c b/sys/arch/arm/xscale/pxa27x_udc.c index 9fa8085174c..4e5258b991d 100644 --- a/sys/arch/arm/xscale/pxa27x_udc.c +++ b/sys/arch/arm/xscale/pxa27x_udc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pxa27x_udc.c,v 1.19 2007/02/25 01:49:27 drahn Exp $ */ +/* $OpenBSD: pxa27x_udc.c,v 1.20 2007/06/10 10:15:35 mbalmer Exp $ */ /* * Copyright (c) 2007 Dale Rahn <drahn@openbsd.org> @@ -1159,7 +1159,7 @@ pxaudc_ctrl_abort(usbf_xfer_handle xfer) */ s = splusb(); xfer->status = USBF_CANCELLED; - usb_uncallout(xfer->timeout_handle, pxaudc_timeout, NULL); + timeout_del(&xfer->timeout_handle); splx(s); /* diff --git a/sys/dev/usb/ehci.c b/sys/dev/usb/ehci.c index 5b1c325871d..8e140107960 100644 --- a/sys/dev/usb/ehci.c +++ b/sys/dev/usb/ehci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ehci.c,v 1.71 2007/06/05 08:43:55 mbalmer Exp $ */ +/* $OpenBSD: ehci.c,v 1.72 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: ehci.c,v 1.66 2004/06/30 03:11:56 mycroft Exp $ */ /* @@ -469,8 +469,8 @@ ehci_init(ehci_softc_t *sc) sc->sc_async_head = sqh; EOWRITE4(sc, EHCI_ASYNCLISTADDR, sqh->physaddr | EHCI_LINK_QH); - usb_callout_init(sc->sc_tmo_pcd); - usb_callout_init(sc->sc_tmo_intrlist); + timeout_set(&sc->sc_tmo_pcd, NULL, NULL); + timeout_set(&sc->sc_tmo_intrlist, NULL, NULL); rw_init(&sc->sc_doorbell_lock, "ehcidb"); @@ -584,7 +584,9 @@ ehci_intr1(ehci_softc_t *sc) */ ehci_pcd_able(sc, 0); /* Do not allow RHSC interrupts > 1 per second */ - usb_callout(sc->sc_tmo_pcd, hz, ehci_pcd_enable, sc); + timeout_del(&sc->sc_tmo_pcd); + timeout_set(&sc->sc_tmo_pcd, ehci_pcd_enable, sc); + timeout_add(&sc->sc_tmo_pcd, hz); eintrs &= ~EHCI_STS_PCD; } @@ -673,9 +675,11 @@ ehci_softintr(void *v) /* Schedule a callout to catch any dropped transactions. */ if ((sc->sc_flags & EHCIF_DROPPED_INTR_WORKAROUND) && - !LIST_EMPTY(&sc->sc_intrhead)) - usb_callout(sc->sc_tmo_intrlist, hz, - ehci_intrlist_timeout, sc); + !LIST_EMPTY(&sc->sc_intrhead)) { + timeout_del(&sc->sc_tmo_intrlist); + timeout_set(&sc->sc_tmo_intrlist, ehci_intrlist_timeout, sc); + timeout_add(&sc->sc_tmo_intrlist, hz); + } #ifdef USB_USE_SOFTINTR if (sc->sc_softwake) { @@ -732,7 +736,7 @@ ehci_check_intr(ehci_softc_t *sc, struct ehci_xfer *ex) } done: DPRINTFN(12, ("ehci_check_intr: ex=%p done\n", ex)); - usb_uncallout(ex->xfer.timeout_handle, ehci_timeout, ex); + timeout_del(&ex->xfer.timeout_handle); usb_rem_task(ex->xfer.pipe->device, &ex->abort_task); ehci_idone(ex); } @@ -897,8 +901,8 @@ ehci_detach(struct ehci_softc *sc, int flags) if (rv != 0) return (rv); - usb_uncallout(sc->sc_tmo_intrlist, ehci_intrlist_timeout, sc); - usb_uncallout(sc->sc_tmo_pcd, ehci_pcd_enable, sc); + timeout_del(&sc->sc_tmo_intrlist); + timeout_del(&sc->sc_tmo_pcd); if (sc->sc_powerhook != NULL) powerhook_disestablish(sc->sc_powerhook); @@ -2424,7 +2428,7 @@ ehci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) /* If we're dying, just do the software part. */ s = splusb(); xfer->status = status; /* make software ignore it */ - usb_uncallout(xfer->timeout_handle, ehci_timeout, xfer); + timeout_del(&xfer->timeout_handle); usb_rem_task(epipe->pipe.device, &exfer->abort_task); usb_transfer_complete(xfer); splx(s); @@ -2458,7 +2462,7 @@ ehci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) s = splusb(); exfer->ehci_xfer_flags |= EHCI_XFER_ABORTING; xfer->status = status; /* make software ignore it */ - usb_uncallout(xfer->timeout_handle, ehci_timeout, xfer); + timeout_del(&xfer->timeout_handle); usb_rem_task(epipe->pipe.device, &exfer->abort_task); splx(s); @@ -2859,8 +2863,9 @@ ehci_device_request(usbd_xfer_handle xfer) s = splusb(); ehci_set_qh_qtd(sqh, setup); if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - ehci_timeout, xfer); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, ehci_timeout, xfer); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); } ehci_add_intr_list(sc, exfer); xfer->status = USBD_IN_PROGRESS; @@ -2969,8 +2974,9 @@ ehci_device_bulk_start(usbd_xfer_handle xfer) s = splusb(); ehci_set_qh_qtd(sqh, data); if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - ehci_timeout, xfer); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, ehci_timeout, xfer); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); } ehci_add_intr_list(sc, exfer); xfer->status = USBD_IN_PROGRESS; @@ -3141,9 +3147,11 @@ ehci_device_intr_start(usbd_xfer_handle xfer) s = splusb(); ehci_set_qh_qtd(sqh, data); - if (xfer->timeout && !sc->sc_bus.use_polling) - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - ehci_timeout, xfer); + if (xfer->timeout && !sc->sc_bus.use_polling) { + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, ehci_timeout, xfer); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); + } ehci_add_intr_list(sc, exfer); xfer->status = USBD_IN_PROGRESS; splx(s); @@ -3235,8 +3243,10 @@ ehci_device_intr_done(usbd_xfer_handle xfer) s = splusb(); ehci_set_qh_qtd(sqh, data); if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, - mstohz(xfer->timeout), ehci_timeout, xfer); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, ehci_timeout, xfer); + timeout_add(&xfer->timeout_handle, + mstohz(xfer->timeout)); } splx(s); diff --git a/sys/dev/usb/ehcivar.h b/sys/dev/usb/ehcivar.h index df68eaa40a9..4e34781c769 100644 --- a/sys/dev/usb/ehcivar.h +++ b/sys/dev/usb/ehcivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ehcivar.h,v 1.11 2007/05/20 00:52:26 jsg Exp $ */ +/* $OpenBSD: ehcivar.h,v 1.12 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: ehcivar.h,v 1.19 2005/04/29 15:04:29 augustss Exp $ */ /* @@ -133,8 +133,8 @@ typedef struct ehci_softc { struct rwlock sc_doorbell_lock; - usb_callout_t sc_tmo_pcd; - usb_callout_t sc_tmo_intrlist; + struct timeout sc_tmo_pcd; + struct timeout sc_tmo_intrlist; device_ptr_t sc_child; /* /dev/usb# device */ diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c index 8fe06977cea..bec33195957 100644 --- a/sys/dev/usb/if_aue.c +++ b/sys/dev/usb/if_aue.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_aue.c,v 1.58 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_aue.c,v 1.59 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_aue.c,v 1.82 2003/03/05 17:37:36 shiba Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -820,7 +820,7 @@ aue_attach(struct device *parent, struct device *self, void *aux) if_attach(ifp); ether_ifattach(ifp); - usb_callout_init(sc->aue_stat_ch); + timeout_set(&sc->aue_stat_ch, NULL, NULL); sc->aue_attached = 1; sc->sc_sdhook = shutdownhook_establish(aue_shutdown, sc); @@ -844,7 +844,7 @@ aue_detach(struct device *self, int flags) return (0); } - usb_uncallout(sc->aue_stat_ch, aue_tick, sc); + timeout_del(&sc->aue_stat_ch); /* * Remove any pending tasks. They cannot be executing because they run * in the same thread as detach. @@ -1235,7 +1235,9 @@ aue_tick_task(void *xsc) aue_start(ifp); } - usb_callout(sc->aue_stat_ch, hz, aue_tick, sc); + timeout_del(&sc->aue_stat_ch); + timeout_set(&sc->aue_stat_ch, aue_tick, sc); + timeout_add(&sc->aue_stat_ch, hz); splx(s); } @@ -1405,7 +1407,9 @@ aue_init(void *xsc) splx(s); - usb_callout(sc->aue_stat_ch, hz, aue_tick, sc); + timeout_del(&sc->aue_stat_ch); + timeout_set(&sc->aue_stat_ch, aue_tick, sc); + timeout_add(&sc->aue_stat_ch, hz); } int @@ -1634,7 +1638,7 @@ aue_stop(struct aue_softc *sc) aue_csr_write_1(sc, AUE_CTL0, 0); aue_csr_write_1(sc, AUE_CTL1, 0); aue_reset(sc); - usb_uncallout(sc->aue_stat_ch, aue_tick, sc); + timeout_del(&sc->aue_stat_ch); /* Stop transfers. */ if (sc->aue_ep[AUE_ENDPT_RX] != NULL) { diff --git a/sys/dev/usb/if_auereg.h b/sys/dev/usb/if_auereg.h index 7eacc02cb9a..764dca794dc 100644 --- a/sys/dev/usb/if_auereg.h +++ b/sys/dev/usb/if_auereg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_auereg.h,v 1.12 2007/06/06 19:25:49 mk Exp $ */ +/* $OpenBSD: if_auereg.h,v 1.13 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_auereg.h,v 1.16 2001/10/10 02:14:17 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -232,7 +232,7 @@ struct aue_softc { #define GET_IFP(sc) (&(sc)->arpcom.ac_if) #define GET_MII(sc) (&(sc)->aue_mii) - usb_callout_t aue_stat_ch; + struct timeout aue_stat_ch; usbd_device_handle aue_udev; usbd_interface_handle aue_iface; diff --git a/sys/dev/usb/if_axe.c b/sys/dev/usb/if_axe.c index 8a877c9b2bd..a6b3b51be71 100644 --- a/sys/dev/usb/if_axe.c +++ b/sys/dev/usb/if_axe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_axe.c,v 1.71 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_axe.c,v 1.72 2007/06/10 10:15:35 mbalmer Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Jonathan Gray <jsg@openbsd.org> @@ -714,7 +714,7 @@ axe_attach(struct device *parent, struct device *self, void *aux) if_attach(ifp); ether_ifattach(ifp); - usb_callout_init(sc->axe_stat_ch); + timeout_set(&sc->axe_stat_ch, NULL, NULL); sc->axe_attached = 1; splx(s); @@ -736,7 +736,7 @@ axe_detach(struct device *self, int flags) if (!sc->axe_attached) return (0); - usb_uncallout(sc->axe_stat_ch, axe_tick, sc); + timeout_del(&sc->axe_stat_ch); sc->axe_dying = 1; @@ -1111,7 +1111,9 @@ axe_tick_task(void *xsc) axe_start(ifp); } - usb_callout(sc->axe_stat_ch, hz, axe_tick, sc); + timeout_del(&sc->axe_stat_ch); + timeout_set(&sc->axe_stat_ch, axe_tick, sc); + timeout_add(&sc->axe_stat_ch, hz); splx(s); } @@ -1310,7 +1312,9 @@ axe_init(void *xsc) splx(s); - usb_callout(sc->axe_stat_ch, hz, axe_tick, sc); + timeout_del(&sc->axe_stat_ch); + timeout_set(&sc->axe_stat_ch, axe_tick, sc); + timeout_add(&sc->axe_stat_ch, hz); return; } @@ -1438,7 +1442,7 @@ axe_stop(struct axe_softc *sc) ifp->if_timer = 0; ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); - usb_uncallout(sc->axe_stat_ch, axe_tick, sc); + timeout_del(&sc->axe_stat_ch); /* Stop transfers. */ if (sc->axe_ep[AXE_ENDPT_RX] != NULL) { diff --git a/sys/dev/usb/if_axereg.h b/sys/dev/usb/if_axereg.h index 5fdd26223e5..5daf157e9e2 100644 --- a/sys/dev/usb/if_axereg.h +++ b/sys/dev/usb/if_axereg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_axereg.h,v 1.17 2007/06/06 19:25:49 mk Exp $ */ +/* $OpenBSD: if_axereg.h,v 1.18 2007/06/10 10:15:35 mbalmer Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000-2003 @@ -208,7 +208,7 @@ struct axe_softc { int axe_unit; int axe_if_flags; struct axe_cdata axe_cdata; - usb_callout_t axe_stat_ch; + struct timeout axe_stat_ch; int axe_refcnt; char axe_dying; diff --git a/sys/dev/usb/if_cue.c b/sys/dev/usb/if_cue.c index 3203c858d2d..56ec079787c 100644 --- a/sys/dev/usb/if_cue.c +++ b/sys/dev/usb/if_cue.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_cue.c,v 1.38 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_cue.c,v 1.39 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_cue.c,v 1.40 2002/07/11 21:14:26 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -528,7 +528,7 @@ cue_attach(struct device *parent, struct device *self, void *aux) if_attach(ifp); ether_ifattach(ifp); - usb_callout_init(sc->cue_stat_ch); + timeout_set(&sc->cue_stat_ch, NULL, NULL); sc->cue_attached = 1; splx(s); @@ -546,7 +546,7 @@ cue_detach(struct device *self, int flags) DPRINTFN(2,("%s: %s: enter\n", USBDEVNAME(sc->cue_dev), __func__)); - usb_uncallout(sc->cue_stat_ch, cue_tick, sc); + timeout_del(&sc->cue_stat_ch); /* * Remove any pending task. It cannot be executing because it run * in the same thread as detach. @@ -1047,7 +1047,9 @@ cue_init(void *xsc) splx(s); - usb_callout(sc->cue_stat_ch, hz, cue_tick, sc); + timeout_del(&sc->cue_stat_ch); + timeout_set(&sc->cue_stat_ch, cue_tick, sc); + timeout_add(&sc->cue_stat_ch, hz); } int @@ -1212,7 +1214,7 @@ cue_stop(struct cue_softc *sc) cue_csr_write_1(sc, CUE_ETHCTL, 0); cue_reset(sc); - usb_uncallout(sc->cue_stat_ch, cue_tick, sc); + timeout_del(&sc->cue_stat_ch); /* Stop transfers. */ if (sc->cue_ep[CUE_ENDPT_RX] != NULL) { diff --git a/sys/dev/usb/if_cuereg.h b/sys/dev/usb/if_cuereg.h index 2ea678abf10..7c344676ede 100644 --- a/sys/dev/usb/if_cuereg.h +++ b/sys/dev/usb/if_cuereg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_cuereg.h,v 1.9 2007/06/06 19:25:49 mk Exp $ */ +/* $OpenBSD: if_cuereg.h,v 1.10 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_cuereg.h,v 1.14 2001/01/21 22:09:24 augustss Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -170,7 +170,7 @@ struct cue_softc { struct arpcom arpcom; #define GET_IFP(sc) (&(sc)->arpcom.ac_if) - usb_callout_t cue_stat_ch; + struct timeout cue_stat_ch; usbd_device_handle cue_udev; usbd_interface_handle cue_iface; diff --git a/sys/dev/usb/if_udav.c b/sys/dev/usb/if_udav.c index 038bc3f20a0..574bbd91907 100644 --- a/sys/dev/usb/if_udav.c +++ b/sys/dev/usb/if_udav.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_udav.c,v 1.27 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_udav.c,v 1.28 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_udav.c,v 1.3 2004/04/23 17:25:25 itojun Exp $ */ /* $nabe: if_udav.c,v 1.3 2003/08/21 16:57:19 nabe Exp $ */ /* @@ -291,7 +291,7 @@ udav_attach(struct device *parent, struct device *self, void *aux) if_attach(ifp); ether_ifattach(ifp); - usb_callout_init(sc->sc_stat_ch); + timeout_set(&sc->sc_stat_ch, NULL, NULL); sc->sc_attached = 1; splx(s); @@ -317,7 +317,7 @@ udav_detach(struct device *self, int flags) if (!sc->sc_attached) return (0); - usb_uncallout(sc->sc_stat_ch, udav_tick, sc); + timeout_del(&sc->sc_stat_ch); /* Remove any pending tasks */ usb_rem_task(sc->sc_udev, &sc->sc_tick_task); @@ -669,7 +669,9 @@ udav_init(struct ifnet *ifp) splx(s); - usb_callout(sc->sc_stat_ch, hz, udav_tick, sc); + timeout_del(&sc->sc_stat_ch); + timeout_set(&sc->sc_stat_ch, udav_tick, sc); + timeout_add(&sc->sc_stat_ch, hz); return (0); } @@ -1312,7 +1314,7 @@ udav_stop(struct ifnet *ifp, int disable) udav_reset(sc); - usb_uncallout(sc->sc_stat_ch, udav_tick, sc); + timeout_del(&sc->sc_stat_ch); /* Stop transfers */ /* RX endpoint */ @@ -1483,7 +1485,9 @@ udav_tick_task(void *xsc) udav_start(ifp); } - usb_callout(sc->sc_stat_ch, hz, udav_tick, sc); + timeout_del(&sc->sc_stat_ch); + timeout_set(&sc->sc_stat_ch, udav_tick, sc); + timeout_add(&sc->sc_stat_ch, hz); splx(s); } diff --git a/sys/dev/usb/if_udavreg.h b/sys/dev/usb/if_udavreg.h index 78175afb75b..8d428d6d15e 100644 --- a/sys/dev/usb/if_udavreg.h +++ b/sys/dev/usb/if_udavreg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_udavreg.h,v 1.8 2007/06/09 11:06:53 mbalmer Exp $ */ +/* $OpenBSD: if_udavreg.h,v 1.9 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_udavreg.h,v 1.2 2003/09/04 15:17:39 tsutsui Exp $ */ /* $nabe: if_udavreg.h,v 1.2 2003/08/21 16:26:40 nabe Exp $ */ /* @@ -172,7 +172,7 @@ struct udav_softc { usbd_pipe_handle sc_pipe_rx; usbd_pipe_handle sc_pipe_tx; usbd_pipe_handle sc_pipe_intr; - usb_callout_t sc_stat_ch; + struct timeout sc_stat_ch; u_int sc_rx_errs; /* u_int sc_intr_errs; */ struct timeval sc_rx_notice; diff --git a/sys/dev/usb/if_upl.c b/sys/dev/usb/if_upl.c index 99f1803156f..8eb72e2bee7 100644 --- a/sys/dev/usb/if_upl.c +++ b/sys/dev/usb/if_upl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_upl.c,v 1.32 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_upl.c,v 1.33 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_upl.c,v 1.19 2002/07/11 21:14:26 augustss Exp $ */ /* * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -140,7 +140,7 @@ struct upl_softc { struct device sc_dev; struct ifnet sc_if; - usb_callout_t sc_stat_ch; + struct timeout sc_stat_ch; usbd_device_handle sc_udev; usbd_interface_handle sc_iface; diff --git a/sys/dev/usb/if_url.c b/sys/dev/usb/if_url.c index f3120d84b81..e8a6a58c5b5 100644 --- a/sys/dev/usb/if_url.c +++ b/sys/dev/usb/if_url.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_url.c,v 1.41 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_url.c,v 1.42 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_url.c,v 1.6 2002/09/29 10:19:21 martin Exp $ */ /* * Copyright (c) 2001, 2002 @@ -300,7 +300,7 @@ url_attach(struct device *parent, struct device *self, void *aux) if_attach(ifp); ether_ifattach(ifp); - usb_callout_init(sc->sc_stat_ch); + timeout_set(&sc->sc_stat_ch, NULL, NULL); sc->sc_attached = 1; splx(s); @@ -326,7 +326,7 @@ url_detach(struct device *self, int flags) if (!sc->sc_attached) return (0); - usb_uncallout(sc->sc_stat_ch, url_tick, sc); + timeout_del(&sc->sc_stat_ch); /* Remove any pending tasks */ usb_rem_task(sc->sc_udev, &sc->sc_tick_task); @@ -564,7 +564,9 @@ url_init(struct ifnet *ifp) splx(s); - usb_callout(sc->sc_stat_ch, hz, url_tick, sc); + timeout_del(&sc->sc_stat_ch); + timeout_set(&sc->sc_stat_ch, url_tick, sc); + timeout_add(&sc->sc_stat_ch, hz); return (0); } @@ -1200,7 +1202,7 @@ url_stop(struct ifnet *ifp, int disable) url_reset(sc); - usb_uncallout(sc->sc_stat_ch, url_tick, sc); + timeout_del(&sc->sc_stat_ch); /* Stop transfers */ /* RX endpoint */ @@ -1371,7 +1373,9 @@ url_tick_task(void *xsc) url_start(ifp); } - usb_callout(sc->sc_stat_ch, hz, url_tick, sc); + timeout_del(&sc->sc_stat_ch); + timeout_set(&sc->sc_stat_ch, url_tick, sc); + timeout_add(&sc->sc_stat_ch, hz); splx(s); } diff --git a/sys/dev/usb/if_urlreg.h b/sys/dev/usb/if_urlreg.h index 7d4f1e7e959..214900ab015 100644 --- a/sys/dev/usb/if_urlreg.h +++ b/sys/dev/usb/if_urlreg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_urlreg.h,v 1.10 2007/06/06 19:25:49 mk Exp $ */ +/* $OpenBSD: if_urlreg.h,v 1.11 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: if_urlreg.h,v 1.1 2002/03/28 21:09:11 ichiro Exp $ */ /* * Copyright (c) 2001, 2002 @@ -162,7 +162,7 @@ struct url_softc { usbd_pipe_handle sc_pipe_rx; usbd_pipe_handle sc_pipe_tx; usbd_pipe_handle sc_pipe_intr; - usb_callout_t sc_stat_ch; + struct timeout sc_stat_ch; u_int sc_rx_errs; /* u_int sc_intr_errs; */ struct timeval sc_rx_notice; diff --git a/sys/dev/usb/if_wi_usb.c b/sys/dev/usb/if_wi_usb.c index 813e6e1f352..ccfbcd3558a 100644 --- a/sys/dev/usb/if_wi_usb.c +++ b/sys/dev/usb/if_wi_usb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_wi_usb.c,v 1.37 2007/06/09 12:22:53 mbalmer Exp $ */ +/* $OpenBSD: if_wi_usb.c,v 1.38 2007/06/10 10:15:35 mbalmer Exp $ */ /* * Copyright (c) 2003 Dale Rahn. All rights reserved. @@ -137,7 +137,7 @@ struct wi_usb_softc { struct wi_softc sc_wi; #define wi_usb_dev sc_wi.sc_dev - usb_callout_t wi_usb_stat_ch; + struct timeout wi_usb_stat_ch; usbd_device_handle wi_usb_udev; usbd_interface_handle wi_usb_iface; diff --git a/sys/dev/usb/ohci.c b/sys/dev/usb/ohci.c index 23064422c6c..0ea46a6a2a3 100644 --- a/sys/dev/usb/ohci.c +++ b/sys/dev/usb/ohci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ohci.c,v 1.79 2007/06/05 08:43:55 mbalmer Exp $ */ +/* $OpenBSD: ohci.c,v 1.80 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: ohci.c,v 1.139 2003/02/22 05:24:16 tsutsui Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $ */ @@ -340,7 +340,7 @@ ohci_detach(struct ohci_softc *sc, int flags) if (rv != 0) return (rv); - usb_uncallout(sc->sc_tmo_rhsc, ohci_rhsc_enable, sc); + timeout_del(&sc->sc_tmo_rhsc); if (sc->sc_shutdownhook != NULL) shutdownhook_disestablish(sc->sc_shutdownhook); @@ -863,7 +863,7 @@ ohci_init(ohci_softc_t *sc) sc->sc_control = sc->sc_intre = 0; sc->sc_shutdownhook = shutdownhook_establish(ohci_shutdown, sc); - usb_callout_init(sc->sc_tmo_rhsc); + timeout_set(&sc->sc_tmo_rhsc, NULL, NULL); /* Finally, turn on interrupts. */ DPRINTFN(1,("ohci_init: enabling\n")); @@ -1186,7 +1186,9 @@ ohci_intr1(ohci_softc_t *sc) USBDEVNAME(sc->sc_bus.bdev))); /* Do not allow RHSC interrupts > 1 per second */ - usb_callout(sc->sc_tmo_rhsc, hz, ohci_rhsc_enable, sc); + timeout_del(&sc->sc_tmo_rhsc); + timeout_set(&sc->sc_tmo_rhsc, ohci_rhsc_enable, sc); + timeout_add(&sc->sc_tmo_rhsc, hz); eintrs &= ~OHCI_RHSC; } @@ -1341,7 +1343,7 @@ ohci_softintr(void *v) /* Handled by abort routine. */ continue; } - usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); + timeout_del(&xfer->timeout_handle); len = std->len; if (std->td.td_cbp != 0) @@ -1743,8 +1745,9 @@ ohci_device_request(usbd_xfer_handle xfer) opipe->tail.td = tail; OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_CLF); if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - ohci_timeout, xfer); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, ohci_timeout, xfer); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); } splx(s); @@ -2189,7 +2192,7 @@ ohci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) /* If we're dying, just do the software part. */ s = splusb(); xfer->status = status; /* make software ignore it */ - usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); + timeout_del(&xfer->timeout_handle); usb_transfer_complete(xfer); splx(s); return; @@ -2203,7 +2206,7 @@ ohci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) */ s = splusb(); xfer->status = status; /* make software ignore it */ - usb_uncallout(xfer->timeout_handle, ohci_timeout, xfer); + timeout_del(&xfer->timeout_handle); splx(s); DPRINTFN(1,("ohci_abort_xfer: stop ed=%p\n", sed)); sed->ed.ed_flags |= htole32(OHCI_ED_SKIP); /* force hardware skip */ @@ -2923,8 +2926,9 @@ ohci_device_bulk_start(usbd_xfer_handle xfer) sed->ed.ed_flags &= htole32(~OHCI_ED_SKIP); OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_BLF); if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - ohci_timeout, xfer); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, ohci_timeout, xfer); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); } #if 0 diff --git a/sys/dev/usb/ohcivar.h b/sys/dev/usb/ohcivar.h index fa9ce3e21c7..9f6930deb8d 100644 --- a/sys/dev/usb/ohcivar.h +++ b/sys/dev/usb/ohcivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ohcivar.h,v 1.22 2007/03/22 05:53:36 pascoe Exp $ */ +/* $OpenBSD: ohcivar.h,v 1.23 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: ohcivar.h,v 1.32 2003/02/22 05:24:17 tsutsui Exp $ */ /* $FreeBSD: src/sys/dev/usb/ohcivar.h,v 1.13 1999/11/17 22:33:41 n_hibma Exp $ */ @@ -135,7 +135,7 @@ typedef struct ohci_softc { u_int sc_overrun_cnt; struct timeval sc_overrun_ntc; - usb_callout_t sc_tmo_rhsc; + struct timeout sc_tmo_rhsc; device_ptr_t sc_child; diff --git a/sys/dev/usb/uhci.c b/sys/dev/usb/uhci.c index 983d09d9e54..752920dcdcd 100644 --- a/sys/dev/usb/uhci.c +++ b/sys/dev/usb/uhci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uhci.c,v 1.55 2007/06/05 08:43:55 mbalmer Exp $ */ +/* $OpenBSD: uhci.c,v 1.56 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: uhci.c,v 1.172 2003/02/23 04:19:26 simonb Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $ */ @@ -488,7 +488,7 @@ uhci_init(uhci_softc_t *sc) SIMPLEQ_INIT(&sc->sc_free_xfers); - usb_callout_init(sc->sc_poll_handle); + timeout_set(&sc->sc_poll_handle, NULL, NULL); /* Set up the bus struct. */ sc->sc_bus.methods = &uhci_bus_methods; @@ -685,8 +685,7 @@ uhci_power(int why, void *v) uhci_dumpregs(sc); #endif if (sc->sc_intr_xfer != NULL) - usb_uncallout(sc->sc_poll_handle, uhci_poll_hub, - sc->sc_intr_xfer); + timeout_del(&sc->sc_poll_handle); sc->sc_bus.use_polling++; uhci_run(sc, 0); /* stop the controller */ @@ -725,9 +724,12 @@ uhci_power(int why, void *v) uhci_run(sc, 1); /* and start traffic again */ usb_delay_ms(&sc->sc_bus, USB_RESUME_RECOVERY); sc->sc_bus.use_polling--; - if (sc->sc_intr_xfer != NULL) - usb_callout(sc->sc_poll_handle, sc->sc_ival, - uhci_poll_hub, sc->sc_intr_xfer); + if (sc->sc_intr_xfer != NULL) { + timeout_del(&sc->sc_poll_handle); + timeout_set(&sc->sc_poll_handle, uhci_poll_hub, + sc->sc_intr_xfer); + timeout_add(&sc->sc_poll_handle, sc->sc_ival); + } #ifdef UHCI_DEBUG if (uhcidebug > 2) uhci_dumpregs(sc); @@ -939,7 +941,9 @@ uhci_poll_hub(void *addr) DPRINTFN(20, ("uhci_poll_hub\n")); - usb_callout(sc->sc_poll_handle, sc->sc_ival, uhci_poll_hub, xfer); + timeout_del(&sc->sc_poll_handle); + timeout_set(&sc->sc_poll_handle, uhci_poll_hub, xfer); + timeout_add(&sc->sc_poll_handle, sc->sc_ival); p = KERNADDR(&xfer->dmabuf, 0); p[0] = 0; @@ -1315,7 +1319,7 @@ uhci_check_intr(uhci_softc_t *sc, uhci_intr_info_t *ii) } done: DPRINTFN(12, ("uhci_check_intr: ii=%p done\n", ii)); - usb_uncallout(ii->xfer->timeout_handle, uhci_timeout, ii); + timeout_del(&ii->xfer->timeout_handle); uhci_idone(ii); } @@ -1840,8 +1844,9 @@ uhci_device_bulk_start(usbd_xfer_handle xfer) uhci_add_intr_info(sc, ii); if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - uhci_timeout, ii); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, uhci_timeout, ii); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); } xfer->status = USBD_IN_PROGRESS; splx(s); @@ -1892,7 +1897,7 @@ uhci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) /* If we're dying, just do the software part. */ s = splusb(); xfer->status = status; /* make software ignore it */ - usb_uncallout(xfer->timeout_handle, uhci_timeout, xfer); + timeout_del(&xfer->timeout_handle); usb_transfer_complete(xfer); splx(s); return; @@ -1906,7 +1911,7 @@ uhci_abort_xfer(usbd_xfer_handle xfer, usbd_status status) */ s = splusb(); xfer->status = status; /* make software ignore it */ - usb_uncallout(xfer->timeout_handle, uhci_timeout, ii); + timeout_del(&xfer->timeout_handle); DPRINTFN(1,("uhci_abort_xfer: stop ii=%p\n", ii)); for (std = ii->stdstart; std != NULL; std = std->link.std) std->td.td_status &= htole32(~(UHCI_TD_ACTIVE | UHCI_TD_IOC)); @@ -2264,8 +2269,9 @@ uhci_device_request(usbd_xfer_handle xfer) } #endif if (xfer->timeout && !sc->sc_bus.use_polling) { - usb_callout(xfer->timeout_handle, mstohz(xfer->timeout), - uhci_timeout, ii); + timeout_del(&xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, uhci_timeout, ii); + timeout_add(&xfer->timeout_handle, mstohz(xfer->timeout)); } xfer->status = USBD_IN_PROGRESS; splx(s); @@ -3426,7 +3432,7 @@ uhci_root_intr_abort(usbd_xfer_handle xfer) { uhci_softc_t *sc = (uhci_softc_t *)xfer->pipe->device->bus; - usb_uncallout(sc->sc_poll_handle, uhci_poll_hub, xfer); + timeout_del(&sc->sc_poll_handle); sc->sc_intr_xfer = NULL; if (xfer->pipe->intrxfer == xfer) { @@ -3470,7 +3476,9 @@ uhci_root_intr_start(usbd_xfer_handle xfer) return (USBD_IOERROR); sc->sc_ival = mstohz(xfer->pipe->endpoint->edesc->bInterval); - usb_callout(sc->sc_poll_handle, sc->sc_ival, uhci_poll_hub, xfer); + timeout_del(&sc->sc_poll_handle); + timeout_set(&sc->sc_poll_handle, uhci_poll_hub, xfer); + timeout_add(&sc->sc_poll_handle, sc->sc_ival); sc->sc_intr_xfer = xfer; return (USBD_IN_PROGRESS); } @@ -3481,7 +3489,7 @@ uhci_root_intr_close(usbd_pipe_handle pipe) { uhci_softc_t *sc = (uhci_softc_t *)pipe->device->bus; - usb_uncallout(sc->sc_poll_handle, uhci_poll_hub, sc->sc_intr_xfer); + timeout_del(&sc->sc_poll_handle); sc->sc_intr_xfer = NULL; DPRINTF(("uhci_root_intr_close\n")); } diff --git a/sys/dev/usb/uhcivar.h b/sys/dev/usb/uhcivar.h index be584fd4192..776b745b123 100644 --- a/sys/dev/usb/uhcivar.h +++ b/sys/dev/usb/uhcivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: uhcivar.h,v 1.16 2007/06/04 10:34:04 mbalmer Exp $ */ +/* $OpenBSD: uhcivar.h,v 1.17 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: uhcivar.h,v 1.36 2002/12/31 00:39:11 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/uhcivar.h,v 1.14 1999/11/17 22:33:42 n_hibma Exp $ */ @@ -175,7 +175,7 @@ typedef struct uhci_softc { /* Info for the root hub interrupt "pipe". */ int sc_ival; /* time between root hub intrs */ usbd_xfer_handle sc_intr_xfer; /* root hub interrupt transfer */ - usb_callout_t sc_poll_handle; + struct timeout sc_poll_handle; char sc_vendor[32]; /* vendor string for root hub */ int sc_id_vendor; /* vendor ID for root hub */ diff --git a/sys/dev/usb/ukbd.c b/sys/dev/usb/ukbd.c index 660ca6f81ae..d6b55e01f6f 100644 --- a/sys/dev/usb/ukbd.c +++ b/sys/dev/usb/ukbd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ukbd.c,v 1.31 2007/06/05 08:43:55 mbalmer Exp $ */ +/* $OpenBSD: ukbd.c,v 1.32 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: ukbd.c,v 1.85 2003/03/11 16:44:00 augustss Exp $ */ /* @@ -234,7 +234,7 @@ struct ukbd_softc { int sc_console_keyboard; /* we are the console keyboard */ char sc_debounce; /* for quirk handling */ - usb_callout_t sc_delay; /* for quirk handling */ + struct timeout sc_delay; /* for quirk handling */ struct ukbd_data sc_data; /* for quirk handling */ struct hid_location sc_numloc; @@ -242,7 +242,7 @@ struct ukbd_softc { struct hid_location sc_scroloc; int sc_leds; - usb_callout_t sc_rawrepeat_ch; + struct timeout sc_rawrepeat_ch; struct device *sc_wskbddev; #if defined(WSDISPLAY_COMPAT_RAWKBD) @@ -438,8 +438,8 @@ ukbd_attach(struct device *parent, struct device *self, void *aux) a.accessops = &ukbd_accessops; a.accesscookie = sc; - usb_callout_init(sc->sc_rawrepeat_ch); - usb_callout_init(sc->sc_delay); + timeout_set(&sc->sc_rawrepeat_ch, NULL, NULL); + timeout_set(&sc->sc_delay, NULL, NULL); /* Flash the leds; no real purpose, just shows we're alive. */ ukbd_set_leds(sc, WSKBD_LED_SCROLL | WSKBD_LED_NUM | WSKBD_LED_CAPS); @@ -568,7 +568,9 @@ ukbd_intr(struct uhidev *addr, void *ibuf, u_int len) * We avoid this bug by holding off decoding for 20 ms. */ sc->sc_data = *ud; - usb_callout(sc->sc_delay, hz / 50, ukbd_delayed_decode, sc); + timeout_del(&sc->sc_delay); + timeout_set(&sc->sc_delay, ukbd_delayed_decode, sc); + timeout_add(&sc->sc_delay, hz / 50); #ifdef DDB } else if (sc->sc_console_keyboard && !sc->sc_polling) { /* @@ -578,7 +580,9 @@ ukbd_intr(struct uhidev *addr, void *ibuf, u_int len) * loses bigtime. */ sc->sc_data = *ud; - usb_callout(sc->sc_delay, 1, ukbd_delayed_decode, sc); + timeout_del(&sc->sc_delay); + timeout_set(&sc->sc_delay, ukbd_delayed_decode, sc); + timeout_add(&sc->sc_delay, 1); #endif } else { ukbd_decode(sc, ud); @@ -711,11 +715,13 @@ ukbd_decode(struct ukbd_softc *sc, struct ukbd_data *ud) s = spltty(); wskbd_rawinput(sc->sc_wskbddev, cbuf, j); splx(s); - usb_uncallout(sc->sc_rawrepeat_ch, ukbd_rawrepeat, sc); + timeout_del(&sc->sc_rawrepeat_ch); if (npress != 0) { sc->sc_nrep = npress; - usb_callout(sc->sc_rawrepeat_ch, - hz * REP_DELAY1 / 1000, ukbd_rawrepeat, sc); + timeout_del(&sc->sc_rawrepeat_ch); + timeout_set(&sc->sc_rawrepeat_ch, ukbd_rawrepeat, sc); + timeout_add(&sc->sc_rawrepeat_ch, + hz * REP_DELAY1 / 1000); } return; } @@ -767,8 +773,9 @@ ukbd_rawrepeat(void *v) s = spltty(); wskbd_rawinput(sc->sc_wskbddev, sc->sc_rep, sc->sc_nrep); splx(s); - usb_callout(sc->sc_rawrepeat_ch, hz * REP_DELAYN / 1000, - ukbd_rawrepeat, sc); + timeout_del(&sc->sc_rawrepeat_ch); + timeout_set(&sc->sc_rawrepeat_ch, ukbd_rawrepeat, sc); + timeout_add(&sc->sc_rawrepeat_ch, hz * REP_DELAYN / 1000); } #endif @@ -791,7 +798,7 @@ ukbd_ioctl(void *v, u_long cmd, caddr_t data, int flag, usb_proc_ptr p) case WSKBDIO_SETMODE: DPRINTF(("ukbd_ioctl: set raw = %d\n", *(int *)data)); sc->sc_rawkbd = *(int *)data == WSKBD_RAW; - usb_uncallout(sc->sc_rawrepeat_ch, ukbd_rawrepeat, sc); + timeout_del(&sc->sc_rawrepeat_ch); return (0); #endif } diff --git a/sys/dev/usb/usb.c b/sys/dev/usb/usb.c index 43bc1d378e0..759d8a67268 100644 --- a/sys/dev/usb/usb.c +++ b/sys/dev/usb/usb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usb.c,v 1.43 2007/06/06 19:25:49 mk Exp $ */ +/* $OpenBSD: usb.c,v 1.44 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: usb.c,v 1.77 2003/01/01 00:10:26 thorpej Exp $ */ /* @@ -191,7 +191,7 @@ usb_attach(struct device *parent, struct device *self, void *aux) return; } #else - usb_callout_init(sc->sc_bus->softi); + timeout_set(&sc->sc_bus->softi, NULL, NULL); #endif #endif @@ -766,9 +766,11 @@ usb_schedsoftintr(usbd_bus_handle bus) #ifdef __HAVE_GENERIC_SOFT_INTERRUPTS softintr_schedule(bus->soft); #else - if (!usb_callout_pending(bus->softi)) - usb_callout(bus->softi, 0, bus->methods->soft_intr, - bus); + if (!timeout_pending(&bus->softi)) { + timeout_del(&bus->softi); + timeout_set(&bus->softi, bus->methods->soft_intr, bus); + timeout_add(&bus->softi, 0); + } #endif /* __HAVE_GENERIC_SOFT_INTERRUPTS */ } #else @@ -831,7 +833,7 @@ usb_detach(device_ptr_t self, int flags) sc->sc_bus->soft = NULL; } #else - usb_uncallout(sc->sc_bus->softi, bus->methods->soft_intr, bus); + timeout_del(&sc->sc_bus->softi); #endif #endif diff --git a/sys/dev/usb/usb_port.h b/sys/dev/usb/usb_port.h index 9e450fc3c14..0e830f536da 100644 --- a/sys/dev/usb/usb_port.h +++ b/sys/dev/usb/usb_port.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usb_port.h,v 1.74 2007/06/10 08:02:16 mbalmer Exp $ */ +/* $OpenBSD: usb_port.h,v 1.75 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: usb_port.h,v 1.62 2003/02/15 18:33:30 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usb_port.h,v 1.21 1999/11/17 22:33:47 n_hibma Exp $ */ @@ -98,17 +98,6 @@ typedef struct device *device_ptr_t; u_int offs; \ } usb_dma_t -typedef struct timeout usb_callout_t; -#define usb_callout_init(h) timeout_set(&(h), NULL, NULL) -#define usb_callout(h, t, f, d) \ - do { \ - timeout_del(&(h)); \ - timeout_set(&(h), (f), (d)); \ - timeout_add(&(h), (t)); \ - } while (0) -#define usb_callout_pending(h) timeout_pending(&(h)) -#define usb_uncallout(h, f, d) timeout_del(&(h)) - #define USB_DECLARE_DRIVER_CLASS(dname, devclass) \ int __CONCAT(dname,_match)(struct device *, void *, void *); \ void __CONCAT(dname,_attach)(struct device *, struct device *, void *); \ diff --git a/sys/dev/usb/usbdi.c b/sys/dev/usb/usbdi.c index 1cc6d81712c..c32fa96008b 100644 --- a/sys/dev/usb/usbdi.c +++ b/sys/dev/usb/usbdi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdi.c,v 1.31 2007/06/05 08:43:56 mbalmer Exp $ */ +/* $OpenBSD: usbdi.c,v 1.32 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: usbdi.c,v 1.103 2002/09/27 15:37:38 provos Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $ */ @@ -384,7 +384,7 @@ usbd_alloc_xfer(usbd_device_handle dev) if (xfer == NULL) return (NULL); xfer->device = dev; - usb_callout_init(xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, NULL, NULL); DPRINTFN(5,("usbd_alloc_xfer() = %p\n", xfer)); return (xfer); } diff --git a/sys/dev/usb/usbdivar.h b/sys/dev/usb/usbdivar.h index 086b497c853..ff128f88920 100644 --- a/sys/dev/usb/usbdivar.h +++ b/sys/dev/usb/usbdivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbdivar.h,v 1.27 2007/06/06 19:25:49 mk Exp $ */ +/* $OpenBSD: usbdivar.h,v 1.28 2007/06/10 10:15:35 mbalmer Exp $ */ /* $NetBSD: usbdivar.h,v 1.70 2002/07/11 21:14:36 augustss Exp $ */ /* $FreeBSD: src/sys/dev/usb/usbdivar.h,v 1.11 1999/11/17 22:33:51 n_hibma Exp $ */ @@ -124,7 +124,7 @@ struct usbd_bus { #ifdef __HAVE_GENERIC_SOFT_INTERRUPTS void *soft; /* soft interrupt cookie */ #else - usb_callout_t softi; + struct timeout softi; #endif #endif bus_dma_tag_t dmatag; /* DMA tag */ @@ -221,7 +221,7 @@ struct usbd_xfer { void *hcpriv; /* private use by the HC driver */ - usb_callout_t timeout_handle; + struct timeout timeout_handle; }; void usbd_init(void); diff --git a/sys/dev/usb/usbf_subr.c b/sys/dev/usb/usbf_subr.c index 80e304fcb39..dc87c1c6089 100644 --- a/sys/dev/usb/usbf_subr.c +++ b/sys/dev/usb/usbf_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: usbf_subr.c,v 1.3 2007/02/13 18:32:57 drahn Exp $ */ +/* $OpenBSD: usbf_subr.c,v 1.4 2007/06/10 10:15:35 mbalmer Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -810,7 +810,7 @@ usbf_alloc_xfer(usbf_device_handle dev) if (xfer == NULL) return NULL; xfer->device = dev; - usb_callout_init(xfer->timeout_handle); + timeout_set(&xfer->timeout_handle, NULL, NULL); DPRINTF(1,("usbf_alloc_xfer() = %p\n", xfer)); return xfer; } @@ -1074,7 +1074,7 @@ usbf_softintr_establish(struct usbf_bus *bus) if (bus->soft == NULL) return USBF_INVAL; #else - usb_callout_init(bus->softi); + timeout_set(&bus->softi, NULLL, NULL); #endif #endif return USBF_NORMAL_COMPLETION; @@ -1087,9 +1087,11 @@ usbf_schedsoftintr(struct usbf_bus *bus) #ifdef __HAVE_GENERIC_SOFT_INTERRUPTS softintr_schedule(bus->soft); #else - if (!usb_callout_pending(bus->softi)) - usb_callout(bus->softi, 0, bus->methods->soft_intr, - bus); + if (!timeout_pending(&bus->softi)) { + timeout_del(&bus->softi); + timeout_set(&bus->softi, bus->methods->soft_intr, bus); + timeout_add(&bus->softi, 0); + } #endif /* __HAVE_GENERIC_SOFT_INTERRUPTS */ #else bus->methods->soft_intr(bus); diff --git a/sys/dev/usb/usbfvar.h b/sys/dev/usb/usbfvar.h index 2d684d18cee..74d4e41cc92 100644 --- a/sys/dev/usb/usbfvar.h +++ b/sys/dev/usb/usbfvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: usbfvar.h,v 1.2 2007/06/06 19:25:50 mk Exp $ */ +/* $OpenBSD: usbfvar.h,v 1.3 2007/06/10 10:15:35 mbalmer Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -105,7 +105,7 @@ struct usbf_bus { #ifdef __HAVE_GENERIC_SOFT_INTERRUPTS void *soft; /* soft interrupt cookie */ #else - usb_callout_t softi; /* timeout handle */ + struct timeout softi; /* timeout handle */ #endif #endif bus_dma_tag_t dmatag; /* DMA tag */ @@ -151,7 +151,7 @@ struct usbf_xfer { int rqflags; usb_dma_t dmabuf; - usb_callout_t timeout_handle; + struct timeout timeout_handle; }; |