__init void amiga_init_IRQ(void) { int i; for (i = 0; i < AMI_IRQS; i++) ami_ablecount[i] = 0; /* turn off PCMCIA interrupts */ if (AMIGAHW_PRESENT(PCMCIA)) gayle.inten = GAYLE_IRQ_IDE; /* turn off all interrupts... */ amiga_custom.intena = 0x7fff; amiga_custom.intreq = 0x7fff; #ifdef CONFIG_APUS /* Clear any inter-CPU interrupt requests. Circumvents bug in Blizzard IPL emulation HW (or so it appears). */ APUS_WRITE(APUS_INT_LVL, INTLVL_SETRESET | INTLVL_MASK); /* Init IPL emulation. */ APUS_WRITE(APUS_REG_INT, REGINT_INTMASTER | REGINT_ENABLEIPL); APUS_WRITE(APUS_IPL_EMU, IPLEMU_DISABLEINT); APUS_WRITE(APUS_IPL_EMU, IPLEMU_SETRESET | IPLEMU_IPLMASK); #endif /* ... and enable the master interrupt bit */ amiga_custom.intena = IF_SETCLR | IF_INTEN; cia_init_IRQ(&ciaa_base); cia_init_IRQ(&ciab_base); }
void __init amiga_init_IRQ(void) { int i; /* initialize handlers */ for (i = 0; i < AMI_STD_IRQS; i++) { if (ami_servers[i]) { ami_irq_list[i] = NULL; } else { ami_irq_list[i] = new_irq_node(); ami_irq_list[i]->handler = ami_badint; ami_irq_list[i]->flags = 0; ami_irq_list[i]->dev_id = NULL; ami_irq_list[i]->devname = NULL; ami_irq_list[i]->next = NULL; } } for (i = 0; i < AMI_IRQS; i++) ami_ablecount[i] = 0; /* turn off PCMCIA interrupts */ if (AMIGAHW_PRESENT(PCMCIA)) gayle.inten = GAYLE_IRQ_IDE; /* turn off all interrupts and enable the master interrupt bit */ custom.intena = 0x7fff; custom.intreq = 0x7fff; custom.intena = IF_SETCLR | IF_INTEN; cia_init_IRQ(&ciaa_base); cia_init_IRQ(&ciab_base); }
void amiga_init_IRQ(void) { int i; /* initialize handlers */ for (i = 0; i < AMI_STD_IRQS; i++) { if (ami_servers[i]) { ami_irq_list[i] = NULL; } else { ami_irq_list[i] = new_irq_node(); ami_irq_list[i]->handler = ami_badint; ami_irq_list[i]->flags = IRQ_FLG_STD; ami_irq_list[i]->dev_id = NULL; ami_irq_list[i]->devname = NULL; ami_irq_list[i]->next = NULL; } } for (i = 0; i < AMI_IRQS; i++) ami_ablecount[i] = 0; /* turn off all interrupts and enable the master interrupt bit */ custom.intena = 0x7fff; custom.intreq = 0x7fff; custom.intena = IF_SETCLR | IF_INTEN; /* turn off PCMCIA interrupts */ if ( boot_info.bi_un.bi_ami.model == AMI_1200 || boot_info.bi_un.bi_ami.model == AMI_600 ) gayle.inten = GAYLE_IRQ_IDE; cia_init_IRQ(&ciaa_base); cia_init_IRQ(&ciab_base); }
__init void amiga_init_IRQ(void) { int i; /* initialize handlers */ for (i = 0; i < AMI_STD_IRQS; i++) { if (ami_servers[i]) { ami_irq_list[i] = NULL; } else { ami_irq_list[i] = new_irq_node(); ami_irq_list[i]->handler = ami_badint; ami_irq_list[i]->flags = 0; ami_irq_list[i]->dev_id = NULL; ami_irq_list[i]->devname = NULL; ami_irq_list[i]->next = NULL; } } for (i = 0; i < AMI_IRQS; i++) ami_ablecount[i] = 0; /* turn off PCMCIA interrupts */ if (AMIGAHW_PRESENT(PCMCIA)) pcmcia_disable_irq(); /* turn off all interrupts... */ custom.intena = 0x7fff; custom.intreq = 0x7fff; #ifdef CONFIG_APUS /* Clear any inter-CPU interrupt requests. Circumvents bug in Blizzard IPL emulation HW (or so it appears). */ APUS_WRITE(APUS_INT_LVL, INTLVL_SETRESET | INTLVL_MASK); /* Init IPL emulation. */ APUS_WRITE(APUS_REG_INT, REGINT_INTMASTER | REGINT_ENABLEIPL); APUS_WRITE(APUS_IPL_EMU, IPLEMU_DISABLEINT); APUS_WRITE(APUS_IPL_EMU, IPLEMU_SETRESET | IPLEMU_IPLMASK); #endif /* ... and enable the master interrupt bit */ custom.intena = IF_SETCLR | IF_INTEN; cia_init_IRQ(&ciaa_base); cia_init_IRQ(&ciab_base); }
void __init amiga_init_IRQ(void) { request_irq(IRQ_AUTO_1, ami_int1, 0, "int1", NULL); request_irq(IRQ_AUTO_3, ami_int3, 0, "int3", NULL); request_irq(IRQ_AUTO_4, ami_int4, 0, "int4", NULL); request_irq(IRQ_AUTO_5, ami_int5, 0, "int5", NULL); m68k_setup_irq_controller(&amiga_irq_controller, IRQ_USER, AMI_STD_IRQS); /* turn off PCMCIA interrupts */ if (AMIGAHW_PRESENT(PCMCIA)) gayle.inten = GAYLE_IRQ_IDE; /* turn off all interrupts and enable the master interrupt bit */ amiga_custom.intena = 0x7fff; amiga_custom.intreq = 0x7fff; amiga_custom.intena = IF_SETCLR | IF_INTEN; cia_init_IRQ(&ciaa_base); cia_init_IRQ(&ciab_base); }
void __init amiga_init_IRQ(void) { m68k_setup_irq_controller(&amiga_irq_chip, handle_simple_irq, IRQ_USER, AMI_STD_IRQS); irq_set_chained_handler(IRQ_AUTO_1, ami_int1); irq_set_chained_handler(IRQ_AUTO_3, ami_int3); irq_set_chained_handler(IRQ_AUTO_4, ami_int4); irq_set_chained_handler(IRQ_AUTO_5, ami_int5); /* turn off PCMCIA interrupts */ if (AMIGAHW_PRESENT(PCMCIA)) gayle.inten = GAYLE_IRQ_IDE; /* turn off all interrupts and enable the master interrupt bit */ amiga_custom.intena = 0x7fff; amiga_custom.intreq = 0x7fff; amiga_custom.intena = IF_SETCLR | IF_INTEN; cia_init_IRQ(&ciaa_base); cia_init_IRQ(&ciab_base); }