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