[PATCH] omap3: pm: Downgrade WARN for no wakeup source

Kevin Hilman khilman at ti.com
Thu Jun 16 14:25:15 EDT 2011


"Premi, Sanjeev" <premi at ti.com> writes:

>> -----Original Message-----
>> From: Hilman, Kevin 
>> Sent: Thursday, June 16, 2011 8:52 PM
>> To: Premi, Sanjeev
>> Cc: linux-omap at vger.kernel.org; linux-arm-kernel at lists.infradead.org
>> Subject: Re: [PATCH] omap3: pm: Downgrade WARN for no wakeup source
>> 
>> Hi Sanjeev,
>> 
>> Sanjeev Premi <premi at ti.com> 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



More information about the linux-arm-kernel mailing list