Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/ic The HCD should no longer restart a repeating tran...



details:   https://anonhg.NetBSD.org/src/rev/4b6a38af6fed
branches:  trunk
changeset: 815323:4b6a38af6fed
user:      skrll <skrll%NetBSD.org@localhost>
date:      Wed May 11 21:02:10 2016 +0000

description:
The HCD should no longer restart a repeating transfer (i.e. an interrupt
transfer) as this is now handled in the usb core code.

diffstat:

 sys/dev/ic/sl811hs.c |  36 +++---------------------------------
 1 files changed, 3 insertions(+), 33 deletions(-)

diffs (82 lines):

diff -r 2298ce70e75d -r 4b6a38af6fed sys/dev/ic/sl811hs.c
--- a/sys/dev/ic/sl811hs.c      Wed May 11 19:35:08 2016 +0000
+++ b/sys/dev/ic/sl811hs.c      Wed May 11 21:02:10 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: sl811hs.c,v 1.61 2016/05/11 06:07:52 skrll Exp $       */
+/*     $NetBSD: sl811hs.c,v 1.62 2016/05/11 21:02:10 skrll Exp $       */
 
 /*
  * Not (c) 2007 Matthew Orgass
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.61 2016/05/11 06:07:52 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.62 2016/05/11 21:02:10 skrll Exp $");
 
 #include "opt_slhci.h"
 
@@ -493,7 +493,6 @@
 static void slhci_queue_timed(struct slhci_softc *, struct slhci_pipe *);
 static void slhci_xfer_timer(struct slhci_softc *, struct slhci_pipe *);
 
-static void slhci_do_repeat(struct slhci_softc *, struct usbd_xfer *);
 static void slhci_callback_schedule(struct slhci_softc *);
 static void slhci_do_callback_schedule(struct slhci_softc *);
 #if 0
@@ -1474,23 +1473,18 @@
 void
 slhci_do_callback(struct slhci_softc *sc, struct usbd_xfer *xfer)
 {
+       SLHCIHIST_FUNC(); SLHCIHIST_CALLED();
        KASSERT(mutex_owned(&sc->sc_intr_lock));
 
-       int repeat;
-
        start_cc_time(&t_callback, (u_int)xfer);
        mutex_exit(&sc->sc_intr_lock);
 
        mutex_enter(&sc->sc_lock);
-       repeat = xfer->ux_pipe->up_repeat;
        usb_transfer_complete(xfer);
        mutex_exit(&sc->sc_lock);
 
        mutex_enter(&sc->sc_intr_lock);
        stop_cc_time(&t_callback);
-
-       if (repeat && !sc->sc_bus.ub_usepolling)
-               slhci_do_repeat(sc, xfer);
 }
 
 int
@@ -2452,30 +2446,6 @@
 }
 
 static void
-slhci_do_repeat(struct slhci_softc *sc, struct usbd_xfer *xfer)
-{
-       SLHCIHIST_FUNC(); SLHCIHIST_CALLED();
-       struct slhci_transfers *t;
-       struct slhci_pipe *spipe;
-
-       t = &sc->sc_transfers;
-       spipe = SLHCI_PIPE2SPIPE(xfer->ux_pipe);
-
-       if (xfer == t->rootintr)
-               return;
-
-       DLOG(D_TRACE, "REPEAT: xfer %p actlen %d frame %u now %u",
-           xfer, xfer->ux_actlen, spipe->frame, sc->sc_transfers.frame);
-
-       xfer->ux_actlen = 0;
-       spipe->xfer = xfer;
-       if (spipe->tregs[LEN])
-               KASSERT(spipe->buffer == xfer->ux_buf);
-       slhci_queue_timed(sc, spipe);
-       slhci_dotransfer(sc);
-}
-
-static void
 slhci_callback_schedule(struct slhci_softc *sc)
 {
        struct slhci_transfers *t;



Home | Main Index | Thread Index | Old Index