diff options
-rw-r--r-- | arch/x86/include/asm/es7000/apic.h | 2 | ||||
-rw-r--r-- | arch/x86/kernel/es7000_32.c | 27 | ||||
-rw-r--r-- | arch/x86/mach-generic/es7000.c | 7 |
3 files changed, 16 insertions, 20 deletions
diff --git a/arch/x86/include/asm/es7000/apic.h b/arch/x86/include/asm/es7000/apic.h index 717c27f8da61..038c4f0e480b 100644 --- a/arch/x86/include/asm/es7000/apic.h +++ b/arch/x86/include/asm/es7000/apic.h | |||
@@ -36,6 +36,8 @@ static inline unsigned long es7000_check_apicid_present(int bit) | |||
36 | return physid_isset(bit, phys_cpu_present_map); | 36 | return physid_isset(bit, phys_cpu_present_map); |
37 | } | 37 | } |
38 | 38 | ||
39 | extern void es7000_enable_apic_mode(void); | ||
40 | |||
39 | #define apicid_cluster(apicid) (apicid & 0xF0) | 41 | #define apicid_cluster(apicid) (apicid & 0xF0) |
40 | 42 | ||
41 | static inline unsigned long calculate_ldr(int cpu) | 43 | static inline unsigned long calculate_ldr(int cpu) |
diff --git a/arch/x86/kernel/es7000_32.c b/arch/x86/kernel/es7000_32.c index 20a2a43c2a9c..e73fe18488ac 100644 --- a/arch/x86/kernel/es7000_32.c +++ b/arch/x86/kernel/es7000_32.c | |||
@@ -359,20 +359,21 @@ es7000_mip_write(struct mip_reg *mip_reg) | |||
359 | return status; | 359 | return status; |
360 | } | 360 | } |
361 | 361 | ||
362 | void __init | 362 | void __init es7000_enable_apic_mode(void) |
363 | es7000_sw_apic(void) | ||
364 | { | 363 | { |
365 | if (es7000_plat) { | 364 | struct mip_reg es7000_mip_reg; |
366 | int mip_status; | 365 | int mip_status; |
367 | struct mip_reg es7000_mip_reg; | 366 | |
368 | 367 | if (!es7000_plat) | |
369 | printk("ES7000: Enabling APIC mode.\n"); | ||
370 | memset(&es7000_mip_reg, 0, sizeof(struct mip_reg)); | ||
371 | es7000_mip_reg.off_0 = MIP_SW_APIC; | ||
372 | es7000_mip_reg.off_38 = (MIP_VALID); | ||
373 | while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0) | ||
374 | printk("es7000_sw_apic: command failed, status = %x\n", | ||
375 | mip_status); | ||
376 | return; | 368 | return; |
369 | |||
370 | printk("ES7000: Enabling APIC mode.\n"); | ||
371 | memset(&es7000_mip_reg, 0, sizeof(struct mip_reg)); | ||
372 | es7000_mip_reg.off_0 = MIP_SW_APIC; | ||
373 | es7000_mip_reg.off_38 = MIP_VALID; | ||
374 | |||
375 | while ((mip_status = es7000_mip_write(&es7000_mip_reg)) != 0) { | ||
376 | printk("es7000_enable_apic_mode: command failed, status = %x\n", | ||
377 | mip_status); | ||
377 | } | 378 | } |
378 | } | 379 | } |
diff --git a/arch/x86/mach-generic/es7000.c b/arch/x86/mach-generic/es7000.c index 9acb71120ef6..1185964b7a33 100644 --- a/arch/x86/mach-generic/es7000.c +++ b/arch/x86/mach-generic/es7000.c | |||
@@ -35,13 +35,6 @@ static int probe_es7000(void) | |||
35 | return 0; | 35 | return 0; |
36 | } | 36 | } |
37 | 37 | ||
38 | extern void es7000_sw_apic(void); | ||
39 | |||
40 | static void __init es7000_enable_apic_mode(void) | ||
41 | { | ||
42 | es7000_sw_apic(); | ||
43 | } | ||
44 | |||
45 | static __init int | 38 | static __init int |
46 | mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | 39 | mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) |
47 | { | 40 | { |