Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5ccde0a authored by Kyle McMartin's avatar Kyle McMartin Committed by Matt Turner
Browse files

alpha: use set_irq_chip and push down __do_IRQ to the machine types



Also kill superfluous IRQ_DISABLED initialization, since that's the
default state of the irq_desc[i].status field.

Tested-by: default avatarMichael Cree <mcree@orcon.net.nz>
Signed-off-by: default avatarKyle McMartin <kyle@redhat.com>
Signed-off-by: default avatarMatt Turner <mattst88@gmail.com>
parent e78bf5e6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -88,4 +88,7 @@ static __inline__ int irq_canonicalize(int irq)
struct pt_regs;
extern void (*perf_irq)(unsigned long, struct pt_regs *);

struct irq_desc;
extern void alpha_do_IRQ(unsigned int irq, struct irq_desc *desc);

#endif /* _ALPHA_IRQ_H */
+6 −1
Original line number Diff line number Diff line
@@ -159,6 +159,11 @@ handle_irq(int irq)
	 * at IPL 0.
	 */
	local_irq_disable();
	__do_IRQ(irq);
	generic_handle_irq(irq);
	irq_exit();
}

void alpha_do_IRQ(unsigned int irq, struct irq_desc *desc)
{
	__do_IRQ(irq);
}
+1 −2
Original line number Diff line number Diff line
@@ -107,8 +107,7 @@ init_i8259a_irqs(void)
	outb(0xff, 0xA1);	/* mask all of 8259A-2 */

	for (i = 0; i < 16; i++) {
		irq_desc[i].status = IRQ_DISABLED;
		irq_desc[i].chip = &i8259a_irq_type;
		set_irq_chip_and_handler(i, &i8259a_irq_type, alpha_do_IRQ);
	}

	setup_irq(2, &cascade);
+2 −2
Original line number Diff line number Diff line
@@ -119,8 +119,8 @@ init_pyxis_irqs(unsigned long ignore_mask)
	for (i = 16; i < 48; ++i) {
		if ((ignore_mask >> i) & 1)
			continue;
		irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
		irq_desc[i].chip = &pyxis_irq_type;
		set_irq_chip_and_handler(i, &pyxis_irq_type, alpha_do_IRQ);
		irq_desc[i].status |= IRQ_LEVEL;
	}

	setup_irq(16+7, &isa_cascade_irqaction);
+2 −2
Original line number Diff line number Diff line
@@ -68,8 +68,8 @@ init_srm_irqs(long max, unsigned long ignore_mask)
	for (i = 16; i < max; ++i) {
		if (i < 64 && ((ignore_mask >> i) & 1))
			continue;
		irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
		irq_desc[i].chip = &srm_irq_type;
		irq_desc[i].status |= IRQ_LEVEL;
		set_irq_chip_and_handler(i, &srm_irq_type, alpha_do_IRQ);
	}
}

Loading