All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] powerpc/ipic: support external edge triggered IRQ0
@ 2009-11-27 10:02 Norbert van Bolhuis
  0 siblings, 0 replies; only message in thread
From: Norbert van Bolhuis @ 2009-11-27 10:02 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: nvbolhuis


Currently an external edge triggered IRQ0 gives 2 problems.
It gives a sense error ("edge sense not supported on internal interrupts")
and it isn't acked.
This patch takes into account IRQ0 can be internal or external and fixes
both issues.

Signed-off-by: Norbert van Bolhuis <nvbolhuis@aimvalley.nl>
---
 arch/powerpc/sysdev/ipic.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index cb7689c..3201db1 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -316,6 +316,7 @@ static struct ipic_info ipic_info[] = {
 		.prio_mask = 7,
 	},
 	[48] = {
+		.ack	= IPIC_SEPNR,
 		.mask	= IPIC_SEMSR,
 		.prio	= IPIC_SMPRR_A,
 		.force	= IPIC_SEFCR,
@@ -619,7 +620,9 @@ static int ipic_set_irq_type(unsigned int virq, unsigned int flow_type)
 		return -EINVAL;
 	}
 	/* ipic supports only edge mode on external interrupts */
-	if ((flow_type & IRQ_TYPE_EDGE_FALLING) && !ipic_info[src].ack) {
+	if ((flow_type & IRQ_TYPE_EDGE_FALLING) &&
+	    ((src != IPIC_IRQ_EXT0 && !ipic_info[src].ack) ||
+	     (src == IPIC_IRQ_EXT0 && (ipic_read(ipic->regs, IPIC_SEMSR) & SEMSR_SIRQ0)))) {
 		printk(KERN_ERR "ipic: edge sense not supported on internal "
 				"interrupts\n");
 		return -EINVAL;
-- 
1.5.2.2

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2009-11-27 10:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-27 10:02 [PATCH] powerpc/ipic: support external edge triggered IRQ0 Norbert van Bolhuis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.