diff options
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch')
-rw-r--r-- | recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch new file mode 100644 index 00000000..ca463cc4 --- /dev/null +++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | From 611589daeef0bd0f6b36f1fbb17f34b6abf05568 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alan Stern <stern@rowland.harvard.edu> | ||
3 | Date: Tue, 17 Apr 2012 15:24:15 -0400 | ||
4 | Subject: [PATCH 029/165] EHCI: fix criterion for resuming the root hub | ||
5 | |||
6 | commit dc75ce9d929aabeb0843a6b1a4ab320e58ba1597 upstream. | ||
7 | |||
8 | This patch (as1542) changes the criterion ehci-hcd uses to tell when | ||
9 | it needs to resume the controller's root hub. A resume is needed when | ||
10 | a port status change is detected, obviously, but only if the root hub | ||
11 | is currently suspended. | ||
12 | |||
13 | Right now the driver tests whether the root hub is running, and that | ||
14 | is not the correct test. In particular, if the controller has died | ||
15 | then the root hub should not be restarted. In addition, some buggy | ||
16 | hardware occasionally requires the root hub to be running and | ||
17 | sending out SOF packets even while it is nominally supposed to be | ||
18 | suspended. | ||
19 | |||
20 | In the end, the test needs to be changed. Rather than checking whether | ||
21 | the root hub is currently running, the driver will now check whether | ||
22 | the root hub is currently suspended. This will yield the correct | ||
23 | behavior in all cases. | ||
24 | |||
25 | Signed-off-by: Alan Stern <stern@rowland.harvard.edu> | ||
26 | CC: Peter Chen <B29397@freescale.com> | ||
27 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | ||
28 | Signed-off-by: Ben Hutchings <ben@decadent.org.uk> | ||
29 | --- | ||
30 | drivers/usb/host/ehci-hcd.c | 2 +- | ||
31 | 1 files changed, 1 insertions(+), 1 deletions(-) | ||
32 | |||
33 | diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c | ||
34 | index 3ff9f82..ffbbf54 100644 | ||
35 | --- a/drivers/usb/host/ehci-hcd.c | ||
36 | +++ b/drivers/usb/host/ehci-hcd.c | ||
37 | @@ -867,7 +867,7 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) | ||
38 | pcd_status = status; | ||
39 | |||
40 | /* resume root hub? */ | ||
41 | - if (!(cmd & CMD_RUN)) | ||
42 | + if (ehci->rh_state == EHCI_RH_SUSPENDED) | ||
43 | usb_hcd_resume_root_hub(hcd); | ||
44 | |||
45 | /* get per-port change detect bits */ | ||
46 | -- | ||
47 | 1.7.7.6 | ||
48 | |||