mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
usb: hub: Clear port reset before usb_hub_port_connect_change()
During usb_hub_port_connect_change(), a port reset set feature request is issued to the port, and later a port reset clear feature is done to the same port before the function returns. However at the end of usb_scan_port(), we attempt to clear port reset again on a cached port status change variable, which should not be done. Adjust the call to clear port reset to right before the call to usb_hub_port_connect_change(). Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -489,6 +489,11 @@ static int usb_scan_port(struct usb_device_scan *usb_scan)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (portchange & USB_PORT_STAT_C_RESET) {
|
||||||
|
debug("port %d reset change\n", i + 1);
|
||||||
|
usb_clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_RESET);
|
||||||
|
}
|
||||||
|
|
||||||
/* A new USB device is ready at this point */
|
/* A new USB device is ready at this point */
|
||||||
debug("devnum=%d port=%d: USB dev found\n", dev->devnum, i + 1);
|
debug("devnum=%d port=%d: USB dev found\n", dev->devnum, i + 1);
|
||||||
|
|
||||||
@@ -543,11 +548,6 @@ static int usb_scan_port(struct usb_device_scan *usb_scan)
|
|||||||
hub->overcurrent_count[i]);
|
hub->overcurrent_count[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (portchange & USB_PORT_STAT_C_RESET) {
|
|
||||||
debug("port %d reset change\n", i + 1);
|
|
||||||
usb_clear_port_feature(dev, i + 1, USB_PORT_FEAT_C_RESET);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We're done with this device, so let's remove this device from
|
* We're done with this device, so let's remove this device from
|
||||||
* scanning list
|
* scanning list
|
||||||
|
Reference in New Issue
Block a user