Lines Matching +full:pc +full:- +full:ack
9 * Copyright (C) 1994 - 2000 Ralf Baechle
28 * present in the majority of PC/AT boxes.
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()
148 * usually resulting from the 8259A-1|2 PICs) occur 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()
189 * lets ACK and report it. [once per IRQ] 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()
299 * On systems with i8259-style interrupt controllers we assume for
300 * driver compatibility reasons interrupts 0 - 15 to be the i8259
354 return -ENODEV; in i8259_of_init()