"Premi, Sanjeev" <premi@xxxxxx> writes: >> -----Original Message----- >> From: Hilman, Kevin >> Sent: Thursday, June 16, 2011 8:52 PM >> To: Premi, Sanjeev >> Cc: linux-omap@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> Subject: Re: [PATCH] omap3: pm: Downgrade WARN for no wakeup source >> >> Hi Sanjeev, >> >> Sanjeev Premi <premi@xxxxxx> writes: >> >> > When multiple wakeup sources are defined in a system, >> > there is a small window, when more than one source >> > can trigger wakeup interrupt. >> > >> > In the current implementation, the do-while() loop >> > can handle all wakeup sources that are recorded when >> > probing the status register in prcm_interrupt_handler(). >> > >> > When the ISR executes due to next queued wakeup, it >> > there is nothing to be handled and value of "c" is 0. >> >> Thanks for tracking this one down. >> >> However, It's still not clear to me what is happening here. >> >> Why is the IRQ firing if there is nothing to be handled? >> That suggests >> to me that the IRQ status is not properly being cleared. > > [SP] On the contrary the IRQ status is actually getting cleared, > but there are more than "1" PRCM interrupts queued. > > The do-while() clears all the interrupt sources that > are flagged in the status register. > > When the next wakeup interrupt is getting processed, the > status register doesn't contain any "source" to handle. Still confused. If a wakeup interrupt is fired, it was caused by something. IOW, if "the status register doesn't contain any source", how is if (irqstatus_mpu & (OMAP3430_WKUP_ST_MASK | OMAP3430_IO_ST_MASK)) ever true? Kevin -- 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