Messages in this thread |  | | | Date | Wed, 11 Jul 2012 10:24:32 -0400 (EDT) | | From | Alan Stern <> | | Subject | Re: [PATCH] usb/host/ehci-hub: Fix the issue EG20T USB host controller has long resuming time, when pen drive is attached. |
| |
On Wed, 11 Jul 2012, Tomoya MORINAGA wrote:
> > Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
There's no patch description. What is the cause of the problem and how does the patch fix it?
> --- > drivers/usb/host/ehci-hub.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c > index fc9e7cc..d596d0f 100644 > --- a/drivers/usb/host/ehci-hub.c > +++ b/drivers/usb/host/ehci-hub.c > @@ -207,6 +207,7 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) > int port; > int mask; > int changed; > + int temp; > > ehci_dbg(ehci, "suspend root hub\n"); > > @@ -324,6 +325,9 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) > * want, and so we must delete any pending watchdog timer events. > */ > del_timer_sync(&ehci->watchdog); > + temp = ehci_readl(ehci, &ehci->regs->status); > + if (temp & STS_FLR) > + ehci_writel(ehci, STS_FLR, &ehci->regs->status); > return 0;
Operations like this should be done while holding the spinlock.
Also, why do you need the ehci_readl and the test? You could always clear the STS_FLR flag.
Alan Stern
|  |