[RFC/PATCH 2/4] Turn xics_setup_8259_cascade() into a generic pseries_setup_i8259_cascade()
Benjamin Herrenschmidt
benh at kernel.crashing.org
Fri Apr 18 14:05:10 EST 2008
On Tue, 2008-04-01 at 17:42 +1100, Michael Ellerman wrote:
> Remove the xics references from xics_setup_8259_cascade(), and merge the
> good bits from the almost identical logic in pseries_mpic_init_IRQ().
>
> Signed-off-by: Michael Ellerman <michael at ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> ---
> arch/powerpc/platforms/pseries/setup.c | 20 ++++++++++++--------
> 1 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
> index 43e4801..1e1faa1 100644
> --- a/arch/powerpc/platforms/pseries/setup.c
> +++ b/arch/powerpc/platforms/pseries/setup.c
> @@ -127,28 +127,32 @@ void pseries_8259_cascade(unsigned int irq, struct irq_desc *desc)
> desc->chip->eoi(irq);
> }
>
> -static void __init xics_setup_8259_cascade(void)
> +static void __init pseries_setup_i8259_cascade(void)
> {
> struct device_node *np, *old, *found = NULL;
> - int cascade, naddr;
> + unsigned int cascade;
> const u32 *addrp;
> unsigned long intack = 0;
> + int naddr;
>
> - for_each_node_by_type(np, "interrupt-controller")
> + for_each_node_by_type(np, "interrupt-controller") {
> if (of_device_is_compatible(np, "chrp,iic")) {
> found = np;
> break;
> }
> + }
> +
> if (found == NULL) {
> - printk(KERN_DEBUG "xics: no ISA interrupt controller\n");
> + printk(KERN_DEBUG "pic: no ISA interrupt controller\n");
> return;
> }
> +
> cascade = irq_of_parse_and_map(found, 0);
> if (cascade == NO_IRQ) {
> - printk(KERN_ERR "xics: failed to map cascade interrupt");
> + printk(KERN_ERR "pic: failed to map cascade interrupt");
> return;
> }
> - pr_debug("xics: cascade mapped to irq %d\n", cascade);
> + pr_debug("pic: cascade mapped to irq %d\n", cascade);
>
> for (old = of_node_get(found); old != NULL ; old = np) {
> np = of_get_parent(old);
> @@ -166,7 +170,7 @@ static void __init xics_setup_8259_cascade(void)
> intack |= ((unsigned long)addrp[naddr-2]) << 32;
> }
> if (intack)
> - printk(KERN_DEBUG "xics: PCI 8259 intack at 0x%016lx\n", intack);
> + printk(KERN_DEBUG "pic: PCI 8259 intack at 0x%016lx\n", intack);
> i8259_init(found, intack);
> of_node_put(found);
> set_irq_chained_handler(cascade, pseries_8259_cascade);
> @@ -254,7 +258,7 @@ static void __init pseries_mpic_init_IRQ(void)
> static void __init pseries_xics_init_IRQ(void)
> {
> xics_init_IRQ();
> - xics_setup_8259_cascade();
> + pseries_setup_i8259_cascade();
> }
>
> static void pseries_lpar_enable_pmcs(void)
More information about the Linuxppc-dev
mailing list