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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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.
     and value of "c" is returned as 0.... leading to the
     warning.

~sanjeev

> 
> 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


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux