• Colin Cross's avatar
    ARM: OMAP4: retrigger localtimers after re-enabling gic · cd8ce159
    Colin Cross authored
    'Workaround for ROM bug because of CA9 r2pX gic control'
    register change disables the gic distributor while the secondary
    cpu is being booted.  If a localtimer interrupt on the primary cpu
    occurs when the distributor is turned off, the interrupt is lost,
    and the localtimer never fires again.
    
    Make the primary cpu wait for the secondary cpu to reenable the
    gic distributor (with interrupts off for safety), and then
    check if the pending bit is set in the localtimer but not the
    gic.  If so, ack it in the localtimer, and reset the timer with
    the minimum timeout to trigger a new timer interrupt.
    Signed-off-by: default avatarColin Cross <ccross@android.com>
    [s-jan@ti.com: adapted to k3.4 + validated functionality]
    Signed-off-by: default avatarSebastien Jan <s-jan@ti.com>
    [t-kristo@ti.com: dropped generic ARM kernel exports from the code, rebased
     to mainline]
    Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
    Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
    cd8ce159
omap4-common.c 7.48 KB