aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/host
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-01-24 12:39:43 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 14:35:06 -0800
commitcd4cdc93ce04b562412df6c0cf25c564ab2522ac (patch)
tree37a3960baf1cd7e0fcfd5b12e69dc1bbcf263a27 /drivers/usb/host
parentb75be4abf18e9725766ed835f0d2cf201b52de7e (diff)
usb: ehci, remove false clear-reset path
Some of the "EHCI ports reset forever" problems may be explained by code paths which wrongly flagged resets as complete. This removes two such paths; the ehci_hub_status_data() path should be the only one to have an effect, since it was already properly flagged on the other path. (Issue noted by Minhyoung Kim <a9a9@lge.com>.) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host')
-rw-r--r--drivers/usb/host/ehci-hub.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index ccd88ae011c..40e8240b785 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -411,10 +411,8 @@ static int check_reset_complete (
u32 __iomem *status_reg,
int port_status
) {
- if (!(port_status & PORT_CONNECT)) {
- ehci->reset_done [index] = 0;
+ if (!(port_status & PORT_CONNECT))
return port_status;
- }
/* if reset finished and it's still not enabled -- handoff */
if (!(port_status & PORT_PE)) {
@@ -493,8 +491,6 @@ ehci_hub_status_data (struct usb_hcd *hcd, char *buf)
* controller by the user.
*/
- if (!(temp & PORT_CONNECT))
- ehci->reset_done [i] = 0;
if ((temp & mask) != 0
|| ((temp & PORT_RESUME) != 0
&& time_after_eq(jiffies,