.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | ** I/O Sapic Driver - PCI interrupt line support |
---|
3 | 4 | ** |
---|
4 | 5 | ** (c) Copyright 1999 Grant Grundler |
---|
5 | 6 | ** (c) Copyright 1999 Hewlett-Packard Company |
---|
6 | 7 | ** |
---|
7 | | -** This program is free software; you can redistribute it and/or modify |
---|
8 | | -** it under the terms of the GNU General Public License as published by |
---|
9 | | -** the Free Software Foundation; either version 2 of the License, or |
---|
10 | | -** (at your option) any later version. |
---|
11 | 8 | ** |
---|
12 | 9 | ** The I/O sapic driver manages the Interrupt Redirection Table which is |
---|
13 | 10 | ** the control logic to convert PCI line based interrupts into a Message |
---|
.. | .. |
---|
126 | 123 | ** o disable IRdT - call disable_irq(vector[line]->processor_irq) |
---|
127 | 124 | */ |
---|
128 | 125 | |
---|
129 | | - |
---|
130 | | -/* FIXME: determine which include files are really needed */ |
---|
131 | | -#include <linux/types.h> |
---|
132 | | -#include <linux/kernel.h> |
---|
133 | | -#include <linux/spinlock.h> |
---|
134 | 126 | #include <linux/pci.h> |
---|
135 | | -#include <linux/init.h> |
---|
136 | | -#include <linux/slab.h> |
---|
137 | | -#include <linux/interrupt.h> |
---|
138 | 127 | |
---|
139 | | -#include <asm/byteorder.h> /* get in-line asm for swab */ |
---|
140 | 128 | #include <asm/pdc.h> |
---|
141 | 129 | #include <asm/pdcpat.h> |
---|
142 | | -#include <asm/page.h> |
---|
143 | | -#include <asm/io.h> /* read/write functions */ |
---|
144 | 130 | #ifdef CONFIG_SUPERIO |
---|
145 | 131 | #include <asm/superio.h> |
---|
146 | 132 | #endif |
---|
.. | .. |
---|
216 | 202 | |
---|
217 | 203 | static DEFINE_SPINLOCK(iosapic_lock); |
---|
218 | 204 | |
---|
219 | | -static inline void iosapic_eoi(void __iomem *addr, unsigned int data) |
---|
| 205 | +static inline void iosapic_eoi(__le32 __iomem *addr, __le32 data) |
---|
220 | 206 | { |
---|
221 | | - __raw_writel(data, addr); |
---|
| 207 | + __raw_writel((__force u32)data, addr); |
---|
222 | 208 | } |
---|
223 | 209 | |
---|
224 | 210 | /* |
---|
.. | .. |
---|
889 | 875 | |
---|
890 | 876 | return vi->txn_irq; |
---|
891 | 877 | } |
---|
| 878 | +EXPORT_SYMBOL(iosapic_serial_irq); |
---|
892 | 879 | #endif |
---|
893 | 880 | |
---|
894 | 881 | |
---|
.. | .. |
---|
941 | 928 | return NULL; |
---|
942 | 929 | } |
---|
943 | 930 | |
---|
944 | | - isi->addr = ioremap_nocache(hpa, 4096); |
---|
| 931 | + isi->addr = ioremap(hpa, 4096); |
---|
945 | 932 | isi->isi_hpa = hpa; |
---|
946 | 933 | isi->isi_version = iosapic_rd_version(isi); |
---|
947 | 934 | isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; |
---|