aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-01-24 15:39:43 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 17:35:06 -0500
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 ccd88ae011c6..40e8240b7851 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -411,10 +411,8 @@ static int check_reset_complete (
411 u32 __iomem *status_reg, 411 u32 __iomem *status_reg,
412 int port_status 412 int port_status
413) { 413) {
414 if (!(port_status & PORT_CONNECT)) { 414 if (!(port_status & PORT_CONNECT))
415 ehci->reset_done [index] = 0;
416 return port_status; 415 return port_status;
417 }
418 416
419 /* if reset finished and it's still not enabled -- handoff */ 417 /* if reset finished and it's still not enabled -- handoff */
420 if (!(port_status & PORT_PE)) { 418 if (!(port_status & PORT_PE)) {
@@ -493,8 +491,6 @@ ehci_hub_status_data (struct usb_hcd *hcd, char *buf)
493 * controller by the user. 491 * controller by the user.
494 */ 492 */
495 493
496 if (!(temp & PORT_CONNECT))
497 ehci->reset_done [i] = 0;
498 if ((temp & mask) != 0 494 if ((temp & mask) != 0
499 || ((temp & PORT_RESUME) != 0 495 || ((temp & PORT_RESUME) != 0
500 && time_after_eq(jiffies, 496 && time_after_eq(jiffies,