Re: [PATCH] Fix OMAP EHCI suspend/resume failure (errata i693)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 1 Jun 2012, Mieshkov, Volodymyr wrote:

> Its observed with some PHY, the 60Mhz clock gets
> cut too soon for OMAP EHCI, leaving OMAP-EHCI in a bad state.
> 
> So on starting port suspend, make sure the 60Mhz clock to EHCI
> is kept alive using an internal clock, so that EHCi can cleanly
> transition its hw state machine on a port suspend.
> 
> Its not proven if this is the issue hit on USB3333,
> but the symptoms look very similar.

...

> +        /*
> +         * If a transaction is in progress, there may be a delay in
> +         * suspending the port. Poll until the port is suspended.
> +         */
> +        if (handshake(ehci, status_reg, PORT_SUSPEND,
> +                            PORT_SUSPEND, 5000))
> +            ehci_err(ehci, "%s: timeout waiting for SUSPEND\n", __func__);
> +
> +        set_bit((wIndex & 0xff) - 1, &ehci->suspended_ports);

The handshake() call should be moved to after the spinlock is released.  
It is not acceptable to wait for up to 5 ms with interrupts disabled.  
I have been working hard to remove other instances of such calls to
handshake() in the driver; let's not introduce any new ones.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux