Additional IRQ handlers in ppc4xx_init_IRQ()

David Müller (ELSOFT AG) d.mueller at elsoft.ch
Tue Oct 23 17:10:29 EST 2001


Hello

I have a question regarding the registration of additional IRQ handlers
for a PPC405GP based board. The board uses the PIC inside the PIIX4 too,
so i have set NR_BOARD_IRQ to 16 in my board specific include file and
extended ppc4xx_init_IRQ as follows:

static void __init
ppc4xx_init_IRQ(void)
{
	int i;

	ppc4xx_pic_init();

#if !defined(CONFIG_PIP405) && !defined(CONFIG_MIP405)
	for (i = 0; i < NR_IRQS; i++)
		irq_desc[i].handler = ppc4xx_pic;
#else
/* MPL PIP405 / MIP405 uses PIIX4 PIC too */
	for (i = 0; i < NR_AIC_IRQS; i++)
		irq_desc[i].handler = ppc4xx_pic;
	for (i = NR_AIC_IRQS; i < NR_IRQS; i++)
		irq_desc[i].handler = &i8259_pic;

	i8259_pic_irq_offset = NR_AIC_IRQS;
	i8259_init();
	request_irq(ISA_BRIDGE_INT, pip405_mip405_i8259_action, 0,
		    "i8259 cascade", NULL);
#endif
	return;
}


Perhaps something like the following would be a better solution:

static void __init
ppc4xx_init_IRQ(void)
{
	int i;

	ppc4xx_pic_init();

	for (i = 0; i < NR_IRQS; i++)
		irq_desc[i].handler = ppc4xx_pic;
#if defined(CONFIG_IRQ_FIXUP)
         board_fixup_irq();
#endif

	return;
}

Which is the way to go?


Dave


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list