diff mbox series

[NEXT,v2,2/4] powerpc/pasemi: Add Nemo board IRQ initroutine

Message ID 4c6da03c92f.ac1d78@auth.smtp.1and1.co.uk (mailing list archive)
State Accepted
Commit 51f4cc2047a4b7e9bf1b49acf06c110991fd4167
Headers show
Series [NEXT,v2,1/4] powerpc/pasemi: Add PCI initialisation for Nemo board. | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success next/apply_patch Successfully applied
snowpatch_ozlabs/checkpatch fail Test checkpatch on branch next

Commit Message

Darren Stevens Aug. 19, 2018, 8:21 p.m. UTC
Add a IRQ init routine for the Nemo board which inits and attatches
the i8259 found in the SB600, and a cascade routine to dispatch the
interrupts.

Signed-off-by: Darren Stevens <Darren@stevens-zone.net>

---

Comments

Darren Stevens Jan. 2, 2019, 9:46 p.m. UTC | #1
Hello Michael

On 22/12/2018, Michael Ellerman wrote:
> On Sun, 2018-08-19 at 20:21:47 UTC, Darren Stevens wrote:
>> Add a IRQ init routine for the Nemo board which inits and attatches
>> the i8259 found in the SB600, and a cascade routine to dispatch the
>> interrupts.
>> 
>> Signed-off-by: Darren Stevens <Darren@stevens-zone.net>
>
> Applied to powerpc next, thanks.

Thankyou very much! We can now build a X1000 kernel without an out-of-tree patch, which is good.

> https://git.kernel.org/powerpc/c/51f4cc2047a4b7e9bf1b49acf06c11

Sorry for not mentioning this earlier(holidays etc..), but this commit has my 4th patch, but the commit message from the 2nd patch. I don't know how, and it is not a major problem, but can we get it updated?

Regards
Darren
Michael Ellerman Jan. 8, 2019, 10:17 a.m. UTC | #2
Darren Stevens <darren@stevens-zone.net> writes:
> Hello Michael
>
> On 22/12/2018, Michael Ellerman wrote:
>> On Sun, 2018-08-19 at 20:21:47 UTC, Darren Stevens wrote:
>>> Add a IRQ init routine for the Nemo board which inits and attatches
>>> the i8259 found in the SB600, and a cascade routine to dispatch the
>>> interrupts.
>>> 
>>> Signed-off-by: Darren Stevens <Darren@stevens-zone.net>
>>
>> Applied to powerpc next, thanks.
>
> Thankyou very much! We can now build a X1000 kernel without an out-of-tree patch, which is good.

Yay!

>> https://git.kernel.org/powerpc/c/51f4cc2047a4b7e9bf1b49acf06c11
>
> Sorry for not mentioning this earlier(holidays etc..), but this commit
> has my 4th patch, but the commit message from the 2nd patch. I don't
> know how, and it is not a major problem, but can we get it updated?

Urgh, cr#p. Not sure how I messed that up. I did have to edit all the
patches a bit to get them to apply so presumably somewhere along the
line the commit message got messed up to.

Unfortunately there's no way to fix it.

This email will have to suffice as documentation that it was me that
screwed it up and not you.

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c
index 9a6eb04..fad5280 100644
--- a/arch/powerpc/platforms/pasemi/setup.c
+++ b/arch/powerpc/platforms/pasemi/setup.c
@@ -34,6 +34,7 @@ 
 #include <asm/prom.h>
 #include <asm/iommu.h>
 #include <asm/machdep.h>
+#include <asm/i8259.h>
 #include <asm/mpic.h>
 #include <asm/smp.h>
 #include <asm/time.h>
@@ -183,6 +184,42 @@  static int __init pas_setup_mce_regs(void)
 }
 machine_device_initcall(pasemi, pas_setup_mce_regs);
 
+#ifdef CONFIG_PPC_PASEMI_NEMO
+static void sb600_8259_cascade(struct irq_desc *desc)
+{
+	struct irq_chip *chip = irq_desc_get_chip(desc);
+	unsigned int cascade_irq = i8259_irq();
+
+	if (cascade_irq)
+               generic_handle_irq(cascade_irq);
+
+	chip->irq_eoi(&desc->irq_data);
+}
+
+static void nemo_init_IRQ(struct mpic *mpic)
+{
+	struct device_node *np;
+	int gpio_virq;
+	/* Connect the SB600's legacy i8259 controller */
+	np = of_find_node_by_path("/pxp@0,e0000000");
+	i8259_init(np, 0);
+	of_node_put(np);
+
+	gpio_virq = irq_create_mapping(NULL, 3);
+	irq_set_irq_type(gpio_virq, IRQ_TYPE_LEVEL_HIGH);
+	irq_set_chained_handler(gpio_virq, sb600_8259_cascade);
+	mpic_unmask_irq(irq_get_irq_data(gpio_virq));
+
+	irq_set_default_host(mpic->irqhost);
+}
+
+#else
+
+static inline void nemo_init_IRQ(struct mpic *mpic)
+{
+}
+#endif
+
 static __init void pas_init_IRQ(void)
 {
 	struct device_node *np;