aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/hub.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/core/hub.c')
-rw-r--r--drivers/usb/core/hub.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 38cc4bae0a82..bee13517676f 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -104,6 +104,8 @@ static int usb_reset_and_verify_device(struct usb_device *udev);
104 104
105static inline char *portspeed(struct usb_hub *hub, int portstatus) 105static inline char *portspeed(struct usb_hub *hub, int portstatus)
106{ 106{
107 if (hub_is_superspeedplus(hub->hdev))
108 return "10.0 Gb/s";
107 if (hub_is_superspeed(hub->hdev)) 109 if (hub_is_superspeed(hub->hdev))
108 return "5.0 Gb/s"; 110 return "5.0 Gb/s";
109 if (portstatus & USB_PORT_STAT_HIGH_SPEED) 111 if (portstatus & USB_PORT_STAT_HIGH_SPEED)
@@ -2080,7 +2082,7 @@ static void choose_devnum(struct usb_device *udev)
2080 struct usb_bus *bus = udev->bus; 2082 struct usb_bus *bus = udev->bus;
2081 2083
2082 /* be safe when more hub events are proceed in parallel */ 2084 /* be safe when more hub events are proceed in parallel */
2083 mutex_lock(&bus->usb_address0_mutex); 2085 mutex_lock(&bus->devnum_next_mutex);
2084 if (udev->wusb) { 2086 if (udev->wusb) {
2085 devnum = udev->portnum + 1; 2087 devnum = udev->portnum + 1;
2086 BUG_ON(test_bit(devnum, bus->devmap.devicemap)); 2088 BUG_ON(test_bit(devnum, bus->devmap.devicemap));
@@ -2098,7 +2100,7 @@ static void choose_devnum(struct usb_device *udev)
2098 set_bit(devnum, bus->devmap.devicemap); 2100 set_bit(devnum, bus->devmap.devicemap);
2099 udev->devnum = devnum; 2101 udev->devnum = devnum;
2100 } 2102 }
2101 mutex_unlock(&bus->usb_address0_mutex); 2103 mutex_unlock(&bus->devnum_next_mutex);
2102} 2104}
2103 2105
2104static void release_devnum(struct usb_device *udev) 2106static void release_devnum(struct usb_device *udev)
@@ -4364,7 +4366,7 @@ hub_port_init(struct usb_hub *hub, struct usb_device *udev, int port1,
4364 if (oldspeed == USB_SPEED_LOW) 4366 if (oldspeed == USB_SPEED_LOW)
4365 delay = HUB_LONG_RESET_TIME; 4367 delay = HUB_LONG_RESET_TIME;
4366 4368
4367 mutex_lock(&hdev->bus->usb_address0_mutex); 4369 mutex_lock(hcd->address0_mutex);
4368 4370
4369 /* Reset the device; full speed may morph to high speed */ 4371 /* Reset the device; full speed may morph to high speed */
4370 /* FIXME a USB 2.0 device may morph into SuperSpeed on reset. */ 4372 /* FIXME a USB 2.0 device may morph into SuperSpeed on reset. */
@@ -4650,7 +4652,7 @@ fail:
4650 hub_port_disable(hub, port1, 0); 4652 hub_port_disable(hub, port1, 0);
4651 update_devnum(udev, devnum); /* for disconnect processing */ 4653 update_devnum(udev, devnum); /* for disconnect processing */
4652 } 4654 }
4653 mutex_unlock(&hdev->bus->usb_address0_mutex); 4655 mutex_unlock(hcd->address0_mutex);
4654 return retval; 4656 return retval;
4655} 4657}
4656 4658