Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/usb Add usbd_reload_device_desc() to get the device ...



details:   https://anonhg.NetBSD.org/src/rev/3e951f35e056
branches:  trunk
changeset: 480618:3e951f35e056
user:      augustss <augustss%NetBSD.org@localhost>
date:      Sun Jan 16 23:11:43 2000 +0000

description:
Add usbd_reload_device_desc() to get the device descriptor again from a device.
Useful if e.g. downloading firmware updates the revision number.

diffstat:

 sys/dev/usb/usb_subr.c |  25 +++++++++++++++++++------
 sys/dev/usb/usbdi.c    |   6 +++---
 sys/dev/usb/usbdi.h    |  14 ++++++++------
 3 files changed, 30 insertions(+), 15 deletions(-)

diffs (108 lines):

diff -r 0ebd23bc9686 -r 3e951f35e056 sys/dev/usb/usb_subr.c
--- a/sys/dev/usb/usb_subr.c    Sun Jan 16 21:47:00 2000 +0000
+++ b/sys/dev/usb/usb_subr.c    Sun Jan 16 23:11:43 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: usb_subr.c,v 1.61 1999/12/18 22:51:58 augustss Exp $   */
+/*     $NetBSD: usb_subr.c,v 1.62 2000/01/16 23:11:43 augustss Exp $   */
 /*     $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $   */
 
 /*
@@ -998,8 +998,7 @@
 
        USETW(dev->def_ep_desc.wMaxPacketSize, dd->bMaxPacketSize);
 
-       /* Get the full device descriptor. */
-       err = usbd_get_device_desc(dev, dd);
+       err = usbd_reload_device_desc(dev);
        if (err) {
                DPRINTFN(-1, ("usbd_new_device: addr=%d, getting full desc "
                              "failed\n", addr));
@@ -1007,9 +1006,6 @@
                return (err);
        }
 
-       /* Figure out what's wrong with this device. */
-       dev->quirks = usbd_find_quirk(dd);
-
        /* Set the address */
        err = usbd_set_address(dev, addr);
        DPRINTFN(5,("usbd_new_device: setting device address=%d\n", addr));
@@ -1042,6 +1038,23 @@
        return (USBD_NORMAL_COMPLETION);
 }
 
+usbd_status
+usbd_reload_device_desc(dev)
+       usbd_device_handle dev;
+{
+       usbd_status err;
+
+       /* Get the full device descriptor. */
+       err = usbd_get_device_desc(dev, &dev->ddesc);
+       if (err)
+               return (err);
+
+       /* Figure out what's wrong with this device. */
+       dev->quirks = usbd_find_quirk(&dev->ddesc);
+
+       return (USBD_NORMAL_COMPLETION);
+}
+
 void
 usbd_remove_device(dev, up)
        usbd_device_handle dev;
diff -r 0ebd23bc9686 -r 3e951f35e056 sys/dev/usb/usbdi.c
--- a/sys/dev/usb/usbdi.c       Sun Jan 16 21:47:00 2000 +0000
+++ b/sys/dev/usb/usbdi.c       Sun Jan 16 23:11:43 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: usbdi.c,v 1.56 2000/01/16 13:34:51 augustss Exp $      */
+/*     $NetBSD: usbdi.c,v 1.57 2000/01/16 23:11:43 augustss Exp $      */
 /*     $FreeBSD: src/sys/dev/usb/usbdi.c,v 1.28 1999/11/17 22:33:49 n_hibma Exp $      */
 
 /*
@@ -151,8 +151,8 @@
        usbd_status err;
        int i;
 
-       DPRINTFN(3,("usbd_open_pipe: address=0x%x flags=0x%x\n", address, 
-                   flags));
+       DPRINTFN(3,("usbd_open_pipe: iface=%p address=0x%x flags=0x%x\n",
+                   iface, address, flags));
 
        for (i = 0; i < iface->idesc->bNumEndpoints; i++) {
                ep = &iface->endpoints[i];
diff -r 0ebd23bc9686 -r 3e951f35e056 sys/dev/usb/usbdi.h
--- a/sys/dev/usb/usbdi.h       Sun Jan 16 21:47:00 2000 +0000
+++ b/sys/dev/usb/usbdi.h       Sun Jan 16 23:11:43 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: usbdi.h,v 1.37 2000/01/16 13:12:05 augustss Exp $      */
+/*     $NetBSD: usbdi.h,v 1.38 2000/01/16 23:11:43 augustss Exp $      */
 /*     $FreeBSD: src/sys/dev/usb/usbdi.h,v 1.18 1999/11/17 22:33:49 n_hibma Exp $      */
 
 /*
@@ -174,6 +174,13 @@
 
 void usbd_add_event __P((int, usbd_device_handle));
 
+void usbd_devinfo __P((usbd_device_handle, int, char *));
+struct usbd_quirks *usbd_get_quirks __P((usbd_device_handle));
+usb_endpoint_descriptor_t *usbd_get_endpoint_descriptor
+       __P((usbd_interface_handle iface, u_int8_t address));
+
+usbd_status usbd_reload_device_desc __P((usbd_device_handle));
+
 /* NetBSD attachment information */
 
 /* Attach data */
@@ -233,11 +240,6 @@
 
 #endif
 
-void usbd_devinfo __P((usbd_device_handle, int, char *));
-struct usbd_quirks *usbd_get_quirks __P((usbd_device_handle));
-usb_endpoint_descriptor_t *usbd_get_endpoint_descriptor
-       __P((usbd_interface_handle iface, u_int8_t address));
-
 #if defined(__FreeBSD__)
 int usbd_driver_load    __P((module_t mod, int what, void *arg));
 #endif



Home | Main Index | Thread Index | Old Index