diff options
| author | Nick Hibma <n_hibma@FreeBSD.org> | 1999-11-21 17:30:42 +0000 |
|---|---|---|
| committer | Nick Hibma <n_hibma@FreeBSD.org> | 1999-11-21 17:30:42 +0000 |
| commit | 937791192aac279034d36f779dbe968cba663c7e (patch) | |
| tree | 02b3b31338a30b76377dd22d22bd7a15bee64a30 /sys/dev/usb/usb_subr.c | |
| parent | 88ea580e343e33a62cd5847bf1c379064f6c5421 (diff) | |
Notes
Diffstat (limited to 'sys/dev/usb/usb_subr.c')
| -rw-r--r-- | sys/dev/usb/usb_subr.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/dev/usb/usb_subr.c b/sys/dev/usb/usb_subr.c index b985a5e89640..d37c7e769636 100644 --- a/sys/dev/usb/usb_subr.c +++ b/sys/dev/usb/usb_subr.c @@ -1138,15 +1138,20 @@ usbd_fill_deviceinfo(dev, di) struct usbd_port *p; int i, err, s; - di->config = dev->config; + di->bus = USBDEVUNIT(dev->bus->bdev); + di->addr = dev->address; usbd_devinfo_vp(dev, di->vendor, di->product); usbd_printBCD(di->release, UGETW(dev->ddesc.bcdDevice)); di->vendorNo = UGETW(dev->ddesc.idVendor); di->productNo = UGETW(dev->ddesc.idProduct); + di->releaseNo = UGETW(dev->ddesc.bcdDevice); di->class = dev->ddesc.bDeviceClass; + di->subclass = dev->ddesc.bDeviceSubClass; + di->protocol = dev->ddesc.bDeviceProtocol; + di->config = dev->config; di->power = dev->self_powered ? 0 : dev->power; di->lowspeed = dev->lowspeed; - di->addr = dev->address; + if (dev->hub) { for (i = 0; i < sizeof(di->ports) / sizeof(di->ports[0]) && @@ -1237,6 +1242,8 @@ usb_disconnect_port(up, parent) return; } + usbd_add_event(USB_EVENT_DETACH, dev); + if (dev->subdevs != NULL) { for (i = 0; dev->subdevs[i]; i++) { if (!dev->subdevs[i]) /* skip empty elements */ @@ -1257,7 +1264,6 @@ usb_disconnect_port(up, parent) } } - usbd_add_event(USB_EVENT_DETACH, dev); dev->bus->devices[dev->address] = 0; up->device = 0; usb_free_device(dev); |
