Felipe Balbi <balbi@xxxxxx> writes: > Hi, > > On Mon, Nov 28, 2011 at 04:56:30PM -0800, Kevin Hilman wrote: >> The MUSB driver does not currently implment suspend/resume callbacks, > > this is not entirelly true, actually. Such methods are missing for > omap2430 glue layer, not for MUSB itself. And the fact is that it's only > missing because we failed to use UNIVERSAL_DEV_PM_OPS for declaring > dev_pm_ops structure. I guess that also means that nobody has tested MUSB host suspend/resume with devices attached. > Can you see if this patch helps: Sure. That patch makes sense, and seems necessary, but doesn't fix the problem. The root of the problem is that the PM domain code will call the driver's runtime PM methods late in the suspend if the device is not already runtime suspended. In your patch, you make the driver's suspend/resume methods call the runtime methods, but, the PM core doesn't know that that the device is now runtime suspended, so the OMAP PM domain code will still call the driver's runtime PM methods to try and suspend the device. In the case of this glue layer, the runtime PM methods call some PHY code which is trying to use I2C. When this happens late in the suspend process, I2C may already be suspended, so you get a bunch of I2C timeouts. Kevin -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html