Module Name: src Committed By: kiyohara Date: Sun Mar 13 05:26:14 UTC 2011
Modified Files: src/sys/dev/ic: sl811hs.c Log Message: Fix reset status. Clear some flags for active pipes after completing hard reset. To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 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.26 src/sys/dev/ic/sl811hs.c:1.27 --- src/sys/dev/ic/sl811hs.c:1.26 Sat May 8 01:33:00 2010 +++ src/sys/dev/ic/sl811hs.c Sun Mar 13 05:26:14 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: sl811hs.c,v 1.26 2010/05/08 01:33:00 isaki Exp $ */ +/* $NetBSD: sl811hs.c,v 1.27 2011/03/13 05:26:14 kiyohara Exp $ */ /* * Not (c) 2007 Matthew Orgass @@ -84,7 +84,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.26 2010/05/08 01:33:00 isaki Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.27 2011/03/13 05:26:14 kiyohara Exp $"); #include "opt_slhci.h" @@ -2801,7 +2801,7 @@ /* Cancel all pipes. Note that not all of these may be on the * callback queue yet; some could be in slhci_start, for example. */ FOREACH_AP(q, t, spipe) { - spipe->pflags = PF_GONE; + spipe->pflags |= PF_GONE; spipe->pipe.repeat = 0; spipe->pipe.aborting = 1; if (spipe->xfer != NULL) @@ -2828,6 +2828,8 @@ slhci_reset(struct slhci_softc *sc) { struct slhci_transfers *t; + struct slhci_pipe *spipe; + struct gcq *q; uint8_t r, pol, ctrl; t = &sc->sc_transfers; @@ -2914,6 +2916,10 @@ t->flags &= ~(F_UDISABLED|F_RESET); t->flags |= F_CRESET|F_ROOTINTR; + FOREACH_AP(q, t, spipe) { + spipe->pflags &= ~PF_GONE; + spipe->pipe.aborting = 0; + } DLOG(D_MSG, "RESET done flags %#x", t->flags, 0,0,0); }