i8259.c (4b4193256c8d3bc3a5397b5cd9494c2ad386317d) i8259.c (d25316616842b593de6f89ce2101f1af62f4d559)
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/linkage.h>
3#include <linux/errno.h>
4#include <linux/signal.h>
5#include <linux/sched.h>
6#include <linux/ioport.h>
7#include <linux/interrupt.h>
8#include <linux/irq.h>

--- 221 unchanged lines hidden (view full) ---

230};
231
232static char irq_trigger[2];
233/**
234 * ELCR registers (0x4d0, 0x4d1) control edge/level of IRQ
235 */
236static void restore_ELCR(char *trigger)
237{
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/linkage.h>
3#include <linux/errno.h>
4#include <linux/signal.h>
5#include <linux/sched.h>
6#include <linux/ioport.h>
7#include <linux/interrupt.h>
8#include <linux/irq.h>

--- 221 unchanged lines hidden (view full) ---

230};
231
232static char irq_trigger[2];
233/**
234 * ELCR registers (0x4d0, 0x4d1) control edge/level of IRQ
235 */
236static void restore_ELCR(char *trigger)
237{
238 outb(trigger[0], 0x4d0);
239 outb(trigger[1], 0x4d1);
238 outb(trigger[0], PIC_ELCR1);
239 outb(trigger[1], PIC_ELCR2);
240}
241
242static void save_ELCR(char *trigger)
243{
244 /* IRQ 0,1,2,8,13 are marked as reserved */
240}
241
242static void save_ELCR(char *trigger)
243{
244 /* IRQ 0,1,2,8,13 are marked as reserved */
245 trigger[0] = inb(0x4d0) & 0xF8;
246 trigger[1] = inb(0x4d1) & 0xDE;
245 trigger[0] = inb(PIC_ELCR1) & 0xF8;
246 trigger[1] = inb(PIC_ELCR2) & 0xDE;
247}
248
249static void i8259A_resume(void)
250{
251 init_8259A(i8259A_auto_eoi);
252 restore_ELCR(irq_trigger);
253}
254

--- 180 unchanged lines hidden ---
247}
248
249static void i8259A_resume(void)
250{
251 init_8259A(i8259A_auto_eoi);
252 restore_ELCR(irq_trigger);
253}
254

--- 180 unchanged lines hidden ---