Update for new speed handling.
This commit is contained in:
parent
a598bed92e
commit
86e6ea35eb
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: usb_subr.c,v 1.93 2001/11/17 01:49:53 augustss Exp $ */
|
||||
/* $NetBSD: usb_subr.c,v 1.94 2001/11/20 13:50:07 augustss Exp $ */
|
||||
/* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */
|
||||
|
||||
/*
|
||||
|
@ -39,7 +39,7 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.93 2001/11/17 01:49:53 augustss Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.94 2001/11/20 13:50:07 augustss Exp $");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
|
@ -932,16 +932,17 @@ usbd_probe_and_attach(device_ptr_t parent, usbd_device_handle dev,
|
|||
*/
|
||||
usbd_status
|
||||
usbd_new_device(device_ptr_t parent, usbd_bus_handle bus, int depth,
|
||||
int lowspeed, int port, struct usbd_port *up)
|
||||
int speed, int port, struct usbd_port *up)
|
||||
{
|
||||
usbd_device_handle dev;
|
||||
struct usbd_device *hub;
|
||||
usb_device_descriptor_t *dd;
|
||||
usbd_status err;
|
||||
int addr;
|
||||
int i;
|
||||
|
||||
DPRINTF(("usbd_new_device bus=%p port=%d depth=%d lowspeed=%d\n",
|
||||
bus, port, depth, lowspeed));
|
||||
DPRINTF(("usbd_new_device bus=%p port=%d depth=%d speed=%d\n",
|
||||
bus, port, depth, speed));
|
||||
addr = usbd_getnewaddr(bus);
|
||||
if (addr < 0) {
|
||||
printf("%s: No free USB addresses, new device ignored.\n",
|
||||
|
@ -970,9 +971,15 @@ usbd_new_device(device_ptr_t parent, usbd_bus_handle bus, int depth,
|
|||
dev->quirks = &usbd_no_quirk;
|
||||
dev->address = USB_START_ADDR;
|
||||
dev->ddesc.bMaxPacketSize = 0;
|
||||
dev->lowspeed = lowspeed != 0;
|
||||
dev->depth = depth;
|
||||
dev->powersrc = up;
|
||||
dev->myhub = up->parent;
|
||||
for (hub = up->parent;
|
||||
hub != NULL && hub->speed != USB_SPEED_HIGH;
|
||||
hub = hub->myhub)
|
||||
;
|
||||
dev->myhighhub = hub;
|
||||
dev->speed = speed;
|
||||
dev->langid = USBD_NOLANG;
|
||||
dev->cookie.cookie = ++usb_cookie_no;
|
||||
|
||||
|
@ -1002,10 +1009,10 @@ usbd_new_device(device_ptr_t parent, usbd_bus_handle bus, int depth,
|
|||
}
|
||||
|
||||
DPRINTF(("usbd_new_device: adding unit addr=%d, rev=%02x, class=%d, "
|
||||
"subclass=%d, protocol=%d, maxpacket=%d, len=%d, ls=%d\n",
|
||||
"subclass=%d, protocol=%d, maxpacket=%d, len=%d, speed=%d\n",
|
||||
addr,UGETW(dd->bcdUSB), dd->bDeviceClass, dd->bDeviceSubClass,
|
||||
dd->bDeviceProtocol, dd->bMaxPacketSize, dd->bLength,
|
||||
dev->lowspeed));
|
||||
dev->speed));
|
||||
|
||||
if (dd->bDescriptorType != UDESC_DEVICE) {
|
||||
/* Illegal device descriptor */
|
||||
|
@ -1208,7 +1215,7 @@ usbd_fill_deviceinfo(usbd_device_handle dev, struct usb_device_info *di,
|
|||
di->protocol = dev->ddesc.bDeviceProtocol;
|
||||
di->config = dev->config;
|
||||
di->power = dev->self_powered ? 0 : dev->power;
|
||||
di->speed = dev->lowspeed ? USB_SPEED_LOW : USB_SPEED_FULL;
|
||||
di->speed = dev->speed;
|
||||
|
||||
if (dev->subdevs != NULL) {
|
||||
for (i = 0; dev->subdevs[i] &&
|
||||
|
|
Loading…
Reference in New Issue