Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/usb (perhaps) fix a long standing issue that I came ...



details:   https://anonhg.NetBSD.org/src/rev/9750374ec3f9
branches:  trunk
changeset: 747052:9750374ec3f9
user:      plunky <plunky%NetBSD.org@localhost>
date:      Sun Aug 30 18:35:53 2009 +0000

description:
(perhaps) fix a long standing issue that I came across recently. If
you repeatedly enable/disable a ubt device it sometimes hangs in
the bluetooth initialisation where the device responses never arrive,
but if you interrupt and try again it works fine.

additionally aborting the default pipe on shutdown seems to fix that

diffstat:

 sys/dev/usb/ubt.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (27 lines):

diff -r 9cebcfe0dd18 -r 9750374ec3f9 sys/dev/usb/ubt.c
--- a/sys/dev/usb/ubt.c Sun Aug 30 16:38:48 2009 +0000
+++ b/sys/dev/usb/ubt.c Sun Aug 30 18:35:53 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ubt.c,v 1.35 2008/07/28 14:19:26 drochner Exp $        */
+/*     $NetBSD: ubt.c,v 1.36 2009/08/30 18:35:53 plunky Exp $  */
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ubt.c,v 1.35 2008/07/28 14:19:26 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubt.c,v 1.36 2009/08/30 18:35:53 plunky Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -734,6 +734,8 @@
        DPRINTFN(1, "sc=%p\n", sc);
 
        /* Abort all pipes */
+       usbd_abort_default_pipe(sc->sc_udev);
+
        if (sc->sc_evt_pipe != NULL) {
                usbd_abort_pipe(sc->sc_evt_pipe);
                usbd_close_pipe(sc->sc_evt_pipe);



Home | Main Index | Thread Index | Old Index