From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>,
Peter Zijlstra <peterz@infradead.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Jeremy Kerr <jk@ozlabs.org>, Arnd Bergmann <arnd@arndb.de>
Subject: [patch 5/8] powerpc: cell: Use handle_edge_irq
Date: Wed, 02 Feb 2011 21:41:23 -0000 [thread overview]
Message-ID: <20110202212552.167512165@linutronix.de> (raw)
In-Reply-To: 20110202212258.546660886@linutronix.de
[-- Attachment #1: powerpc-cell-use-handle-edge-irq.patch --]
[-- Type: text/plain, Size: 2521 bytes --]
handle_edge_irq is now special cased for the cell EOI
requirements. Use it and remove the duplicate code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jeremy Kerr <jk@ozlabs.org>
Cc: Arnd Bergmann <arnd@arndb.de>
---
arch/powerpc/platforms/cell/interrupt.c | 52 ++------------------------------
1 file changed, 4 insertions(+), 48 deletions(-)
Index: linux-2.6-tip/arch/powerpc/platforms/cell/interrupt.c
===================================================================
--- linux-2.6-tip.orig/arch/powerpc/platforms/cell/interrupt.c
+++ linux-2.6-tip/arch/powerpc/platforms/cell/interrupt.c
@@ -233,52 +233,6 @@ static int iic_host_match(struct irq_hos
"IBM,CBEA-Internal-Interrupt-Controller");
}
-extern int noirqdebug;
-
-static void handle_iic_irq(unsigned int irq, struct irq_desc *desc)
-{
- raw_spin_lock(&desc->lock);
-
- desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
-
- /*
- * If we're currently running this IRQ, or its disabled,
- * we shouldn't process the IRQ. Mark it pending, handle
- * the necessary masking and go out
- */
- if (unlikely((desc->status & (IRQ_INPROGRESS | IRQ_DISABLED)) ||
- !desc->action)) {
- desc->status |= IRQ_PENDING;
- goto out_eoi;
- }
-
- kstat_incr_irqs_this_cpu(irq, desc);
-
- /* Mark the IRQ currently in progress.*/
- desc->status |= IRQ_INPROGRESS;
-
- do {
- struct irqaction *action = desc->action;
- irqreturn_t action_ret;
-
- if (unlikely(!action))
- goto out_eoi;
-
- desc->status &= ~IRQ_PENDING;
- raw_spin_unlock(&desc->lock);
- action_ret = handle_IRQ_event(irq, action);
- if (!noirqdebug)
- note_interrupt(irq, desc, action_ret);
- raw_spin_lock(&desc->lock);
-
- } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING);
-
- desc->status &= ~IRQ_INPROGRESS;
-out_eoi:
- desc->chip->eoi(irq);
- raw_spin_unlock(&desc->lock);
-}
-
static int iic_host_map(struct irq_host *h, unsigned int virq,
irq_hw_number_t hw)
{
@@ -287,11 +241,13 @@ static int iic_host_map(struct irq_host
set_irq_chip_and_handler(virq, &iic_chip, handle_percpu_irq);
break;
case IIC_IRQ_TYPE_IOEXC:
+ irq_set_status_flags(i, IRQ_EDGE_EOI);
set_irq_chip_and_handler(virq, &iic_ioexc_chip,
- handle_iic_irq);
+ handle_edge_irq);
break;
default:
- set_irq_chip_and_handler(virq, &iic_chip, handle_iic_irq);
+ irq_set_status_flags(i, IRQ_EDGE_EOI);
+ set_irq_chip_and_handler(virq, &iic_chip, handle_edge_irq);
}
return 0;
}
next prev parent reply other threads:[~2011-02-02 21:41 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-02 21:41 [patch 0/8] genirq: Further cleanups for .39 Thomas Gleixner
2011-02-02 21:41 ` [patch 1/8] genirq: Remove bogus conditional Thomas Gleixner
2011-02-19 12:22 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2011-02-02 21:41 ` [patch 2/8] genirq: Consolidate startup/shutdown of interrupts Thomas Gleixner
2011-02-19 12:22 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2011-02-02 21:41 ` [patch 3/8] genirq: Do not fiddle with IRQ_MASKED in handle_edge_irq() Thomas Gleixner
2011-02-19 12:24 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2011-02-02 21:41 ` [patch 4/8] genirq: Introduce IRQ_EDGE_EOI flag Thomas Gleixner
2011-02-02 21:41 ` Thomas Gleixner [this message]
2011-02-02 21:41 ` [patch 6/8] arm: ns9xxx: Remove private irq flow handler Thomas Gleixner
2011-02-02 21:41 ` Thomas Gleixner
2011-02-03 7:56 ` Uwe Kleine-König
2011-02-03 7:56 ` Uwe Kleine-König
2011-03-28 17:13 ` [tip:irq/urgent] arm: Ns9xxx: " tip-bot for Thomas Gleixner
2011-02-02 21:41 ` [patch 7/8] m68knommu: 5772: Replace " Thomas Gleixner
2011-02-02 22:27 ` Greg Ungerer
2011-02-02 22:37 ` Thomas Gleixner
2011-02-02 22:41 ` Greg Ungerer
2011-02-02 21:41 ` [patch 8/8] genirq: Make handle_IRQ_event private to the core code Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110202212552.167512165@linutronix.de \
--to=tglx@linutronix.de \
--cc=arnd@arndb.de \
--cc=benh@kernel.crashing.org \
--cc=jk@ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.