On Wed, 18 Apr 2012, Stephen Warren wrote: > On 04/18/2012 02:47 PM, Alan Stern wrote: > ... > > Are you sure the controllers aren't getting suspending under the > > current driver? It seems like they ought to be -- otherwise there > > would be no point in defining power_down_on_bus_suspend. > > Ah. The ports are getting suspended (when nothing is plugged in), and > tegra_ehci_bus_suspend() is returning 0. However, as soon as any port is > suspended, it resumes immediately. I guess that's why plugging something > in works even after the controller is suspended; it keeps waking up and > is essentially polling for any plugged-in device. All right. In that case there's no point in powering down the controller at all. Here's what you can do. In the patch, change the lines + if (!pdata->power_down_on_bus_suspend) + pm_runtime_forbid(&pdev->dev); so that pm_runtime_forbid() gets called unconditionally. For example: +// if (!pdata->power_down_on_bus_suspend) + pm_runtime_forbid(&pdev->dev); If you make that change, does the driver continue to work as well as it did before? 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