linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] Split virq setup logic out into irq_setup_virq()
@ 2007-06-04 12:59 Michael Ellerman
  2007-06-04 13:00 ` [PATCH 2/4] Add irq_create_direct_mapping() Michael Ellerman
                   ` (3 more replies)
  0 siblings, 4 replies; 31+ messages in thread
From: Michael Ellerman @ 2007-06-04 12:59 UTC (permalink / raw)
  To: linuxppc-dev

A future patch will need the logic at the end of irq_create_mapping()
which setups a virq and installs it in the irq_map. So split it out
into a new function irq_setup_virq().

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 arch/powerpc/kernel/irq.c |   32 +++++++++++++++++++++-----------
 1 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 42c8ed6..9bafc88 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -591,6 +591,25 @@ static void irq_radix_rdunlock(unsigned long flags)
 	local_irq_restore(flags);
 }
 
+static int irq_setup_virq(struct irq_host *host, unsigned int virq,
+			    irq_hw_number_t hwirq)
+{
+	/* Clear IRQ_NOREQUEST flag */
+	get_irq_desc(virq)->status &= ~IRQ_NOREQUEST;
+
+	/* map it */
+	smp_wmb();
+	irq_map[virq].hwirq = hwirq;
+	smp_mb();
+
+	if (host->ops->map(host, virq, hwirq)) {
+		pr_debug("irq: -> mapping failed, freeing\n");
+		irq_free_virt(virq, 1);
+		return -1;
+	}
+
+	return 0;
+}
 
 unsigned int irq_create_mapping(struct irq_host *host,
 				irq_hw_number_t hwirq)
@@ -639,18 +658,9 @@ unsigned int irq_create_mapping(struct irq_host *host,
 	}
 	pr_debug("irq: -> obtained virq %d\n", virq);
 
-	/* Clear IRQ_NOREQUEST flag */
-	get_irq_desc(virq)->status &= ~IRQ_NOREQUEST;
-
-	/* map it */
-	smp_wmb();
-	irq_map[virq].hwirq = hwirq;
-	smp_mb();
-	if (host->ops->map(host, virq, hwirq)) {
-		pr_debug("irq: -> mapping failed, freeing\n");
-		irq_free_virt(virq, 1);
+	if (irq_setup_virq(host, virq, hwirq))
 		return NO_IRQ;
-	}
+
 	return virq;
 }
 EXPORT_SYMBOL_GPL(irq_create_mapping);
-- 
1.5.1.3.g7a33b-dirty

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

end of thread, other threads:[~2007-06-12  2:32 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-04 12:59 [PATCH 1/4] Split virq setup logic out into irq_setup_virq() Michael Ellerman
2007-06-04 13:00 ` [PATCH 2/4] Add irq_create_direct_mapping() Michael Ellerman
2007-06-04 22:44   ` Benjamin Herrenschmidt
2007-06-04 13:00 ` [PATCH 3/4] Add for_each_compatible_node() Michael Ellerman
2007-06-04 22:44   ` Benjamin Herrenschmidt
2007-06-04 13:00 ` [RFC/PATCH 4/4] Add support for MSI on Axon-based Cell systems Michael Ellerman
2007-06-04 17:09   ` Arnd Bergmann
2007-06-04 17:12   ` Arnd Bergmann
2007-06-08  2:53     ` Michael Ellerman
2007-06-08  8:47       ` Segher Boessenkool
2007-06-08 19:26         ` Arnd Bergmann
2007-06-08 19:36           ` Segher Boessenkool
2007-06-08 19:59             ` Segher Boessenkool
2007-06-08 20:06               ` Arnd Bergmann
2007-06-08 20:16                 ` Segher Boessenkool
2007-06-12  2:32                   ` Michael Ellerman
2007-06-08 20:01             ` Arnd Bergmann
2007-06-08 20:06               ` Segher Boessenkool
2007-06-12  2:30                 ` Michael Ellerman
2007-06-04 22:45   ` Benjamin Herrenschmidt
2007-06-05  7:00   ` Jean-Christophe Dubois
2007-06-05  9:16     ` Arnd Bergmann
2007-06-05  9:29       ` Jean-Christophe Dubois
2007-06-05  9:30       ` Arnd Bergmann
2007-06-07  7:58     ` Michael Ellerman
2007-06-07  8:10       ` Jean-Christophe Dubois
2007-06-07 11:55         ` Benjamin Herrenschmidt
2007-06-07 12:00           ` Jean-Christophe Dubois
2007-06-05 14:12   ` Milton Miller
2007-06-06  5:19     ` Michael Ellerman
2007-06-04 22:43 ` [PATCH 1/4] Split virq setup logic out into irq_setup_virq() Benjamin Herrenschmidt

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