Re: [PATCH/RFC] ARM: OMAP: MUSB: disable omap_device auto-suspend

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

 



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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux