[PATCH][FOR-2.6.39.4][SHR] s3c24xx: ACK the external interrupt source when no handler is available

Martin Jansa martin.jansa at gmail.com
Thu Nov 28 15:22:16 CET 2013


On Thu, Nov 28, 2013 at 01:16:01PM +0100, Thamos wrote:
> Hi,
> great news, that somebody is working on these annoying resume bugs...
> Is this patch flowing somewhere in (like shr-core-staging?), or do i
> have to apply them manually and build my own kernel?
> Thanks for your great work!

I plan to add both Paul's patches to next shr-core-staging, but don't
know when I'll find time to do it :/.

> 
> Thamos
> 
> 
> 
> Am 26.11.2013 12:22, schrieb Paul Fertser:
> > The 2.6.39.4 version running on gta02 is sometimes (~0.5 - 4%) getting
> > stuck on resume. The inspection showed that it constantly reenters
> > s3c_irq_demux_extint8() but since all the external interrupts are
> > masked at that time, no downstream handler is called. As the result,
> > the corresponding SRCPND bit is never cleared and the handler reenters
> > right after exiting.
> > 
> > Even though the cause for external interrupts being masked while
> > there's a pending request present are still unclear, this patch seems
> > to be doing the right thing (at least for that old kernel version). My
> > device is running continious suspend/resume test for ~15 hours now
> > (while it used to hang in less than 30 minutes of the same test
> > before).
> > 
> > Thanks go to lindi- and gena2x for providing me with an openmoko debug
> > board.
> > 
> > Signed-off-by: Paul Fertser <fercerpav at gmail.com>
> > ---
> >  arch/arm/plat-s3c24xx/irq.c |    5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
> > index 1317f04..0bcaccb 100644
> > --- a/arch/arm/plat-s3c24xx/irq.c
> > +++ b/arch/arm/plat-s3c24xx/irq.c
> > @@ -484,6 +484,11 @@ s3c_irq_demux_extint8(unsigned int irq,
> >  	eintpnd &= ~eintmsk;
> >  	eintpnd &= ~0xff;	/* ignore lower irqs */
> >  
> > +	/* in case no IRQ is pending but we got here we still
> > +	   must ack the parent or else we get an irq storm */
> > +	if (!eintpnd)
> > +		s3c_irq_ack(irq_get_irq_data(IRQ_EINT8t23));
> > +	
> >  	/* we may as well handle all the pending IRQs here */
> >  
> >  	while (eintpnd) {
> > 
> 
> 
> -- 
> eMails sind wie Postkarten -> deshalb verschlüsseln!
> GnuPG: http://www.gpg4win.de/ + Thunderbird:
> https://www.mozilla.org/de/thunderbird/
>  + Enigmail AddOn
> Android: K9 Mail + APG
> 

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openmoko.org/pipermail/openmoko-kernel/attachments/20131128/a4b0f49e/attachment.sig>


More information about the openmoko-kernel mailing list