Re: powerpc/pasemi: Add Nemo board IRQ initroutine
Darren Stevens 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 >> >> 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
Re: powerpc/pasemi: Add Nemo board IRQ initroutine
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 > > 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
Re: [NEXT,v2,2/4] powerpc/pasemi: Add Nemo board IRQ initroutine
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 Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/0428a5f494a003c98c1d1fc98aae60 cheers
Re: [NEXT,v2,2/4] powerpc/pasemi: Add Nemo board IRQ initroutine
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 Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/51f4cc2047a4b7e9bf1b49acf06c11 cheers
[PATCH NEXT v2 2/4] powerpc/pasemi: Add Nemo board IRQ initroutine
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 --- 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 #include #include +#include #include #include #include @@ -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,e000"); + 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;