irq.c (0e8c6f56fab3af3ef9f78f486e198792d3af0fa1) irq.c (d25316616842b593de6f89ce2101f1af62f4d559)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Low-Level PCI Support for PC -- Routing of Interrupts
4 *
5 * (c) 1999--2000 Martin Mares <mj@ucw.cz>
6 */
7
8#include <linux/types.h>

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

13#include <linux/dmi.h>
14#include <linux/io.h>
15#include <linux/smp.h>
16#include <linux/spinlock.h>
17#include <asm/io_apic.h>
18#include <linux/irq.h>
19#include <linux/acpi.h>
20
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Low-Level PCI Support for PC -- Routing of Interrupts
4 *
5 * (c) 1999--2000 Martin Mares <mj@ucw.cz>
6 */
7
8#include <linux/types.h>

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

13#include <linux/dmi.h>
14#include <linux/io.h>
15#include <linux/smp.h>
16#include <linux/spinlock.h>
17#include <asm/io_apic.h>
18#include <linux/irq.h>
19#include <linux/acpi.h>
20
21#include <asm/i8259.h>
21#include <asm/pc-conf-reg.h>
22#include <asm/pci_x86.h>
23
24#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
25#define PIRQ_VERSION 0x0100
26
27static int broken_hp_bios_irq9;
28static int acer_tm360_irqrouting;

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

153/*
154 * Code for querying and setting of IRQ routes on various interrupt routers.
155 * PIC Edge/Level Control Registers (ELCR) 0x4d0 & 0x4d1.
156 */
157
158void elcr_set_level_irq(unsigned int irq)
159{
160 unsigned char mask = 1 << (irq & 7);
22#include <asm/pc-conf-reg.h>
23#include <asm/pci_x86.h>
24
25#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
26#define PIRQ_VERSION 0x0100
27
28static int broken_hp_bios_irq9;
29static int acer_tm360_irqrouting;

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

154/*
155 * Code for querying and setting of IRQ routes on various interrupt routers.
156 * PIC Edge/Level Control Registers (ELCR) 0x4d0 & 0x4d1.
157 */
158
159void elcr_set_level_irq(unsigned int irq)
160{
161 unsigned char mask = 1 << (irq & 7);
161 unsigned int port = 0x4d0 + (irq >> 3);
162 unsigned int port = PIC_ELCR1 + (irq >> 3);
162 unsigned char val;
163 static u16 elcr_irq_mask;
164
165 if (irq >= 16 || (1 << irq) & elcr_irq_mask)
166 return;
167
168 elcr_irq_mask |= (1 << irq);
169 printk(KERN_DEBUG "PCI: setting IRQ %u as level-triggered\n", irq);

--- 1391 unchanged lines hidden ---
163 unsigned char val;
164 static u16 elcr_irq_mask;
165
166 if (irq >= 16 || (1 << irq) & elcr_irq_mask)
167 return;
168
169 elcr_irq_mask |= (1 << irq);
170 printk(KERN_DEBUG "PCI: setting IRQ %u as level-triggered\n", irq);

--- 1391 unchanged lines hidden ---