mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 15:41:40 +00:00
usb: Stop reset procedure when a dev is handed over to a companion hcd
Short circuit the retry loop in legacy_hub_port_reset() by returning an error from usb_control_msg() when a device was handed over to a companion by the ehci code. This avoids trying to reset low / fullspeed devices 5 times needlessly. Also do not print an error when a device has been handed over. Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
ad84a42fc5
commit
45b9ea1da2
2 changed files with 4 additions and 2 deletions
|
@ -271,6 +271,7 @@ int usb_hub_port_connect_change(struct usb_device *dev, int port)
|
|||
/* Reset the port */
|
||||
ret = legacy_hub_port_reset(dev, port, &portstatus);
|
||||
if (ret < 0) {
|
||||
if (ret != -ENXIO)
|
||||
printf("cannot reset port %i!?\n", port + 1);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -875,7 +875,7 @@ static int ehci_submit_root(struct usb_device *dev, unsigned long pipe,
|
|||
port - 1);
|
||||
reg |= EHCI_PS_PO;
|
||||
ehci_writel(status_reg, reg);
|
||||
break;
|
||||
return -ENXIO;
|
||||
} else {
|
||||
int ret;
|
||||
|
||||
|
@ -905,6 +905,7 @@ static int ehci_submit_root(struct usb_device *dev, unsigned long pipe,
|
|||
reg &= ~EHCI_PS_CLEAR;
|
||||
reg |= EHCI_PS_PO;
|
||||
ehci_writel(status_reg, reg);
|
||||
return -ENXIO;
|
||||
} else {
|
||||
ctrl->portreset |= 1 << port;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue