Lines Matching +full:irqs +full:- +full:map +full:- +full:range
6 * Code to handle x86 style IRQs plus some generic interrupt stuff.
9 * Copyright (C) 1994 - 2000 Ralf Baechle
35 static int i8259A_auto_eoi = -1;
44 .name = "XT-PIC",
70 unsigned int mask, irq = d->irq - I8259A_IRQ_BASE; in disable_8259A_irq()
85 unsigned int mask, irq = d->irq - I8259A_IRQ_BASE; in enable_8259A_irq()
136 unsigned int irqmask, irq = d->irq - I8259A_IRQ_BASE; in mask_and_ack_8259A()
143 * to overdo spurious IRQ handling - it's usually a sign in mask_and_ack_8259A()
147 * Note that IRQ7 and IRQ15 (the two spurious IRQs in mask_and_ack_8259A()
148 * usually resulting from the 8259A-1|2 PICs) occur in mask_and_ack_8259A()
150 * can check spurious 8259A IRQs without doing the in mask_and_ack_8259A()
162 inb(PIC_SLAVE_IMR); /* DUMMY - (do we need this?) */ in mask_and_ack_8259A()
165 outb(0x60+PIC_CASCADE_IR, PIC_MASTER_CMD); /* 'Specific EOI' to master-IRQ2 */ in mask_and_ack_8259A()
167 inb(PIC_MASTER_IMR); /* DUMMY - (do we need this?) */ in mask_and_ack_8259A()
176 * this is the slow path - should happen rarely. in mask_and_ack_8259A()
181 * 8259A - not spurious, go handle it. in mask_and_ack_8259A()
218 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ in i8259A_shutdown()
219 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */ in i8259A_shutdown()
236 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ in init_8259A()
237 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */ in init_8259A()
240 * outb_p - this has to work on a wide range of PC hardware. in init_8259A()
242 outb_p(0x11, PIC_MASTER_CMD); /* ICW1: select 8259A-1 init */ in init_8259A()
243 …outb_p(I8259A_IRQ_BASE + 0, PIC_MASTER_IMR); /* ICW2: 8259A-1 IR0 mapped to I8259A_IRQ_BASE + 0x00… in init_8259A()
244 outb_p(1U << PIC_CASCADE_IR, PIC_MASTER_IMR); /* 8259A-1 (the master) has a slave on IR2 */ in init_8259A()
250 outb_p(0x11, PIC_SLAVE_CMD); /* ICW1: select 8259A-2 init */ in init_8259A()
251 …outb_p(I8259A_IRQ_BASE + 8, PIC_SLAVE_IMR); /* ICW2: 8259A-2 IR0 mapped to I8259A_IRQ_BASE + 0x08 … in init_8259A()
252 outb_p(PIC_CASCADE_IR, PIC_SLAVE_IMR); /* 8259A-2 is a slave on master's IR2 */ in init_8259A()
294 .map = i8259A_irq_domain_map,
299 * On systems with i8259-style interrupt controllers we assume for
300 * driver compatibility reasons interrupts 0 - 15 to be the i8259
352 pr_err("Failed to map i8259 parent IRQ\n"); in i8259_of_init()
354 return -ENODEV; in i8259_of_init()