linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [RFC] [PATCH] ppc32: workaround for spurious IRQs on PQ2
@ 2005-04-26 19:21 Eugene Surovegin
  0 siblings, 0 replies; 4+ messages in thread
From: Eugene Surovegin @ 2005-04-26 19:21 UTC (permalink / raw)
  To: linuxppc-embedded

Hi!

There is a problem with big amount of spurious IRQs on 8248-based 
design I'm working on.

I observed this problem with 2.4.30 kernel, but it was reported to be
still present on 2.6 as well.

Traces show that spurious IRQ happens right after handle_IRQ_events() 
enables external interrupts and _before_ even calling real IRQ 
handler.

I fixed this problem by adding sync at the end of cpm2_mask_and_ack. 
Using out_XXX macros for accessing SIU register doesn't seem to help.
Dan thinks there are some pipeline-related issues here, although I 
failed to found any mentions of them in 8272 user manual.

Also, there is a possibility, that we need more explicit sync's in 
cpm2_pic code.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>

===== arch/ppc/syslib/cpm2_pic.c 1.11 vs edited =====
--- 1.11/arch/ppc/syslib/cpm2_pic.c	2005-03-31 02:59:05 -08:00
+++ edited/arch/ppc/syslib/cpm2_pic.c	2005-04-26 11:55:51 -07:00
@@ -90,6 +90,7 @@
 	ppc_cached_irq_mask[word] &= ~(1 << bit);
 	simr[word] = ppc_cached_irq_mask[word];
 	sipnr[word] = 1 << bit;
+	mb();
 }
 
 static void cpm2_end_irq(unsigned int irq_nr)

^ permalink raw reply	[flat|nested] 4+ messages in thread
* RE: [RFC] [PATCH] ppc32: workaround for spurious IRQs on PQ2
@ 2005-04-27  6:54 Wrobel Heinz-r39252
  2005-04-27  7:15 ` Eugene Surovegin
  2005-04-27  7:39 ` Pantelis Antoniou
  0 siblings, 2 replies; 4+ messages in thread
From: Wrobel Heinz-r39252 @ 2005-04-27  6:54 UTC (permalink / raw)
  To: Eugene Surovegin, linuxppc-embedded

Eugene,

check slides 17, 20-22 out of my SNDF 2004 presentation H1125 found at
http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=052577pzMPYZjg286165422098

... and attend the June 2005 FTF in Orlando ...
http://www.freescale.com/ftf *grin*

Heinz
 

> -----Original Message-----
> From: linuxppc-embedded-bounces@ozlabs.org 
> [mailto:linuxppc-embedded-bounces@ozlabs.org] On Behalf Of 
> Eugene Surovegin
> Sent: Tuesday, April 26, 2005 9:22 PM
> To: linuxppc-embedded@ozlabs.org
> Subject: [RFC] [PATCH] ppc32: workaround for spurious IRQs on PQ2
> 
> Hi!
> 
> There is a problem with big amount of spurious IRQs on 8248-based 
> design I'm working on.
> 
> I observed this problem with 2.4.30 kernel, but it was reported to be
> still present on 2.6 as well.
> 
> Traces show that spurious IRQ happens right after handle_IRQ_events() 
> enables external interrupts and _before_ even calling real IRQ 
> handler.
> 
> I fixed this problem by adding sync at the end of cpm2_mask_and_ack. 
> Using out_XXX macros for accessing SIU register doesn't seem to help.
> Dan thinks there are some pipeline-related issues here, although I 
> failed to found any mentions of them in 8272 user manual.
> 
> Also, there is a possibility, that we need more explicit sync's in 
> cpm2_pic code.
> 
> Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
> 
> ===== arch/ppc/syslib/cpm2_pic.c 1.11 vs edited =====
> --- 1.11/arch/ppc/syslib/cpm2_pic.c	2005-03-31 02:59:05 -08:00
> +++ edited/arch/ppc/syslib/cpm2_pic.c	2005-04-26 11:55:51 -07:00
> @@ -90,6 +90,7 @@
>  	ppc_cached_irq_mask[word] &= ~(1 << bit);
>  	simr[word] = ppc_cached_irq_mask[word];
>  	sipnr[word] = 1 << bit;
> +	mb();
>  }
>  
>  static void cpm2_end_irq(unsigned int irq_nr)
> 
> 
> 
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-04-27  7:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-26 19:21 [RFC] [PATCH] ppc32: workaround for spurious IRQs on PQ2 Eugene Surovegin
  -- strict thread matches above, loose matches on Subject: below --
2005-04-27  6:54 Wrobel Heinz-r39252
2005-04-27  7:15 ` Eugene Surovegin
2005-04-27  7:39 ` Pantelis Antoniou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).