ARM: OMAP3: hwmod data: keep MIDLEMODE in force-standby for musb
authorGrazvydas Ignotas <notasas@gmail.com>
Mon, 11 Mar 2013 19:49:00 +0000 (21:49 +0200)
committerPaul Walmsley <paul@pwsan.com>
Wed, 13 Mar 2013 10:13:07 +0000 (04:13 -0600)
commit092bc089c249de0fa0f0c98b28dea6e5f1367b6e
treec53fd22c15be70639b44f2d42b4b9ab2992ef1ae
parent71b37071f02e20345dcc0d570c69896da795e1e6
ARM: OMAP3: hwmod data: keep MIDLEMODE in force-standby for musb

For some unknown reason, allowing hwmod to control MIDLEMODE causes
core_pwrdm to not hit idle states for musb in DM3730 at least.
I've verified that setting any MIDLEMODE value other than "force
standby" before enabling the device causes subsequent suspend
attempts to fail with core_pwrdm not entering idle states, even
if the driver is unloaded and "force standby" is restored before
suspend attempt. To recover from this, soft reset can be used, but
that's not suitable solution for suspend.

Keeping the register set at force standby (reset value) makes it work
and device still functions properly, as musb has driver-controlled
OTG_FORCESTDBY register that controls MSTANDBY signal.
Note that TI PSP kernels also have similar workarounds.

This patch also fixes HWMOD_SWSUP_MSTANDBY documentation to match the
actual flag name.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/omap_hwmod.h
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c