• Dave Gerlach's avatar
    ARM: OMAP3: Fix external abort on 36xx waking from off mode idle · 1560d158
    Dave Gerlach authored
    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: default avatarDave Gerlach <d-gerlach@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    1560d158
pm34xx.c 14.9 KB