Loading arch/mips/sgi-ip22/ip22-int.c +26 −34 Original line number Diff line number Diff line Loading @@ -31,88 +31,80 @@ static char lc3msk_to_irqnr[256]; extern int ip22_eisa_init(void); static void enable_local0_irq(unsigned int irq) static void enable_local0_irq(struct irq_data *d) { /* don't allow mappable interrupt to be enabled from setup_irq, * we have our own way to do so */ if (irq != SGI_MAP_0_IRQ) sgint->imask0 |= (1 << (irq - SGINT_LOCAL0)); if (d->irq != SGI_MAP_0_IRQ) sgint->imask0 |= (1 << (d->irq - SGINT_LOCAL0)); } static void disable_local0_irq(unsigned int irq) static void disable_local0_irq(struct irq_data *d) { sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0)); sgint->imask0 &= ~(1 << (d->irq - SGINT_LOCAL0)); } static struct irq_chip ip22_local0_irq_type = { .name = "IP22 local 0", .ack = disable_local0_irq, .mask = disable_local0_irq, .mask_ack = disable_local0_irq, .unmask = enable_local0_irq, .irq_mask = disable_local0_irq, .irq_unmask = enable_local0_irq, }; static void enable_local1_irq(unsigned int irq) static void enable_local1_irq(struct irq_data *d) { /* don't allow mappable interrupt to be enabled from setup_irq, * we have our own way to do so */ if (irq != SGI_MAP_1_IRQ) sgint->imask1 |= (1 << (irq - SGINT_LOCAL1)); if (d->irq != SGI_MAP_1_IRQ) sgint->imask1 |= (1 << (d->irq - SGINT_LOCAL1)); } static void disable_local1_irq(unsigned int irq) static void disable_local1_irq(struct irq_data *d) { sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1)); sgint->imask1 &= ~(1 << (d->irq - SGINT_LOCAL1)); } static struct irq_chip ip22_local1_irq_type = { .name = "IP22 local 1", .ack = disable_local1_irq, .mask = disable_local1_irq, .mask_ack = disable_local1_irq, .unmask = enable_local1_irq, .irq_mask = disable_local1_irq, .irq_unmask = enable_local1_irq, }; static void enable_local2_irq(unsigned int irq) static void enable_local2_irq(struct irq_data *d) { sgint->imask0 |= (1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); sgint->cmeimask0 |= (1 << (irq - SGINT_LOCAL2)); sgint->cmeimask0 |= (1 << (d->irq - SGINT_LOCAL2)); } static void disable_local2_irq(unsigned int irq) static void disable_local2_irq(struct irq_data *d) { sgint->cmeimask0 &= ~(1 << (irq - SGINT_LOCAL2)); sgint->cmeimask0 &= ~(1 << (d->irq - SGINT_LOCAL2)); if (!sgint->cmeimask0) sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); } static struct irq_chip ip22_local2_irq_type = { .name = "IP22 local 2", .ack = disable_local2_irq, .mask = disable_local2_irq, .mask_ack = disable_local2_irq, .unmask = enable_local2_irq, .irq_mask = disable_local2_irq, .irq_unmask = enable_local2_irq, }; static void enable_local3_irq(unsigned int irq) static void enable_local3_irq(struct irq_data *d) { sgint->imask1 |= (1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); sgint->cmeimask1 |= (1 << (irq - SGINT_LOCAL3)); sgint->cmeimask1 |= (1 << (d->irq - SGINT_LOCAL3)); } static void disable_local3_irq(unsigned int irq) static void disable_local3_irq(struct irq_data *d) { sgint->cmeimask1 &= ~(1 << (irq - SGINT_LOCAL3)); sgint->cmeimask1 &= ~(1 << (d->irq - SGINT_LOCAL3)); if (!sgint->cmeimask1) sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); } static struct irq_chip ip22_local3_irq_type = { .name = "IP22 local 3", .ack = disable_local3_irq, .mask = disable_local3_irq, .mask_ack = disable_local3_irq, .unmask = enable_local3_irq, .irq_mask = disable_local3_irq, .irq_unmask = enable_local3_irq, }; static void indy_local0_irqdispatch(void) Loading Loading
arch/mips/sgi-ip22/ip22-int.c +26 −34 Original line number Diff line number Diff line Loading @@ -31,88 +31,80 @@ static char lc3msk_to_irqnr[256]; extern int ip22_eisa_init(void); static void enable_local0_irq(unsigned int irq) static void enable_local0_irq(struct irq_data *d) { /* don't allow mappable interrupt to be enabled from setup_irq, * we have our own way to do so */ if (irq != SGI_MAP_0_IRQ) sgint->imask0 |= (1 << (irq - SGINT_LOCAL0)); if (d->irq != SGI_MAP_0_IRQ) sgint->imask0 |= (1 << (d->irq - SGINT_LOCAL0)); } static void disable_local0_irq(unsigned int irq) static void disable_local0_irq(struct irq_data *d) { sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0)); sgint->imask0 &= ~(1 << (d->irq - SGINT_LOCAL0)); } static struct irq_chip ip22_local0_irq_type = { .name = "IP22 local 0", .ack = disable_local0_irq, .mask = disable_local0_irq, .mask_ack = disable_local0_irq, .unmask = enable_local0_irq, .irq_mask = disable_local0_irq, .irq_unmask = enable_local0_irq, }; static void enable_local1_irq(unsigned int irq) static void enable_local1_irq(struct irq_data *d) { /* don't allow mappable interrupt to be enabled from setup_irq, * we have our own way to do so */ if (irq != SGI_MAP_1_IRQ) sgint->imask1 |= (1 << (irq - SGINT_LOCAL1)); if (d->irq != SGI_MAP_1_IRQ) sgint->imask1 |= (1 << (d->irq - SGINT_LOCAL1)); } static void disable_local1_irq(unsigned int irq) static void disable_local1_irq(struct irq_data *d) { sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1)); sgint->imask1 &= ~(1 << (d->irq - SGINT_LOCAL1)); } static struct irq_chip ip22_local1_irq_type = { .name = "IP22 local 1", .ack = disable_local1_irq, .mask = disable_local1_irq, .mask_ack = disable_local1_irq, .unmask = enable_local1_irq, .irq_mask = disable_local1_irq, .irq_unmask = enable_local1_irq, }; static void enable_local2_irq(unsigned int irq) static void enable_local2_irq(struct irq_data *d) { sgint->imask0 |= (1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); sgint->cmeimask0 |= (1 << (irq - SGINT_LOCAL2)); sgint->cmeimask0 |= (1 << (d->irq - SGINT_LOCAL2)); } static void disable_local2_irq(unsigned int irq) static void disable_local2_irq(struct irq_data *d) { sgint->cmeimask0 &= ~(1 << (irq - SGINT_LOCAL2)); sgint->cmeimask0 &= ~(1 << (d->irq - SGINT_LOCAL2)); if (!sgint->cmeimask0) sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); } static struct irq_chip ip22_local2_irq_type = { .name = "IP22 local 2", .ack = disable_local2_irq, .mask = disable_local2_irq, .mask_ack = disable_local2_irq, .unmask = enable_local2_irq, .irq_mask = disable_local2_irq, .irq_unmask = enable_local2_irq, }; static void enable_local3_irq(unsigned int irq) static void enable_local3_irq(struct irq_data *d) { sgint->imask1 |= (1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); sgint->cmeimask1 |= (1 << (irq - SGINT_LOCAL3)); sgint->cmeimask1 |= (1 << (d->irq - SGINT_LOCAL3)); } static void disable_local3_irq(unsigned int irq) static void disable_local3_irq(struct irq_data *d) { sgint->cmeimask1 &= ~(1 << (irq - SGINT_LOCAL3)); sgint->cmeimask1 &= ~(1 << (d->irq - SGINT_LOCAL3)); if (!sgint->cmeimask1) sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); } static struct irq_chip ip22_local3_irq_type = { .name = "IP22 local 3", .ack = disable_local3_irq, .mask = disable_local3_irq, .mask_ack = disable_local3_irq, .unmask = enable_local3_irq, .irq_mask = disable_local3_irq, .irq_unmask = enable_local3_irq, }; static void indy_local0_irqdispatch(void) Loading