ARM: OMAP3: Fix external abort on 36xx waking from off mode idle
authorDave Gerlach <d-gerlach@ti.com>
Thu, 14 Apr 2016 01:49:48 +0000 (20:49 -0500)
committerTony Lindgren <tony@atomide.com>
Thu, 14 Apr 2016 15:27:30 +0000 (08:27 -0700)
commit1560d15861769c23fd981e2d60dc7fd790b21e1e
treeb12ab0084ec613730366c488f481afad757e45f8
parenta1def45365594dd16be0d8cc52b0d5a6a79d6ae6
ARM: OMAP3: Fix external abort on 36xx waking from off mode idle

Depending on timing during the resume path from off mode on 36xx, we may
see external aborts. These seem to be caused by the following:

- OMAP3 Advisory 1.62 "MPU Cannot Exit from Standby" says we need to
  disable intc autoidle before WFI

- DM3730 Advisory 1.106 "MPU Leaves MSTANDBY State Before IDLEREQ of
  Interrupt Controller is Released" says we need to wait before
  accessing intc

omap3_intc_resume_idle restores the intc autoidle for all resume paths,
however in the resume path from off mode only it is also being restored
by omap_intc_restore_context before this call to omap3_intc_resume_idle
happens. The second restore of the intc autoidle in this path is what
appears to be causing the external abort so for the off mode resume path
let's rely on omap_intc_restore_context to restore intc autoidle, and
for all other paths let omap3_intc_resume_idle handle it as it is now.

Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/pm34xx.c