aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-10 09:06:07 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-10 12:55:36 -0400
commit244a5e2ee0ba204d66dfe4273df91c6bc65a310a (patch)
tree555835890424a8bf6ae2c094660620cdeed60e0b
parent6a64b5da9bbe561fd189361812f5ed205bb55345 (diff)
x86, VisWS: turn into generic arch, update include/asm-x86/mach-visws/smpboot_hooks.h
update include/asm-x86/mach-visws/smpboot_hooks.h to include/asm-x86/mach-default/smpboot_hooks.h (the generic version). this _should_ work, because VISWS sets skip_ioapic_setup, but it should be tested on a real VISWS to make sure. Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--include/asm-x86/mach-visws/smpboot_hooks.h45
1 files changed, 38 insertions, 7 deletions
diff --git a/include/asm-x86/mach-visws/smpboot_hooks.h b/include/asm-x86/mach-visws/smpboot_hooks.h
index c9b83e395a2e..56d001b9dce4 100644
--- a/include/asm-x86/mach-visws/smpboot_hooks.h
+++ b/include/asm-x86/mach-visws/smpboot_hooks.h
@@ -1,3 +1,13 @@
1/* two abstractions specific to kernel/smpboot.c, mainly to cater to visws
2 * which needs to alter them. */
3
4static inline void smpboot_clear_io_apic_irqs(void)
5{
6#ifdef CONFIG_X86_IO_APIC
7 io_apic_irqs = 0;
8#endif
9}
10
1static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip) 11static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
2{ 12{
3 CMOS_WRITE(0xa, 0xf); 13 CMOS_WRITE(0xa, 0xf);
@@ -9,20 +19,41 @@ static inline void smpboot_setup_warm_reset_vector(unsigned long start_eip)
9 Dprintk("3.\n"); 19 Dprintk("3.\n");
10} 20}
11 21
12/* for visws do nothing for any of these */
13
14static inline void smpboot_clear_io_apic_irqs(void)
15{
16}
17
18static inline void smpboot_restore_warm_reset_vector(void) 22static inline void smpboot_restore_warm_reset_vector(void)
19{ 23{
24 /*
25 * Install writable page 0 entry to set BIOS data area.
26 */
27 local_flush_tlb();
28
29 /*
30 * Paranoid: Set warm reset code and vector here back
31 * to default values.
32 */
33 CMOS_WRITE(0, 0xf);
34
35 *((volatile long *) phys_to_virt(0x467)) = 0;
20} 36}
21 37
22static inline void smpboot_setup_io_apic(void) 38static inline void __init smpboot_setup_io_apic(void)
23{ 39{
40#ifdef CONFIG_X86_IO_APIC
41 /*
42 * Here we can be sure that there is an IO-APIC in the system. Let's
43 * go and set it up:
44 */
45 if (!skip_ioapic_setup && nr_ioapics)
46 setup_IO_APIC();
47 else {
48 nr_ioapics = 0;
49 localise_nmi_watchdog();
50 }
51#endif
24} 52}
25 53
26static inline void smpboot_clear_io_apic(void) 54static inline void smpboot_clear_io_apic(void)
27{ 55{
56#ifdef CONFIG_X86_IO_APIC
57 nr_ioapics = 0;
58#endif
28} 59}