Commit 6e6fc348 authored by David Brownell's avatar David Brownell Committed by Greg Kroah-Hartman

[PATCH] USB: usb hub, don't check speed before reset

Signaling (even D- vs D+ pullup) may not be stable
for a while.

At least one OTG root hub won't reliably (<10%) report device speed until
after reset (and the OTG state transitions have quiesced for a while).

This patch makes that not matter.
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
parent 0c134b56
...@@ -1635,12 +1635,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port, ...@@ -1635,12 +1635,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port,
} }
usb_set_device_state(udev, USB_STATE_POWERED); usb_set_device_state(udev, USB_STATE_POWERED);
udev->speed = USB_SPEED_UNKNOWN;
/* hub can tell if it's lowspeed already: D- pullup (not D+) */
if (portstatus & USB_PORT_STAT_LOW_SPEED)
udev->speed = USB_SPEED_LOW;
else
udev->speed = USB_SPEED_UNKNOWN;
/* set the address */ /* set the address */
choose_address(udev); choose_address(udev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment