* Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> [100525 19:07]: > Tero Kristo <tero.kristo@xxxxxxxxx> writes: > > > From: Tero Kristo <tero.kristo@xxxxxxxxx> > > > > The kernel timer queue is being run currently from a GP timer running in a one > > shot mode, which works in a way that when it expires, it will also stop. > > Usually during this situation, the interrupt handler will ack the interrupt, > > load a new value to the timer and start it again. During suspend, the > > situation is slightly different, as we disable interrupts just before > > timekeeping is suspended, which leaves a small window where the timer can > > expire before it is stopped, and will leave the interrupt flag pending. > > This pending interrupt will prevent ARM sleep entry, thus now we ack it always > > when we are attempting to stop a timer. > > > > Signed-off-by: Tero Kristo <tero.kristo@xxxxxxxxx> > > Acked-by: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx> > > > --- > > arch/arm/plat-omap/dmtimer.c | 8 +++++--- > > 1 files changed, 5 insertions(+), 3 deletions(-) > > > > diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c > > index c64875f..023d664 100644 > > --- a/arch/arm/plat-omap/dmtimer.c > > +++ b/arch/arm/plat-omap/dmtimer.c > > @@ -541,11 +541,13 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer) > > * timer is stopped > > */ > > udelay(3500000 / clk_get_rate(timer->fclk) + 1); > > - /* Ack possibly pending interrupt */ > > - omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG, > > - OMAP_TIMER_INT_OVERFLOW); > > #endif > > } > > +#ifdef CONFIG_ARCH_OMAP2PLUS > > + /* Ack possibly pending interrupt */ > > + omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG, > > + OMAP_TIMER_INT_OVERFLOW); > > +#endif > > } > > EXPORT_SYMBOL_GPL(omap_dm_timer_stop); I'll add this to omap-fixes queue, but will remove the ifdef CONFIG_ARCH_OMAP2PLUS around clearing the interrupt as the situation would be the same for omap1 if ever used the same way. Regards, Tony -- 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