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);
 }
 

Reply via email to