|
@@ -1061,10 +1061,12 @@ static int hub_port_reset(struct usb_device *dev, int port,
|
|
|
}
|
|
|
portstatus = le16_to_cpu(portsts.wPortStatus);
|
|
|
portchange = le16_to_cpu(portsts.wPortChange);
|
|
|
+
|
|
|
USB_HUB_PRINTF("portstatus %x, change %x, %s\n",
|
|
|
portstatus, portchange,
|
|
|
- portstatus&(1<<USB_PORT_FEAT_LOWSPEED) ? \
|
|
|
+ portstatus & (1 << USB_PORT_FEAT_LOWSPEED) ? \
|
|
|
"Low Speed" : "High Speed");
|
|
|
+
|
|
|
USB_HUB_PRINTF("STAT_C_CONNECTION = %d STAT_CONNECTION = %d" \
|
|
|
" USB_PORT_STAT_ENABLE %d\n",
|
|
|
(portchange & USB_PORT_STAT_C_CONNECTION) ? 1 : 0,
|
|
@@ -1136,7 +1138,13 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
|
|
|
|
|
|
/* Allocate a new device struct for it */
|
|
|
usb = usb_alloc_new_device();
|
|
|
- usb->speed = (portstatus & USB_PORT_STAT_LOW_SPEED) ? 1 : 0;
|
|
|
+
|
|
|
+ if (portstatus & USB_PORT_STAT_HIGH_SPEED)
|
|
|
+ usb->speed = USB_SPEED_HIGH;
|
|
|
+ else if (portstatus & USB_PORT_STAT_LOW_SPEED)
|
|
|
+ usb->speed = USB_SPEED_LOW;
|
|
|
+ else
|
|
|
+ usb->speed = USB_SPEED_FULL;
|
|
|
|
|
|
dev->children[port] = usb;
|
|
|
usb->parent = dev;
|