diff options
author | Christoph Hellwig <hch@lst.de> | 2019-08-13 03:25:02 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2019-08-16 14:33:57 -0400 |
commit | 05933aac7b11911955de307a329dc2a7a14b7bd0 (patch) | |
tree | 5fbf522b4adc70501eed8986930bc0744bbb7810 | |
parent | cf07cb1ff4ea008abf06c95878c700cf1dd65c3e (diff) |
ia64: remove now unused machvec indirections
With the SGI SN2 machvec removal most of the indirections are unused
now, so remove them. This includes the entire removal of the mmio
read*/write* macros as the generic ones are identical to the
asm-generic/io.h version.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lkml.kernel.org/r/20190813072514.23299-17-hch@lst.de
Signed-off-by: Tony Luck <tony.luck@intel.com>
-rw-r--r-- | arch/ia64/include/asm/hw_irq.h | 22 | ||||
-rw-r--r-- | arch/ia64/include/asm/io.h | 221 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec.h | 241 | ||||
-rw-r--r-- | arch/ia64/include/asm/machvec_init.h | 24 | ||||
-rw-r--r-- | arch/ia64/include/asm/mmiowb.h | 12 | ||||
-rw-r--r-- | arch/ia64/include/asm/pci.h | 6 | ||||
-rw-r--r-- | arch/ia64/include/asm/switch_to.h | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/iosapic.c | 5 | ||||
-rw-r--r-- | arch/ia64/kernel/irq.c | 12 | ||||
-rw-r--r-- | arch/ia64/kernel/irq_ia64.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/machine_kexec.c | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/machvec.c | 7 | ||||
-rw-r--r-- | arch/ia64/kernel/mca.c | 10 | ||||
-rw-r--r-- | arch/ia64/kernel/msi_ia64.c | 21 | ||||
-rw-r--r-- | arch/ia64/kernel/sal.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/setup.c | 1 | ||||
-rw-r--r-- | arch/ia64/kernel/smp.c | 8 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/time.c | 2 | ||||
-rw-r--r-- | arch/ia64/lib/io.c | 114 | ||||
-rw-r--r-- | arch/ia64/mm/discontig.c | 3 | ||||
-rw-r--r-- | arch/ia64/mm/tlb.c | 6 | ||||
-rw-r--r-- | arch/ia64/pci/pci.c | 13 |
23 files changed, 67 insertions, 669 deletions
diff --git a/arch/ia64/include/asm/hw_irq.h b/arch/ia64/include/asm/hw_irq.h index 5dd3c6485c3a..12808111a767 100644 --- a/arch/ia64/include/asm/hw_irq.h +++ b/arch/ia64/include/asm/hw_irq.h | |||
@@ -137,26 +137,10 @@ static inline void irq_complete_move(unsigned int irq) {} | |||
137 | 137 | ||
138 | static inline void ia64_native_resend_irq(unsigned int vector) | 138 | static inline void ia64_native_resend_irq(unsigned int vector) |
139 | { | 139 | { |
140 | platform_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0); | 140 | ia64_send_ipi(smp_processor_id(), vector, IA64_IPI_DM_INT, 0); |
141 | } | 141 | } |
142 | 142 | ||
143 | /* | 143 | /* |
144 | * Default implementations for the irq-descriptor API: | ||
145 | */ | ||
146 | #ifndef CONFIG_IA64_GENERIC | ||
147 | static inline ia64_vector __ia64_irq_to_vector(int irq) | ||
148 | { | ||
149 | return irq_cfg[irq].vector; | ||
150 | } | ||
151 | |||
152 | static inline unsigned int | ||
153 | __ia64_local_vector_to_irq (ia64_vector vec) | ||
154 | { | ||
155 | return __this_cpu_read(vector_irq[vec]); | ||
156 | } | ||
157 | #endif | ||
158 | |||
159 | /* | ||
160 | * Next follows the irq descriptor interface. On IA-64, each CPU supports 256 interrupt | 144 | * Next follows the irq descriptor interface. On IA-64, each CPU supports 256 interrupt |
161 | * vectors. On smaller systems, there is a one-to-one correspondence between interrupt | 145 | * vectors. On smaller systems, there is a one-to-one correspondence between interrupt |
162 | * vectors and the Linux irq numbers. However, larger systems may have multiple interrupt | 146 | * vectors and the Linux irq numbers. However, larger systems may have multiple interrupt |
@@ -170,7 +154,7 @@ __ia64_local_vector_to_irq (ia64_vector vec) | |||
170 | static inline ia64_vector | 154 | static inline ia64_vector |
171 | irq_to_vector (int irq) | 155 | irq_to_vector (int irq) |
172 | { | 156 | { |
173 | return platform_irq_to_vector(irq); | 157 | return irq_cfg[irq].vector; |
174 | } | 158 | } |
175 | 159 | ||
176 | /* | 160 | /* |
@@ -181,7 +165,7 @@ irq_to_vector (int irq) | |||
181 | static inline unsigned int | 165 | static inline unsigned int |
182 | local_vector_to_irq (ia64_vector vec) | 166 | local_vector_to_irq (ia64_vector vec) |
183 | { | 167 | { |
184 | return platform_local_vector_to_irq(vec); | 168 | return __this_cpu_read(vector_irq[vec]); |
185 | } | 169 | } |
186 | 170 | ||
187 | #endif /* _ASM_IA64_HW_IRQ_H */ | 171 | #endif /* _ASM_IA64_HW_IRQ_H */ |
diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h index a511d62d447a..edd5c262d360 100644 --- a/arch/ia64/include/asm/io.h +++ b/arch/ia64/include/asm/io.h | |||
@@ -129,25 +129,6 @@ __ia64_mk_io_addr (unsigned long port) | |||
129 | return (void *) (space->mmio_base | offset); | 129 | return (void *) (space->mmio_base | offset); |
130 | } | 130 | } |
131 | 131 | ||
132 | #define __ia64_inb ___ia64_inb | ||
133 | #define __ia64_inw ___ia64_inw | ||
134 | #define __ia64_inl ___ia64_inl | ||
135 | #define __ia64_outb ___ia64_outb | ||
136 | #define __ia64_outw ___ia64_outw | ||
137 | #define __ia64_outl ___ia64_outl | ||
138 | #define __ia64_readb ___ia64_readb | ||
139 | #define __ia64_readw ___ia64_readw | ||
140 | #define __ia64_readl ___ia64_readl | ||
141 | #define __ia64_readq ___ia64_readq | ||
142 | #define __ia64_readb_relaxed ___ia64_readb | ||
143 | #define __ia64_readw_relaxed ___ia64_readw | ||
144 | #define __ia64_readl_relaxed ___ia64_readl | ||
145 | #define __ia64_readq_relaxed ___ia64_readq | ||
146 | #define __ia64_writeb ___ia64_writeb | ||
147 | #define __ia64_writew ___ia64_writew | ||
148 | #define __ia64_writel ___ia64_writel | ||
149 | #define __ia64_writeq ___ia64_writeq | ||
150 | |||
151 | /* | 132 | /* |
152 | * For the in/out routines, we need to do "mf.a" _after_ doing the I/O access to ensure | 133 | * For the in/out routines, we need to do "mf.a" _after_ doing the I/O access to ensure |
153 | * that the access has completed before executing other I/O accesses. Since we're doing | 134 | * that the access has completed before executing other I/O accesses. Since we're doing |
@@ -156,8 +137,8 @@ __ia64_mk_io_addr (unsigned long port) | |||
156 | * during optimization, which is why we use "volatile" pointers. | 137 | * during optimization, which is why we use "volatile" pointers. |
157 | */ | 138 | */ |
158 | 139 | ||
159 | static inline unsigned int | 140 | #define inb inb |
160 | ___ia64_inb (unsigned long port) | 141 | static inline unsigned int inb(unsigned long port) |
161 | { | 142 | { |
162 | volatile unsigned char *addr = __ia64_mk_io_addr(port); | 143 | volatile unsigned char *addr = __ia64_mk_io_addr(port); |
163 | unsigned char ret; | 144 | unsigned char ret; |
@@ -167,8 +148,8 @@ ___ia64_inb (unsigned long port) | |||
167 | return ret; | 148 | return ret; |
168 | } | 149 | } |
169 | 150 | ||
170 | static inline unsigned int | 151 | #define inw inw |
171 | ___ia64_inw (unsigned long port) | 152 | static inline unsigned int inw(unsigned long port) |
172 | { | 153 | { |
173 | volatile unsigned short *addr = __ia64_mk_io_addr(port); | 154 | volatile unsigned short *addr = __ia64_mk_io_addr(port); |
174 | unsigned short ret; | 155 | unsigned short ret; |
@@ -178,8 +159,8 @@ ___ia64_inw (unsigned long port) | |||
178 | return ret; | 159 | return ret; |
179 | } | 160 | } |
180 | 161 | ||
181 | static inline unsigned int | 162 | #define inl inl |
182 | ___ia64_inl (unsigned long port) | 163 | static inline unsigned int inl(unsigned long port) |
183 | { | 164 | { |
184 | volatile unsigned int *addr = __ia64_mk_io_addr(port); | 165 | volatile unsigned int *addr = __ia64_mk_io_addr(port); |
185 | unsigned int ret; | 166 | unsigned int ret; |
@@ -189,8 +170,8 @@ ___ia64_inl (unsigned long port) | |||
189 | return ret; | 170 | return ret; |
190 | } | 171 | } |
191 | 172 | ||
192 | static inline void | 173 | #define outb outb |
193 | ___ia64_outb (unsigned char val, unsigned long port) | 174 | static inline void outb(unsigned char val, unsigned long port) |
194 | { | 175 | { |
195 | volatile unsigned char *addr = __ia64_mk_io_addr(port); | 176 | volatile unsigned char *addr = __ia64_mk_io_addr(port); |
196 | 177 | ||
@@ -198,8 +179,8 @@ ___ia64_outb (unsigned char val, unsigned long port) | |||
198 | __ia64_mf_a(); | 179 | __ia64_mf_a(); |
199 | } | 180 | } |
200 | 181 | ||
201 | static inline void | 182 | #define outw outw |
202 | ___ia64_outw (unsigned short val, unsigned long port) | 183 | static inline void outw(unsigned short val, unsigned long port) |
203 | { | 184 | { |
204 | volatile unsigned short *addr = __ia64_mk_io_addr(port); | 185 | volatile unsigned short *addr = __ia64_mk_io_addr(port); |
205 | 186 | ||
@@ -207,8 +188,8 @@ ___ia64_outw (unsigned short val, unsigned long port) | |||
207 | __ia64_mf_a(); | 188 | __ia64_mf_a(); |
208 | } | 189 | } |
209 | 190 | ||
210 | static inline void | 191 | #define outl outl |
211 | ___ia64_outl (unsigned int val, unsigned long port) | 192 | static inline void outl(unsigned int val, unsigned long port) |
212 | { | 193 | { |
213 | volatile unsigned int *addr = __ia64_mk_io_addr(port); | 194 | volatile unsigned int *addr = __ia64_mk_io_addr(port); |
214 | 195 | ||
@@ -216,199 +197,63 @@ ___ia64_outl (unsigned int val, unsigned long port) | |||
216 | __ia64_mf_a(); | 197 | __ia64_mf_a(); |
217 | } | 198 | } |
218 | 199 | ||
219 | static inline void | 200 | #define insb insb |
220 | __insb (unsigned long port, void *dst, unsigned long count) | 201 | static inline void insb(unsigned long port, void *dst, unsigned long count) |
221 | { | 202 | { |
222 | unsigned char *dp = dst; | 203 | unsigned char *dp = dst; |
223 | 204 | ||
224 | while (count--) | 205 | while (count--) |
225 | *dp++ = platform_inb(port); | 206 | *dp++ = inb(port); |
226 | } | 207 | } |
227 | 208 | ||
228 | static inline void | 209 | #define insw insw |
229 | __insw (unsigned long port, void *dst, unsigned long count) | 210 | static inline void insw(unsigned long port, void *dst, unsigned long count) |
230 | { | 211 | { |
231 | unsigned short *dp = dst; | 212 | unsigned short *dp = dst; |
232 | 213 | ||
233 | while (count--) | 214 | while (count--) |
234 | put_unaligned(platform_inw(port), dp++); | 215 | put_unaligned(inw(port), dp++); |
235 | } | 216 | } |
236 | 217 | ||
237 | static inline void | 218 | #define insl insl |
238 | __insl (unsigned long port, void *dst, unsigned long count) | 219 | static inline void insl(unsigned long port, void *dst, unsigned long count) |
239 | { | 220 | { |
240 | unsigned int *dp = dst; | 221 | unsigned int *dp = dst; |
241 | 222 | ||
242 | while (count--) | 223 | while (count--) |
243 | put_unaligned(platform_inl(port), dp++); | 224 | put_unaligned(inl(port), dp++); |
244 | } | 225 | } |
245 | 226 | ||
246 | static inline void | 227 | #define outsb outsb |
247 | __outsb (unsigned long port, const void *src, unsigned long count) | 228 | static inline void outsb(unsigned long port, const void *src, |
229 | unsigned long count) | ||
248 | { | 230 | { |
249 | const unsigned char *sp = src; | 231 | const unsigned char *sp = src; |
250 | 232 | ||
251 | while (count--) | 233 | while (count--) |
252 | platform_outb(*sp++, port); | 234 | outb(*sp++, port); |
253 | } | 235 | } |
254 | 236 | ||
255 | static inline void | 237 | #define outsw outsw |
256 | __outsw (unsigned long port, const void *src, unsigned long count) | 238 | static inline void outsw(unsigned long port, const void *src, |
239 | unsigned long count) | ||
257 | { | 240 | { |
258 | const unsigned short *sp = src; | 241 | const unsigned short *sp = src; |
259 | 242 | ||
260 | while (count--) | 243 | while (count--) |
261 | platform_outw(get_unaligned(sp++), port); | 244 | outw(get_unaligned(sp++), port); |
262 | } | 245 | } |
263 | 246 | ||
264 | static inline void | 247 | #define outsl outsl |
265 | __outsl (unsigned long port, const void *src, unsigned long count) | 248 | static inline void outsl(unsigned long port, const void *src, |
249 | unsigned long count) | ||
266 | { | 250 | { |
267 | const unsigned int *sp = src; | 251 | const unsigned int *sp = src; |
268 | 252 | ||
269 | while (count--) | 253 | while (count--) |
270 | platform_outl(get_unaligned(sp++), port); | 254 | outl(get_unaligned(sp++), port); |
271 | } | 255 | } |
272 | 256 | ||
273 | /* | ||
274 | * Unfortunately, some platforms are broken and do not follow the IA-64 architecture | ||
275 | * specification regarding legacy I/O support. Thus, we have to make these operations | ||
276 | * platform dependent... | ||
277 | */ | ||
278 | #define __inb platform_inb | ||
279 | #define __inw platform_inw | ||
280 | #define __inl platform_inl | ||
281 | #define __outb platform_outb | ||
282 | #define __outw platform_outw | ||
283 | #define __outl platform_outl | ||
284 | |||
285 | #define inb(p) __inb(p) | ||
286 | #define inw(p) __inw(p) | ||
287 | #define inl(p) __inl(p) | ||
288 | #define insb(p,d,c) __insb(p,d,c) | ||
289 | #define insw(p,d,c) __insw(p,d,c) | ||
290 | #define insl(p,d,c) __insl(p,d,c) | ||
291 | #define outb(v,p) __outb(v,p) | ||
292 | #define outw(v,p) __outw(v,p) | ||
293 | #define outl(v,p) __outl(v,p) | ||
294 | #define outsb(p,s,c) __outsb(p,s,c) | ||
295 | #define outsw(p,s,c) __outsw(p,s,c) | ||
296 | #define outsl(p,s,c) __outsl(p,s,c) | ||
297 | |||
298 | /* | ||
299 | * The address passed to these functions are ioremap()ped already. | ||
300 | * | ||
301 | * We need these to be machine vectors since some platforms don't provide | ||
302 | * DMA coherence via PIO reads (PCI drivers and the spec imply that this is | ||
303 | * a good idea). Writes are ok though for all existing ia64 platforms (and | ||
304 | * hopefully it'll stay that way). | ||
305 | */ | ||
306 | static inline unsigned char | ||
307 | ___ia64_readb (const volatile void __iomem *addr) | ||
308 | { | ||
309 | return *(volatile unsigned char __force *)addr; | ||
310 | } | ||
311 | |||
312 | static inline unsigned short | ||
313 | ___ia64_readw (const volatile void __iomem *addr) | ||
314 | { | ||
315 | return *(volatile unsigned short __force *)addr; | ||
316 | } | ||
317 | |||
318 | static inline unsigned int | ||
319 | ___ia64_readl (const volatile void __iomem *addr) | ||
320 | { | ||
321 | return *(volatile unsigned int __force *) addr; | ||
322 | } | ||
323 | |||
324 | static inline unsigned long | ||
325 | ___ia64_readq (const volatile void __iomem *addr) | ||
326 | { | ||
327 | return *(volatile unsigned long __force *) addr; | ||
328 | } | ||
329 | |||
330 | static inline void | ||
331 | __writeb (unsigned char val, volatile void __iomem *addr) | ||
332 | { | ||
333 | *(volatile unsigned char __force *) addr = val; | ||
334 | } | ||
335 | |||
336 | static inline void | ||
337 | __writew (unsigned short val, volatile void __iomem *addr) | ||
338 | { | ||
339 | *(volatile unsigned short __force *) addr = val; | ||
340 | } | ||
341 | |||
342 | static inline void | ||
343 | __writel (unsigned int val, volatile void __iomem *addr) | ||
344 | { | ||
345 | *(volatile unsigned int __force *) addr = val; | ||
346 | } | ||
347 | |||
348 | static inline void | ||
349 | __writeq (unsigned long val, volatile void __iomem *addr) | ||
350 | { | ||
351 | *(volatile unsigned long __force *) addr = val; | ||
352 | } | ||
353 | |||
354 | #define __readb platform_readb | ||
355 | #define __readw platform_readw | ||
356 | #define __readl platform_readl | ||
357 | #define __readq platform_readq | ||
358 | #define __readb_relaxed platform_readb_relaxed | ||
359 | #define __readw_relaxed platform_readw_relaxed | ||
360 | #define __readl_relaxed platform_readl_relaxed | ||
361 | #define __readq_relaxed platform_readq_relaxed | ||
362 | |||
363 | #define readb(a) __readb((a)) | ||
364 | #define readw(a) __readw((a)) | ||
365 | #define readl(a) __readl((a)) | ||
366 | #define readq(a) __readq((a)) | ||
367 | #define readb_relaxed(a) __readb_relaxed((a)) | ||
368 | #define readw_relaxed(a) __readw_relaxed((a)) | ||
369 | #define readl_relaxed(a) __readl_relaxed((a)) | ||
370 | #define readq_relaxed(a) __readq_relaxed((a)) | ||
371 | #define __raw_readb readb | ||
372 | #define __raw_readw readw | ||
373 | #define __raw_readl readl | ||
374 | #define __raw_readq readq | ||
375 | #define __raw_readb_relaxed readb_relaxed | ||
376 | #define __raw_readw_relaxed readw_relaxed | ||
377 | #define __raw_readl_relaxed readl_relaxed | ||
378 | #define __raw_readq_relaxed readq_relaxed | ||
379 | #define writeb(v,a) __writeb((v), (a)) | ||
380 | #define writew(v,a) __writew((v), (a)) | ||
381 | #define writel(v,a) __writel((v), (a)) | ||
382 | #define writeq(v,a) __writeq((v), (a)) | ||
383 | #define writeb_relaxed(v,a) __writeb((v), (a)) | ||
384 | #define writew_relaxed(v,a) __writew((v), (a)) | ||
385 | #define writel_relaxed(v,a) __writel((v), (a)) | ||
386 | #define writeq_relaxed(v,a) __writeq((v), (a)) | ||
387 | #define __raw_writeb writeb | ||
388 | #define __raw_writew writew | ||
389 | #define __raw_writel writel | ||
390 | #define __raw_writeq writeq | ||
391 | |||
392 | #ifndef inb_p | ||
393 | # define inb_p inb | ||
394 | #endif | ||
395 | #ifndef inw_p | ||
396 | # define inw_p inw | ||
397 | #endif | ||
398 | #ifndef inl_p | ||
399 | # define inl_p inl | ||
400 | #endif | ||
401 | |||
402 | #ifndef outb_p | ||
403 | # define outb_p outb | ||
404 | #endif | ||
405 | #ifndef outw_p | ||
406 | # define outw_p outw | ||
407 | #endif | ||
408 | #ifndef outl_p | ||
409 | # define outl_p outl | ||
410 | #endif | ||
411 | |||
412 | # ifdef __KERNEL__ | 257 | # ifdef __KERNEL__ |
413 | 258 | ||
414 | extern void __iomem * ioremap(unsigned long offset, unsigned long size); | 259 | extern void __iomem * ioremap(unsigned long offset, unsigned long size); |
diff --git a/arch/ia64/include/asm/machvec.h b/arch/ia64/include/asm/machvec.h index d657f59d4fb3..f426a9829595 100644 --- a/arch/ia64/include/asm/machvec.h +++ b/arch/ia64/include/asm/machvec.h | |||
@@ -13,83 +13,19 @@ | |||
13 | 13 | ||
14 | #include <linux/types.h> | 14 | #include <linux/types.h> |
15 | 15 | ||
16 | /* forward declarations: */ | ||
17 | struct device; | 16 | struct device; |
18 | struct pt_regs; | ||
19 | struct scatterlist; | ||
20 | struct page; | ||
21 | struct mm_struct; | ||
22 | struct pci_bus; | ||
23 | struct task_struct; | ||
24 | struct pci_dev; | ||
25 | struct msi_desc; | ||
26 | 17 | ||
27 | typedef void ia64_mv_setup_t (char **); | 18 | typedef void ia64_mv_setup_t (char **); |
28 | typedef void ia64_mv_cpu_init_t (void); | ||
29 | typedef void ia64_mv_irq_init_t (void); | 19 | typedef void ia64_mv_irq_init_t (void); |
30 | typedef void ia64_mv_send_ipi_t (int, int, int, int); | ||
31 | typedef void ia64_mv_timer_interrupt_t (int, void *); | ||
32 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); | ||
33 | typedef u8 ia64_mv_irq_to_vector (int); | ||
34 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); | ||
35 | typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); | ||
36 | typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, | ||
37 | u8 size); | ||
38 | typedef int ia64_mv_pci_legacy_write_t (struct pci_bus *, u16 port, u32 val, | ||
39 | u8 size); | ||
40 | typedef void ia64_mv_migrate_t(struct task_struct * task); | ||
41 | typedef void ia64_mv_pci_fixup_bus_t (struct pci_bus *); | ||
42 | typedef void ia64_mv_kernel_launch_event_t(void); | ||
43 | |||
44 | /* DMA-mapping interface: */ | ||
45 | typedef void ia64_mv_dma_init (void); | 20 | typedef void ia64_mv_dma_init (void); |
46 | typedef const struct dma_map_ops *ia64_mv_dma_get_ops(struct device *); | 21 | typedef const struct dma_map_ops *ia64_mv_dma_get_ops(struct device *); |
47 | 22 | ||
48 | /* | ||
49 | * WARNING: The legacy I/O space is _architected_. Platforms are | ||
50 | * expected to follow this architected model (see Section 10.7 in the | ||
51 | * IA-64 Architecture Software Developer's Manual). Unfortunately, | ||
52 | * some broken machines do not follow that model, which is why we have | ||
53 | * to make the inX/outX operations part of the machine vector. | ||
54 | * Platform designers should follow the architected model whenever | ||
55 | * possible. | ||
56 | */ | ||
57 | typedef unsigned int ia64_mv_inb_t (unsigned long); | ||
58 | typedef unsigned int ia64_mv_inw_t (unsigned long); | ||
59 | typedef unsigned int ia64_mv_inl_t (unsigned long); | ||
60 | typedef void ia64_mv_outb_t (unsigned char, unsigned long); | ||
61 | typedef void ia64_mv_outw_t (unsigned short, unsigned long); | ||
62 | typedef void ia64_mv_outl_t (unsigned int, unsigned long); | ||
63 | typedef void ia64_mv_mmiowb_t (void); | ||
64 | typedef unsigned char ia64_mv_readb_t (const volatile void __iomem *); | ||
65 | typedef unsigned short ia64_mv_readw_t (const volatile void __iomem *); | ||
66 | typedef unsigned int ia64_mv_readl_t (const volatile void __iomem *); | ||
67 | typedef unsigned long ia64_mv_readq_t (const volatile void __iomem *); | ||
68 | typedef unsigned char ia64_mv_readb_relaxed_t (const volatile void __iomem *); | ||
69 | typedef unsigned short ia64_mv_readw_relaxed_t (const volatile void __iomem *); | ||
70 | typedef unsigned int ia64_mv_readl_relaxed_t (const volatile void __iomem *); | ||
71 | typedef unsigned long ia64_mv_readq_relaxed_t (const volatile void __iomem *); | ||
72 | |||
73 | typedef int ia64_mv_setup_msi_irq_t (struct pci_dev *pdev, struct msi_desc *); | ||
74 | typedef void ia64_mv_teardown_msi_irq_t (unsigned int irq); | ||
75 | |||
76 | static inline void | 23 | static inline void |
77 | machvec_noop (void) | 24 | machvec_noop (void) |
78 | { | 25 | { |
79 | } | 26 | } |
80 | 27 | ||
81 | static inline void | ||
82 | machvec_noop_task (struct task_struct *task) | ||
83 | { | ||
84 | } | ||
85 | |||
86 | static inline void | ||
87 | machvec_noop_bus (struct pci_bus *bus) | ||
88 | { | ||
89 | } | ||
90 | |||
91 | extern void machvec_setup (char **); | 28 | extern void machvec_setup (char **); |
92 | extern void machvec_timer_interrupt (int, void *); | ||
93 | 29 | ||
94 | # if defined (CONFIG_IA64_HP_SIM) | 30 | # if defined (CONFIG_IA64_HP_SIM) |
95 | # include <asm/machvec_hpsim.h> | 31 | # include <asm/machvec_hpsim.h> |
@@ -110,38 +46,9 @@ extern void machvec_timer_interrupt (int, void *); | |||
110 | # else | 46 | # else |
111 | # define ia64_platform_name ia64_mv.name | 47 | # define ia64_platform_name ia64_mv.name |
112 | # define platform_setup ia64_mv.setup | 48 | # define platform_setup ia64_mv.setup |
113 | # define platform_cpu_init ia64_mv.cpu_init | ||
114 | # define platform_irq_init ia64_mv.irq_init | 49 | # define platform_irq_init ia64_mv.irq_init |
115 | # define platform_send_ipi ia64_mv.send_ipi | ||
116 | # define platform_timer_interrupt ia64_mv.timer_interrupt | ||
117 | # define platform_global_tlb_purge ia64_mv.global_tlb_purge | ||
118 | # define platform_dma_init ia64_mv.dma_init | 50 | # define platform_dma_init ia64_mv.dma_init |
119 | # define platform_dma_get_ops ia64_mv.dma_get_ops | 51 | # define platform_dma_get_ops ia64_mv.dma_get_ops |
120 | # define platform_irq_to_vector ia64_mv.irq_to_vector | ||
121 | # define platform_local_vector_to_irq ia64_mv.local_vector_to_irq | ||
122 | # define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem | ||
123 | # define platform_pci_legacy_read ia64_mv.pci_legacy_read | ||
124 | # define platform_pci_legacy_write ia64_mv.pci_legacy_write | ||
125 | # define platform_inb ia64_mv.inb | ||
126 | # define platform_inw ia64_mv.inw | ||
127 | # define platform_inl ia64_mv.inl | ||
128 | # define platform_outb ia64_mv.outb | ||
129 | # define platform_outw ia64_mv.outw | ||
130 | # define platform_outl ia64_mv.outl | ||
131 | # define platform_mmiowb ia64_mv.mmiowb | ||
132 | # define platform_readb ia64_mv.readb | ||
133 | # define platform_readw ia64_mv.readw | ||
134 | # define platform_readl ia64_mv.readl | ||
135 | # define platform_readq ia64_mv.readq | ||
136 | # define platform_readb_relaxed ia64_mv.readb_relaxed | ||
137 | # define platform_readw_relaxed ia64_mv.readw_relaxed | ||
138 | # define platform_readl_relaxed ia64_mv.readl_relaxed | ||
139 | # define platform_readq_relaxed ia64_mv.readq_relaxed | ||
140 | # define platform_migrate ia64_mv.migrate | ||
141 | # define platform_setup_msi_irq ia64_mv.setup_msi_irq | ||
142 | # define platform_teardown_msi_irq ia64_mv.teardown_msi_irq | ||
143 | # define platform_pci_fixup_bus ia64_mv.pci_fixup_bus | ||
144 | # define platform_kernel_launch_event ia64_mv.kernel_launch_event | ||
145 | # endif | 52 | # endif |
146 | 53 | ||
147 | /* __attribute__((__aligned__(16))) is required to make size of the | 54 | /* __attribute__((__aligned__(16))) is required to make size of the |
@@ -152,76 +59,18 @@ extern void machvec_timer_interrupt (int, void *); | |||
152 | struct ia64_machine_vector { | 59 | struct ia64_machine_vector { |
153 | const char *name; | 60 | const char *name; |
154 | ia64_mv_setup_t *setup; | 61 | ia64_mv_setup_t *setup; |
155 | ia64_mv_cpu_init_t *cpu_init; | ||
156 | ia64_mv_irq_init_t *irq_init; | 62 | ia64_mv_irq_init_t *irq_init; |
157 | ia64_mv_send_ipi_t *send_ipi; | ||
158 | ia64_mv_timer_interrupt_t *timer_interrupt; | ||
159 | ia64_mv_global_tlb_purge_t *global_tlb_purge; | ||
160 | ia64_mv_dma_init *dma_init; | 63 | ia64_mv_dma_init *dma_init; |
161 | ia64_mv_dma_get_ops *dma_get_ops; | 64 | ia64_mv_dma_get_ops *dma_get_ops; |
162 | ia64_mv_irq_to_vector *irq_to_vector; | ||
163 | ia64_mv_local_vector_to_irq *local_vector_to_irq; | ||
164 | ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; | ||
165 | ia64_mv_pci_legacy_read_t *pci_legacy_read; | ||
166 | ia64_mv_pci_legacy_write_t *pci_legacy_write; | ||
167 | ia64_mv_inb_t *inb; | ||
168 | ia64_mv_inw_t *inw; | ||
169 | ia64_mv_inl_t *inl; | ||
170 | ia64_mv_outb_t *outb; | ||
171 | ia64_mv_outw_t *outw; | ||
172 | ia64_mv_outl_t *outl; | ||
173 | ia64_mv_mmiowb_t *mmiowb; | ||
174 | ia64_mv_readb_t *readb; | ||
175 | ia64_mv_readw_t *readw; | ||
176 | ia64_mv_readl_t *readl; | ||
177 | ia64_mv_readq_t *readq; | ||
178 | ia64_mv_readb_relaxed_t *readb_relaxed; | ||
179 | ia64_mv_readw_relaxed_t *readw_relaxed; | ||
180 | ia64_mv_readl_relaxed_t *readl_relaxed; | ||
181 | ia64_mv_readq_relaxed_t *readq_relaxed; | ||
182 | ia64_mv_migrate_t *migrate; | ||
183 | ia64_mv_setup_msi_irq_t *setup_msi_irq; | ||
184 | ia64_mv_teardown_msi_irq_t *teardown_msi_irq; | ||
185 | ia64_mv_pci_fixup_bus_t *pci_fixup_bus; | ||
186 | ia64_mv_kernel_launch_event_t *kernel_launch_event; | ||
187 | } __attribute__((__aligned__(16))); /* align attrib? see above comment */ | 65 | } __attribute__((__aligned__(16))); /* align attrib? see above comment */ |
188 | 66 | ||
189 | #define MACHVEC_INIT(name) \ | 67 | #define MACHVEC_INIT(name) \ |
190 | { \ | 68 | { \ |
191 | #name, \ | 69 | #name, \ |
192 | platform_setup, \ | 70 | platform_setup, \ |
193 | platform_cpu_init, \ | ||
194 | platform_irq_init, \ | 71 | platform_irq_init, \ |
195 | platform_send_ipi, \ | ||
196 | platform_timer_interrupt, \ | ||
197 | platform_global_tlb_purge, \ | ||
198 | platform_dma_init, \ | 72 | platform_dma_init, \ |
199 | platform_dma_get_ops, \ | 73 | platform_dma_get_ops, \ |
200 | platform_irq_to_vector, \ | ||
201 | platform_local_vector_to_irq, \ | ||
202 | platform_pci_get_legacy_mem, \ | ||
203 | platform_pci_legacy_read, \ | ||
204 | platform_pci_legacy_write, \ | ||
205 | platform_inb, \ | ||
206 | platform_inw, \ | ||
207 | platform_inl, \ | ||
208 | platform_outb, \ | ||
209 | platform_outw, \ | ||
210 | platform_outl, \ | ||
211 | platform_mmiowb, \ | ||
212 | platform_readb, \ | ||
213 | platform_readw, \ | ||
214 | platform_readl, \ | ||
215 | platform_readq, \ | ||
216 | platform_readb_relaxed, \ | ||
217 | platform_readw_relaxed, \ | ||
218 | platform_readl_relaxed, \ | ||
219 | platform_readq_relaxed, \ | ||
220 | platform_migrate, \ | ||
221 | platform_setup_msi_irq, \ | ||
222 | platform_teardown_msi_irq, \ | ||
223 | platform_pci_fixup_bus, \ | ||
224 | platform_kernel_launch_event \ | ||
225 | } | 74 | } |
226 | 75 | ||
227 | extern struct ia64_machine_vector ia64_mv; | 76 | extern struct ia64_machine_vector ia64_mv; |
@@ -242,104 +91,14 @@ extern const struct dma_map_ops *dma_get_ops(struct device *); | |||
242 | #ifndef platform_setup | 91 | #ifndef platform_setup |
243 | # define platform_setup machvec_setup | 92 | # define platform_setup machvec_setup |
244 | #endif | 93 | #endif |
245 | #ifndef platform_cpu_init | ||
246 | # define platform_cpu_init machvec_noop | ||
247 | #endif | ||
248 | #ifndef platform_irq_init | 94 | #ifndef platform_irq_init |
249 | # define platform_irq_init machvec_noop | 95 | # define platform_irq_init machvec_noop |
250 | #endif | 96 | #endif |
251 | |||
252 | #ifndef platform_send_ipi | ||
253 | # define platform_send_ipi ia64_send_ipi /* default to architected version */ | ||
254 | #endif | ||
255 | #ifndef platform_timer_interrupt | ||
256 | # define platform_timer_interrupt machvec_timer_interrupt | ||
257 | #endif | ||
258 | #ifndef platform_global_tlb_purge | ||
259 | # define platform_global_tlb_purge ia64_global_tlb_purge /* default to architected version */ | ||
260 | #endif | ||
261 | #ifndef platform_kernel_launch_event | ||
262 | # define platform_kernel_launch_event machvec_noop | ||
263 | #endif | ||
264 | #ifndef platform_dma_init | 97 | #ifndef platform_dma_init |
265 | # define platform_dma_init swiotlb_dma_init | 98 | # define platform_dma_init swiotlb_dma_init |
266 | #endif | 99 | #endif |
267 | #ifndef platform_dma_get_ops | 100 | #ifndef platform_dma_get_ops |
268 | # define platform_dma_get_ops dma_get_ops | 101 | # define platform_dma_get_ops dma_get_ops |
269 | #endif | 102 | #endif |
270 | #ifndef platform_irq_to_vector | ||
271 | # define platform_irq_to_vector __ia64_irq_to_vector | ||
272 | #endif | ||
273 | #ifndef platform_local_vector_to_irq | ||
274 | # define platform_local_vector_to_irq __ia64_local_vector_to_irq | ||
275 | #endif | ||
276 | #ifndef platform_pci_get_legacy_mem | ||
277 | # define platform_pci_get_legacy_mem ia64_pci_get_legacy_mem | ||
278 | #endif | ||
279 | #ifndef platform_pci_legacy_read | ||
280 | # define platform_pci_legacy_read ia64_pci_legacy_read | ||
281 | extern int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size); | ||
282 | #endif | ||
283 | #ifndef platform_pci_legacy_write | ||
284 | # define platform_pci_legacy_write ia64_pci_legacy_write | ||
285 | extern int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size); | ||
286 | #endif | ||
287 | #ifndef platform_inb | ||
288 | # define platform_inb __ia64_inb | ||
289 | #endif | ||
290 | #ifndef platform_inw | ||
291 | # define platform_inw __ia64_inw | ||
292 | #endif | ||
293 | #ifndef platform_inl | ||
294 | # define platform_inl __ia64_inl | ||
295 | #endif | ||
296 | #ifndef platform_outb | ||
297 | # define platform_outb __ia64_outb | ||
298 | #endif | ||
299 | #ifndef platform_outw | ||
300 | # define platform_outw __ia64_outw | ||
301 | #endif | ||
302 | #ifndef platform_outl | ||
303 | # define platform_outl __ia64_outl | ||
304 | #endif | ||
305 | #ifndef platform_mmiowb | ||
306 | # define platform_mmiowb __ia64_mmiowb | ||
307 | #endif | ||
308 | #ifndef platform_readb | ||
309 | # define platform_readb __ia64_readb | ||
310 | #endif | ||
311 | #ifndef platform_readw | ||
312 | # define platform_readw __ia64_readw | ||
313 | #endif | ||
314 | #ifndef platform_readl | ||
315 | # define platform_readl __ia64_readl | ||
316 | #endif | ||
317 | #ifndef platform_readq | ||
318 | # define platform_readq __ia64_readq | ||
319 | #endif | ||
320 | #ifndef platform_readb_relaxed | ||
321 | # define platform_readb_relaxed __ia64_readb_relaxed | ||
322 | #endif | ||
323 | #ifndef platform_readw_relaxed | ||
324 | # define platform_readw_relaxed __ia64_readw_relaxed | ||
325 | #endif | ||
326 | #ifndef platform_readl_relaxed | ||
327 | # define platform_readl_relaxed __ia64_readl_relaxed | ||
328 | #endif | ||
329 | #ifndef platform_readq_relaxed | ||
330 | # define platform_readq_relaxed __ia64_readq_relaxed | ||
331 | #endif | ||
332 | #ifndef platform_migrate | ||
333 | # define platform_migrate machvec_noop_task | ||
334 | #endif | ||
335 | #ifndef platform_setup_msi_irq | ||
336 | # define platform_setup_msi_irq ((ia64_mv_setup_msi_irq_t*)NULL) | ||
337 | #endif | ||
338 | #ifndef platform_teardown_msi_irq | ||
339 | # define platform_teardown_msi_irq ((ia64_mv_teardown_msi_irq_t*)NULL) | ||
340 | #endif | ||
341 | #ifndef platform_pci_fixup_bus | ||
342 | # define platform_pci_fixup_bus machvec_noop_bus | ||
343 | #endif | ||
344 | 103 | ||
345 | #endif /* _ASM_IA64_MACHVEC_H */ | 104 | #endif /* _ASM_IA64_MACHVEC_H */ |
diff --git a/arch/ia64/include/asm/machvec_init.h b/arch/ia64/include/asm/machvec_init.h index 2aafb69a3787..7a82e3ea0aff 100644 --- a/arch/ia64/include/asm/machvec_init.h +++ b/arch/ia64/include/asm/machvec_init.h | |||
@@ -2,30 +2,6 @@ | |||
2 | #include <asm/iommu.h> | 2 | #include <asm/iommu.h> |
3 | #include <asm/machvec.h> | 3 | #include <asm/machvec.h> |
4 | 4 | ||
5 | extern ia64_mv_send_ipi_t ia64_send_ipi; | ||
6 | extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; | ||
7 | extern ia64_mv_irq_to_vector __ia64_irq_to_vector; | ||
8 | extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; | ||
9 | extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; | ||
10 | extern ia64_mv_pci_legacy_read_t ia64_pci_legacy_read; | ||
11 | extern ia64_mv_pci_legacy_write_t ia64_pci_legacy_write; | ||
12 | |||
13 | extern ia64_mv_inb_t __ia64_inb; | ||
14 | extern ia64_mv_inw_t __ia64_inw; | ||
15 | extern ia64_mv_inl_t __ia64_inl; | ||
16 | extern ia64_mv_outb_t __ia64_outb; | ||
17 | extern ia64_mv_outw_t __ia64_outw; | ||
18 | extern ia64_mv_outl_t __ia64_outl; | ||
19 | extern ia64_mv_mmiowb_t __ia64_mmiowb; | ||
20 | extern ia64_mv_readb_t __ia64_readb; | ||
21 | extern ia64_mv_readw_t __ia64_readw; | ||
22 | extern ia64_mv_readl_t __ia64_readl; | ||
23 | extern ia64_mv_readq_t __ia64_readq; | ||
24 | extern ia64_mv_readb_t __ia64_readb_relaxed; | ||
25 | extern ia64_mv_readw_t __ia64_readw_relaxed; | ||
26 | extern ia64_mv_readl_t __ia64_readl_relaxed; | ||
27 | extern ia64_mv_readq_t __ia64_readq_relaxed; | ||
28 | |||
29 | #define MACHVEC_HELPER(name) \ | 5 | #define MACHVEC_HELPER(name) \ |
30 | struct ia64_machine_vector machvec_##name __attribute__ ((unused, __section__ (".machvec"))) \ | 6 | struct ia64_machine_vector machvec_##name __attribute__ ((unused, __section__ (".machvec"))) \ |
31 | = MACHVEC_INIT(name); | 7 | = MACHVEC_INIT(name); |
diff --git a/arch/ia64/include/asm/mmiowb.h b/arch/ia64/include/asm/mmiowb.h index 297b85ac84a0..d67aab4ea3b4 100644 --- a/arch/ia64/include/asm/mmiowb.h +++ b/arch/ia64/include/asm/mmiowb.h | |||
@@ -3,22 +3,14 @@ | |||
3 | #ifndef _ASM_IA64_MMIOWB_H | 3 | #ifndef _ASM_IA64_MMIOWB_H |
4 | #define _ASM_IA64_MMIOWB_H | 4 | #define _ASM_IA64_MMIOWB_H |
5 | 5 | ||
6 | #include <asm/machvec.h> | ||
7 | |||
8 | /** | 6 | /** |
9 | * ___ia64_mmiowb - I/O write barrier | 7 | * mmiowb - I/O write barrier |
10 | * | 8 | * |
11 | * Ensure ordering of I/O space writes. This will make sure that writes | 9 | * Ensure ordering of I/O space writes. This will make sure that writes |
12 | * following the barrier will arrive after all previous writes. For most | 10 | * following the barrier will arrive after all previous writes. For most |
13 | * ia64 platforms, this is a simple 'mf.a' instruction. | 11 | * ia64 platforms, this is a simple 'mf.a' instruction. |
14 | */ | 12 | */ |
15 | static inline void ___ia64_mmiowb(void) | 13 | #define mmiowb() ia64_mfa() |
16 | { | ||
17 | ia64_mfa(); | ||
18 | } | ||
19 | |||
20 | #define __ia64_mmiowb ___ia64_mmiowb | ||
21 | #define mmiowb() platform_mmiowb() | ||
22 | 14 | ||
23 | #include <asm-generic/mmiowb.h> | 15 | #include <asm-generic/mmiowb.h> |
24 | 16 | ||
diff --git a/arch/ia64/include/asm/pci.h b/arch/ia64/include/asm/pci.h index 780e8744ba85..ef91b780a3f2 100644 --- a/arch/ia64/include/asm/pci.h +++ b/arch/ia64/include/asm/pci.h | |||
@@ -39,9 +39,9 @@ extern int pci_mmap_legacy_page_range(struct pci_bus *bus, | |||
39 | struct vm_area_struct *vma, | 39 | struct vm_area_struct *vma, |
40 | enum pci_mmap_state mmap_state); | 40 | enum pci_mmap_state mmap_state); |
41 | 41 | ||
42 | #define pci_get_legacy_mem platform_pci_get_legacy_mem | 42 | char *pci_get_legacy_mem(struct pci_bus *bus); |
43 | #define pci_legacy_read platform_pci_legacy_read | 43 | int pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size); |
44 | #define pci_legacy_write platform_pci_legacy_write | 44 | int pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size); |
45 | 45 | ||
46 | struct pci_controller { | 46 | struct pci_controller { |
47 | struct acpi_device *companion; | 47 | struct acpi_device *companion; |
diff --git a/arch/ia64/include/asm/switch_to.h b/arch/ia64/include/asm/switch_to.h index b10f31ec522c..9011e90a6b97 100644 --- a/arch/ia64/include/asm/switch_to.h +++ b/arch/ia64/include/asm/switch_to.h | |||
@@ -69,7 +69,6 @@ extern void ia64_load_extra (struct task_struct *task); | |||
69 | if (unlikely((current->thread.flags & IA64_THREAD_MIGRATION) && \ | 69 | if (unlikely((current->thread.flags & IA64_THREAD_MIGRATION) && \ |
70 | (task_cpu(current) != \ | 70 | (task_cpu(current) != \ |
71 | task_thread_info(current)->last_cpu))) { \ | 71 | task_thread_info(current)->last_cpu))) { \ |
72 | platform_migrate(current); \ | ||
73 | task_thread_info(current)->last_cpu = task_cpu(current); \ | 72 | task_thread_info(current)->last_cpu = task_cpu(current); \ |
74 | } \ | 73 | } \ |
75 | } while (0) | 74 | } while (0) |
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index fe6e4946672e..9e49fd006859 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -67,10 +67,7 @@ | |||
67 | * used as architecture-independent interrupt handling mechanism in Linux. | 67 | * used as architecture-independent interrupt handling mechanism in Linux. |
68 | * As an IRQ is a number, we have to have | 68 | * As an IRQ is a number, we have to have |
69 | * IA-64 interrupt vector number <-> IRQ number mapping. On smaller | 69 | * IA-64 interrupt vector number <-> IRQ number mapping. On smaller |
70 | * systems, we use one-to-one mapping between IA-64 vector and IRQ. A | 70 | * systems, we use one-to-one mapping between IA-64 vector and IRQ. |
71 | * platform can implement platform_irq_to_vector(irq) and | ||
72 | * platform_local_vector_to_irq(vector) APIs to differentiate the mapping. | ||
73 | * Please see also arch/ia64/include/asm/hw_irq.h for those APIs. | ||
74 | * | 71 | * |
75 | * To sum up, there are three levels of mappings involved: | 72 | * To sum up, there are three levels of mappings involved: |
76 | * | 73 | * |
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index 6d17d26caf98..0a8e5e585edc 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -35,18 +35,6 @@ void ack_bad_irq(unsigned int irq) | |||
35 | printk(KERN_ERR "Unexpected irq vector 0x%x on CPU %u!\n", irq, smp_processor_id()); | 35 | printk(KERN_ERR "Unexpected irq vector 0x%x on CPU %u!\n", irq, smp_processor_id()); |
36 | } | 36 | } |
37 | 37 | ||
38 | #ifdef CONFIG_IA64_GENERIC | ||
39 | ia64_vector __ia64_irq_to_vector(int irq) | ||
40 | { | ||
41 | return irq_cfg[irq].vector; | ||
42 | } | ||
43 | |||
44 | unsigned int __ia64_local_vector_to_irq (ia64_vector vec) | ||
45 | { | ||
46 | return __this_cpu_read(vector_irq[vec]); | ||
47 | } | ||
48 | #endif | ||
49 | |||
50 | /* | 38 | /* |
51 | * Interrupt statistics: | 39 | * Interrupt statistics: |
52 | */ | 40 | */ |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index ab87d6c25b15..1c81ec752b04 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -314,7 +314,7 @@ void irq_complete_move(unsigned irq) | |||
314 | cpumask_and(&cleanup_mask, &cfg->old_domain, cpu_online_mask); | 314 | cpumask_and(&cleanup_mask, &cfg->old_domain, cpu_online_mask); |
315 | cfg->move_cleanup_count = cpumask_weight(&cleanup_mask); | 315 | cfg->move_cleanup_count = cpumask_weight(&cleanup_mask); |
316 | for_each_cpu(i, &cleanup_mask) | 316 | for_each_cpu(i, &cleanup_mask) |
317 | platform_send_ipi(i, IA64_IRQ_MOVE_VECTOR, IA64_IPI_DM_INT, 0); | 317 | ia64_send_ipi(i, IA64_IRQ_MOVE_VECTOR, IA64_IPI_DM_INT, 0); |
318 | cfg->move_in_progress = 0; | 318 | cfg->move_in_progress = 0; |
319 | } | 319 | } |
320 | 320 | ||
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c index 3b1dd5496d08..efc9b568401c 100644 --- a/arch/ia64/kernel/machine_kexec.c +++ b/arch/ia64/kernel/machine_kexec.c | |||
@@ -127,7 +127,6 @@ static void ia64_machine_kexec(struct unw_frame_info *info, void *arg) | |||
127 | ia64_srlz_d(); | 127 | ia64_srlz_d(); |
128 | while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR) | 128 | while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR) |
129 | ia64_eoi(); | 129 | ia64_eoi(); |
130 | platform_kernel_launch_event(); | ||
131 | rnk = (relocate_new_kernel_t)&code_addr; | 130 | rnk = (relocate_new_kernel_t)&code_addr; |
132 | (*rnk)(image->head, image->start, ia64_boot_param, | 131 | (*rnk)(image->head, image->start, ia64_boot_param, |
133 | GRANULEROUNDDOWN((unsigned long) pal_addr)); | 132 | GRANULEROUNDDOWN((unsigned long) pal_addr)); |
diff --git a/arch/ia64/kernel/machvec.c b/arch/ia64/kernel/machvec.c index ebd82535f51b..3db3be7aaae5 100644 --- a/arch/ia64/kernel/machvec.c +++ b/arch/ia64/kernel/machvec.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <asm/page.h> | 11 | #include <asm/page.h> |
12 | 12 | ||
13 | struct ia64_machine_vector ia64_mv = { | 13 | struct ia64_machine_vector ia64_mv = { |
14 | .mmiowb = ___ia64_mmiowb | ||
15 | }; | 14 | }; |
16 | EXPORT_SYMBOL(ia64_mv); | 15 | EXPORT_SYMBOL(ia64_mv); |
17 | 16 | ||
@@ -69,9 +68,3 @@ machvec_setup (char **arg) | |||
69 | { | 68 | { |
70 | } | 69 | } |
71 | EXPORT_SYMBOL(machvec_setup); | 70 | EXPORT_SYMBOL(machvec_setup); |
72 | |||
73 | void | ||
74 | machvec_timer_interrupt (int irq, void *dev_id) | ||
75 | { | ||
76 | } | ||
77 | EXPORT_SYMBOL(machvec_timer_interrupt); | ||
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 79190d877fa7..f72b05fe918b 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -744,7 +744,7 @@ ia64_mca_cmc_vector_enable_keventd(struct work_struct *unused) | |||
744 | static void | 744 | static void |
745 | ia64_mca_wakeup(int cpu) | 745 | ia64_mca_wakeup(int cpu) |
746 | { | 746 | { |
747 | platform_send_ipi(cpu, IA64_MCA_WAKEUP_VECTOR, IA64_IPI_DM_INT, 0); | 747 | ia64_send_ipi(cpu, IA64_MCA_WAKEUP_VECTOR, IA64_IPI_DM_INT, 0); |
748 | } | 748 | } |
749 | 749 | ||
750 | /* | 750 | /* |
@@ -1490,7 +1490,7 @@ ia64_mca_cmc_int_caller(int cmc_irq, void *arg) | |||
1490 | cpuid = cpumask_next(cpuid+1, cpu_online_mask); | 1490 | cpuid = cpumask_next(cpuid+1, cpu_online_mask); |
1491 | 1491 | ||
1492 | if (cpuid < nr_cpu_ids) { | 1492 | if (cpuid < nr_cpu_ids) { |
1493 | platform_send_ipi(cpuid, IA64_CMCP_VECTOR, IA64_IPI_DM_INT, 0); | 1493 | ia64_send_ipi(cpuid, IA64_CMCP_VECTOR, IA64_IPI_DM_INT, 0); |
1494 | } else { | 1494 | } else { |
1495 | /* If no log record, switch out of polling mode */ | 1495 | /* If no log record, switch out of polling mode */ |
1496 | if (start_count == IA64_LOG_COUNT(SAL_INFO_TYPE_CMC)) { | 1496 | if (start_count == IA64_LOG_COUNT(SAL_INFO_TYPE_CMC)) { |
@@ -1523,7 +1523,7 @@ static void | |||
1523 | ia64_mca_cmc_poll (struct timer_list *unused) | 1523 | ia64_mca_cmc_poll (struct timer_list *unused) |
1524 | { | 1524 | { |
1525 | /* Trigger a CMC interrupt cascade */ | 1525 | /* Trigger a CMC interrupt cascade */ |
1526 | platform_send_ipi(cpumask_first(cpu_online_mask), IA64_CMCP_VECTOR, | 1526 | ia64_send_ipi(cpumask_first(cpu_online_mask), IA64_CMCP_VECTOR, |
1527 | IA64_IPI_DM_INT, 0); | 1527 | IA64_IPI_DM_INT, 0); |
1528 | } | 1528 | } |
1529 | 1529 | ||
@@ -1560,7 +1560,7 @@ ia64_mca_cpe_int_caller(int cpe_irq, void *arg) | |||
1560 | cpuid = cpumask_next(cpuid+1, cpu_online_mask); | 1560 | cpuid = cpumask_next(cpuid+1, cpu_online_mask); |
1561 | 1561 | ||
1562 | if (cpuid < NR_CPUS) { | 1562 | if (cpuid < NR_CPUS) { |
1563 | platform_send_ipi(cpuid, IA64_CPEP_VECTOR, IA64_IPI_DM_INT, 0); | 1563 | ia64_send_ipi(cpuid, IA64_CPEP_VECTOR, IA64_IPI_DM_INT, 0); |
1564 | } else { | 1564 | } else { |
1565 | /* | 1565 | /* |
1566 | * If a log was recorded, increase our polling frequency, | 1566 | * If a log was recorded, increase our polling frequency, |
@@ -1600,7 +1600,7 @@ static void | |||
1600 | ia64_mca_cpe_poll (struct timer_list *unused) | 1600 | ia64_mca_cpe_poll (struct timer_list *unused) |
1601 | { | 1601 | { |
1602 | /* Trigger a CPE interrupt cascade */ | 1602 | /* Trigger a CPE interrupt cascade */ |
1603 | platform_send_ipi(cpumask_first(cpu_online_mask), IA64_CPEP_VECTOR, | 1603 | ia64_send_ipi(cpumask_first(cpu_online_mask), IA64_CPEP_VECTOR, |
1604 | IA64_IPI_DM_INT, 0); | 1604 | IA64_IPI_DM_INT, 0); |
1605 | } | 1605 | } |
1606 | 1606 | ||
diff --git a/arch/ia64/kernel/msi_ia64.c b/arch/ia64/kernel/msi_ia64.c index 519d9432f407..df5c28f252e3 100644 --- a/arch/ia64/kernel/msi_ia64.c +++ b/arch/ia64/kernel/msi_ia64.c | |||
@@ -43,7 +43,7 @@ static int ia64_set_msi_irq_affinity(struct irq_data *idata, | |||
43 | } | 43 | } |
44 | #endif /* CONFIG_SMP */ | 44 | #endif /* CONFIG_SMP */ |
45 | 45 | ||
46 | int ia64_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) | 46 | int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) |
47 | { | 47 | { |
48 | struct msi_msg msg; | 48 | struct msi_msg msg; |
49 | unsigned long dest_phys_id; | 49 | unsigned long dest_phys_id; |
@@ -77,7 +77,7 @@ int ia64_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) | |||
77 | return 0; | 77 | return 0; |
78 | } | 78 | } |
79 | 79 | ||
80 | void ia64_teardown_msi_irq(unsigned int irq) | 80 | void arch_teardown_msi_irq(unsigned int irq) |
81 | { | 81 | { |
82 | destroy_irq(irq); | 82 | destroy_irq(irq); |
83 | } | 83 | } |
@@ -111,23 +111,6 @@ static struct irq_chip ia64_msi_chip = { | |||
111 | .irq_retrigger = ia64_msi_retrigger_irq, | 111 | .irq_retrigger = ia64_msi_retrigger_irq, |
112 | }; | 112 | }; |
113 | 113 | ||
114 | |||
115 | int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) | ||
116 | { | ||
117 | if (platform_setup_msi_irq) | ||
118 | return platform_setup_msi_irq(pdev, desc); | ||
119 | |||
120 | return ia64_setup_msi_irq(pdev, desc); | ||
121 | } | ||
122 | |||
123 | void arch_teardown_msi_irq(unsigned int irq) | ||
124 | { | ||
125 | if (platform_teardown_msi_irq) | ||
126 | return platform_teardown_msi_irq(irq); | ||
127 | |||
128 | return ia64_teardown_msi_irq(irq); | ||
129 | } | ||
130 | |||
131 | #ifdef CONFIG_INTEL_IOMMU | 114 | #ifdef CONFIG_INTEL_IOMMU |
132 | #ifdef CONFIG_SMP | 115 | #ifdef CONFIG_SMP |
133 | static int dmar_msi_set_affinity(struct irq_data *data, | 116 | static int dmar_msi_set_affinity(struct irq_data *data, |
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c index 17085a8078fe..c455ece977ad 100644 --- a/arch/ia64/kernel/sal.c +++ b/arch/ia64/kernel/sal.c | |||
@@ -249,7 +249,7 @@ check_sal_cache_flush (void) | |||
249 | * Send ourselves a timer interrupt, wait until it's reported, and see | 249 | * Send ourselves a timer interrupt, wait until it's reported, and see |
250 | * if SAL_CACHE_FLUSH drops it. | 250 | * if SAL_CACHE_FLUSH drops it. |
251 | */ | 251 | */ |
252 | platform_send_ipi(cpu, IA64_TIMER_VECTOR, IA64_IPI_DM_INT, 0); | 252 | ia64_send_ipi(cpu, IA64_TIMER_VECTOR, IA64_IPI_DM_INT, 0); |
253 | 253 | ||
254 | while (!ia64_get_irr(IA64_TIMER_VECTOR)) | 254 | while (!ia64_get_irr(IA64_TIMER_VECTOR)) |
255 | cpu_relax(); | 255 | cpu_relax(); |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index 78d0d22dd17e..4dc74500eac5 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -1039,7 +1039,6 @@ cpu_init (void) | |||
1039 | ia64_patch_phys_stack_reg(num_phys_stacked*8 + 8); | 1039 | ia64_patch_phys_stack_reg(num_phys_stacked*8 + 8); |
1040 | max_num_phys_stacked = num_phys_stacked; | 1040 | max_num_phys_stacked = num_phys_stacked; |
1041 | } | 1041 | } |
1042 | platform_cpu_init(); | ||
1043 | } | 1042 | } |
1044 | 1043 | ||
1045 | void __init | 1044 | void __init |
diff --git a/arch/ia64/kernel/smp.c b/arch/ia64/kernel/smp.c index 133b63355814..4825b0b41d49 100644 --- a/arch/ia64/kernel/smp.c +++ b/arch/ia64/kernel/smp.c | |||
@@ -146,7 +146,7 @@ static inline void | |||
146 | send_IPI_single (int dest_cpu, int op) | 146 | send_IPI_single (int dest_cpu, int op) |
147 | { | 147 | { |
148 | set_bit(op, &per_cpu(ipi_operation, dest_cpu)); | 148 | set_bit(op, &per_cpu(ipi_operation, dest_cpu)); |
149 | platform_send_ipi(dest_cpu, IA64_IPI_VECTOR, IA64_IPI_DM_INT, 0); | 149 | ia64_send_ipi(dest_cpu, IA64_IPI_VECTOR, IA64_IPI_DM_INT, 0); |
150 | } | 150 | } |
151 | 151 | ||
152 | /* | 152 | /* |
@@ -213,7 +213,7 @@ kdump_smp_send_init(void) | |||
213 | for_each_online_cpu(cpu) { | 213 | for_each_online_cpu(cpu) { |
214 | if (cpu != self_cpu) { | 214 | if (cpu != self_cpu) { |
215 | if(kdump_status[cpu] == 0) | 215 | if(kdump_status[cpu] == 0) |
216 | platform_send_ipi(cpu, 0, IA64_IPI_DM_INIT, 0); | 216 | ia64_send_ipi(cpu, 0, IA64_IPI_DM_INIT, 0); |
217 | } | 217 | } |
218 | } | 218 | } |
219 | } | 219 | } |
@@ -224,7 +224,7 @@ kdump_smp_send_init(void) | |||
224 | void | 224 | void |
225 | smp_send_reschedule (int cpu) | 225 | smp_send_reschedule (int cpu) |
226 | { | 226 | { |
227 | platform_send_ipi(cpu, IA64_IPI_RESCHEDULE, IA64_IPI_DM_INT, 0); | 227 | ia64_send_ipi(cpu, IA64_IPI_RESCHEDULE, IA64_IPI_DM_INT, 0); |
228 | } | 228 | } |
229 | EXPORT_SYMBOL_GPL(smp_send_reschedule); | 229 | EXPORT_SYMBOL_GPL(smp_send_reschedule); |
230 | 230 | ||
@@ -234,7 +234,7 @@ EXPORT_SYMBOL_GPL(smp_send_reschedule); | |||
234 | static void | 234 | static void |
235 | smp_send_local_flush_tlb (int cpu) | 235 | smp_send_local_flush_tlb (int cpu) |
236 | { | 236 | { |
237 | platform_send_ipi(cpu, IA64_IPI_LOCAL_TLB_FLUSH, IA64_IPI_DM_INT, 0); | 237 | ia64_send_ipi(cpu, IA64_IPI_LOCAL_TLB_FLUSH, IA64_IPI_DM_INT, 0); |
238 | } | 238 | } |
239 | 239 | ||
240 | void | 240 | void |
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index df56f739dd11..f7058659526c 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -467,7 +467,7 @@ do_boot_cpu (int sapicid, int cpu, struct task_struct *idle) | |||
467 | Dprintk("Sending wakeup vector %lu to AP 0x%x/0x%x.\n", ap_wakeup_vector, cpu, sapicid); | 467 | Dprintk("Sending wakeup vector %lu to AP 0x%x/0x%x.\n", ap_wakeup_vector, cpu, sapicid); |
468 | 468 | ||
469 | set_brendez_area(cpu); | 469 | set_brendez_area(cpu); |
470 | platform_send_ipi(cpu, ap_wakeup_vector, IA64_IPI_DM_INT, 0); | 470 | ia64_send_ipi(cpu, ap_wakeup_vector, IA64_IPI_DM_INT, 0); |
471 | 471 | ||
472 | /* | 472 | /* |
473 | * Wait 10s total for the AP to start | 473 | * Wait 10s total for the AP to start |
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index 4ecd81b0e8ec..d9ad93a6d825 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -167,8 +167,6 @@ timer_interrupt (int irq, void *dev_id) | |||
167 | return IRQ_HANDLED; | 167 | return IRQ_HANDLED; |
168 | } | 168 | } |
169 | 169 | ||
170 | platform_timer_interrupt(irq, dev_id); | ||
171 | |||
172 | new_itm = local_cpu_data->itm_next; | 170 | new_itm = local_cpu_data->itm_next; |
173 | 171 | ||
174 | if (!time_after(ia64_get_itc(), new_itm)) | 172 | if (!time_after(ia64_get_itc(), new_itm)) |
diff --git a/arch/ia64/lib/io.c b/arch/ia64/lib/io.c index d107eaf3790d..c3e02462ed16 100644 --- a/arch/ia64/lib/io.c +++ b/arch/ia64/lib/io.c | |||
@@ -49,117 +49,3 @@ void memset_io(volatile void __iomem *dst, int c, long count) | |||
49 | } | 49 | } |
50 | } | 50 | } |
51 | EXPORT_SYMBOL(memset_io); | 51 | EXPORT_SYMBOL(memset_io); |
52 | |||
53 | #ifdef CONFIG_IA64_GENERIC | ||
54 | |||
55 | #undef __ia64_inb | ||
56 | #undef __ia64_inw | ||
57 | #undef __ia64_inl | ||
58 | #undef __ia64_outb | ||
59 | #undef __ia64_outw | ||
60 | #undef __ia64_outl | ||
61 | #undef __ia64_readb | ||
62 | #undef __ia64_readw | ||
63 | #undef __ia64_readl | ||
64 | #undef __ia64_readq | ||
65 | #undef __ia64_readb_relaxed | ||
66 | #undef __ia64_readw_relaxed | ||
67 | #undef __ia64_readl_relaxed | ||
68 | #undef __ia64_readq_relaxed | ||
69 | #undef __ia64_writeb | ||
70 | #undef __ia64_writew | ||
71 | #undef __ia64_writel | ||
72 | #undef __ia64_writeq | ||
73 | #undef __ia64_mmiowb | ||
74 | |||
75 | unsigned int | ||
76 | __ia64_inb (unsigned long port) | ||
77 | { | ||
78 | return ___ia64_inb(port); | ||
79 | } | ||
80 | |||
81 | unsigned int | ||
82 | __ia64_inw (unsigned long port) | ||
83 | { | ||
84 | return ___ia64_inw(port); | ||
85 | } | ||
86 | |||
87 | unsigned int | ||
88 | __ia64_inl (unsigned long port) | ||
89 | { | ||
90 | return ___ia64_inl(port); | ||
91 | } | ||
92 | |||
93 | void | ||
94 | __ia64_outb (unsigned char val, unsigned long port) | ||
95 | { | ||
96 | ___ia64_outb(val, port); | ||
97 | } | ||
98 | |||
99 | void | ||
100 | __ia64_outw (unsigned short val, unsigned long port) | ||
101 | { | ||
102 | ___ia64_outw(val, port); | ||
103 | } | ||
104 | |||
105 | void | ||
106 | __ia64_outl (unsigned int val, unsigned long port) | ||
107 | { | ||
108 | ___ia64_outl(val, port); | ||
109 | } | ||
110 | |||
111 | unsigned char | ||
112 | __ia64_readb (void __iomem *addr) | ||
113 | { | ||
114 | return ___ia64_readb (addr); | ||
115 | } | ||
116 | |||
117 | unsigned short | ||
118 | __ia64_readw (void __iomem *addr) | ||
119 | { | ||
120 | return ___ia64_readw (addr); | ||
121 | } | ||
122 | |||
123 | unsigned int | ||
124 | __ia64_readl (void __iomem *addr) | ||
125 | { | ||
126 | return ___ia64_readl (addr); | ||
127 | } | ||
128 | |||
129 | unsigned long | ||
130 | __ia64_readq (void __iomem *addr) | ||
131 | { | ||
132 | return ___ia64_readq (addr); | ||
133 | } | ||
134 | |||
135 | unsigned char | ||
136 | __ia64_readb_relaxed (void __iomem *addr) | ||
137 | { | ||
138 | return ___ia64_readb (addr); | ||
139 | } | ||
140 | |||
141 | unsigned short | ||
142 | __ia64_readw_relaxed (void __iomem *addr) | ||
143 | { | ||
144 | return ___ia64_readw (addr); | ||
145 | } | ||
146 | |||
147 | unsigned int | ||
148 | __ia64_readl_relaxed (void __iomem *addr) | ||
149 | { | ||
150 | return ___ia64_readl (addr); | ||
151 | } | ||
152 | |||
153 | unsigned long | ||
154 | __ia64_readq_relaxed (void __iomem *addr) | ||
155 | { | ||
156 | return ___ia64_readq (addr); | ||
157 | } | ||
158 | |||
159 | void | ||
160 | __ia64_mmiowb(void) | ||
161 | { | ||
162 | ___ia64_mmiowb(); | ||
163 | } | ||
164 | |||
165 | #endif /* CONFIG_IA64_GENERIC */ | ||
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 05490dd073e6..921f3efe3538 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -396,8 +396,7 @@ static void __meminit scatter_node_data(void) | |||
396 | * | 396 | * |
397 | * Each node's per-node area has a copy of the global pg_data_t list, so | 397 | * Each node's per-node area has a copy of the global pg_data_t list, so |
398 | * we copy that to each node here, as well as setting the per-cpu pointer | 398 | * we copy that to each node here, as well as setting the per-cpu pointer |
399 | * to the local node data structure. The active_cpus field of the per-node | 399 | * to the local node data structure. |
400 | * structure gets setup by the platform_cpu_init() function later. | ||
401 | */ | 400 | */ |
402 | static void __init initialize_pernode_data(void) | 401 | static void __init initialize_pernode_data(void) |
403 | { | 402 | { |
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c index 0714df1b7854..72cc568bc841 100644 --- a/arch/ia64/mm/tlb.c +++ b/arch/ia64/mm/tlb.c | |||
@@ -245,7 +245,8 @@ resetsema: | |||
245 | spinaphore_init(&ptcg_sem, max_purges); | 245 | spinaphore_init(&ptcg_sem, max_purges); |
246 | } | 246 | } |
247 | 247 | ||
248 | void | 248 | #ifdef CONFIG_SMP |
249 | static void | ||
249 | ia64_global_tlb_purge (struct mm_struct *mm, unsigned long start, | 250 | ia64_global_tlb_purge (struct mm_struct *mm, unsigned long start, |
250 | unsigned long end, unsigned long nbits) | 251 | unsigned long end, unsigned long nbits) |
251 | { | 252 | { |
@@ -282,6 +283,7 @@ ia64_global_tlb_purge (struct mm_struct *mm, unsigned long start, | |||
282 | activate_context(active_mm); | 283 | activate_context(active_mm); |
283 | } | 284 | } |
284 | } | 285 | } |
286 | #endif /* CONFIG_SMP */ | ||
285 | 287 | ||
286 | void | 288 | void |
287 | local_flush_tlb_all (void) | 289 | local_flush_tlb_all (void) |
@@ -332,7 +334,7 @@ __flush_tlb_range (struct vm_area_struct *vma, unsigned long start, | |||
332 | preempt_disable(); | 334 | preempt_disable(); |
333 | #ifdef CONFIG_SMP | 335 | #ifdef CONFIG_SMP |
334 | if (mm != current->active_mm || cpumask_weight(mm_cpumask(mm)) != 1) { | 336 | if (mm != current->active_mm || cpumask_weight(mm_cpumask(mm)) != 1) { |
335 | platform_global_tlb_purge(mm, start, end, nbits); | 337 | ia64_global_tlb_purge(mm, start, end, nbits); |
336 | preempt_enable(); | 338 | preempt_enable(); |
337 | return; | 339 | return; |
338 | } | 340 | } |
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 165e561dc81a..89c9f36dc94d 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -372,7 +372,6 @@ void pcibios_fixup_bus(struct pci_bus *b) | |||
372 | } | 372 | } |
373 | list_for_each_entry(dev, &b->devices, bus_list) | 373 | list_for_each_entry(dev, &b->devices, bus_list) |
374 | pcibios_fixup_device_resources(dev); | 374 | pcibios_fixup_device_resources(dev); |
375 | platform_pci_fixup_bus(b); | ||
376 | } | 375 | } |
377 | 376 | ||
378 | void pcibios_add_bus(struct pci_bus *bus) | 377 | void pcibios_add_bus(struct pci_bus *bus) |
@@ -413,7 +412,7 @@ pcibios_disable_device (struct pci_dev *dev) | |||
413 | } | 412 | } |
414 | 413 | ||
415 | /** | 414 | /** |
416 | * ia64_pci_get_legacy_mem - generic legacy mem routine | 415 | * pci_get_legacy_mem - generic legacy mem routine |
417 | * @bus: bus to get legacy memory base address for | 416 | * @bus: bus to get legacy memory base address for |
418 | * | 417 | * |
419 | * Find the base of legacy memory for @bus. This is typically the first | 418 | * Find the base of legacy memory for @bus. This is typically the first |
@@ -424,7 +423,7 @@ pcibios_disable_device (struct pci_dev *dev) | |||
424 | * This is the ia64 generic version of this routine. Other platforms | 423 | * This is the ia64 generic version of this routine. Other platforms |
425 | * are free to override it with a machine vector. | 424 | * are free to override it with a machine vector. |
426 | */ | 425 | */ |
427 | char *ia64_pci_get_legacy_mem(struct pci_bus *bus) | 426 | char *pci_get_legacy_mem(struct pci_bus *bus) |
428 | { | 427 | { |
429 | return (char *)__IA64_UNCACHED_OFFSET; | 428 | return (char *)__IA64_UNCACHED_OFFSET; |
430 | } | 429 | } |
@@ -473,7 +472,7 @@ pci_mmap_legacy_page_range(struct pci_bus *bus, struct vm_area_struct *vma, | |||
473 | } | 472 | } |
474 | 473 | ||
475 | /** | 474 | /** |
476 | * ia64_pci_legacy_read - read from legacy I/O space | 475 | * pci_legacy_read - read from legacy I/O space |
477 | * @bus: bus to read | 476 | * @bus: bus to read |
478 | * @port: legacy port value | 477 | * @port: legacy port value |
479 | * @val: caller allocated storage for returned value | 478 | * @val: caller allocated storage for returned value |
@@ -485,7 +484,7 @@ pci_mmap_legacy_page_range(struct pci_bus *bus, struct vm_area_struct *vma, | |||
485 | * overridden by the platform. This is necessary on platforms that don't | 484 | * overridden by the platform. This is necessary on platforms that don't |
486 | * support legacy I/O routing or that hard fail on legacy I/O timeouts. | 485 | * support legacy I/O routing or that hard fail on legacy I/O timeouts. |
487 | */ | 486 | */ |
488 | int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | 487 | int pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) |
489 | { | 488 | { |
490 | int ret = size; | 489 | int ret = size; |
491 | 490 | ||
@@ -508,7 +507,7 @@ int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
508 | } | 507 | } |
509 | 508 | ||
510 | /** | 509 | /** |
511 | * ia64_pci_legacy_write - perform a legacy I/O write | 510 | * pci_legacy_write - perform a legacy I/O write |
512 | * @bus: bus pointer | 511 | * @bus: bus pointer |
513 | * @port: port to write | 512 | * @port: port to write |
514 | * @val: value to write | 513 | * @val: value to write |
@@ -516,7 +515,7 @@ int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
516 | * | 515 | * |
517 | * Simply writes @size bytes of @val to @port. | 516 | * Simply writes @size bytes of @val to @port. |
518 | */ | 517 | */ |
519 | int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) | 518 | int pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) |
520 | { | 519 | { |
521 | int ret = size; | 520 | int ret = size; |
522 | 521 | ||