From e2a8ce0030769a45fbda2b856bf6889e04a20cb1 Mon Sep 17 00:00:00 2001 From: Vivek Goyal Date: Fri, 6 Jul 2007 02:39:55 -0700 Subject: [PATCH] --- yaml --- r: 58226 b: refs/heads/master c: 071922c08cef62e194d83db1cc4fa75892c69651 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/i386/mach-es7000/es7000plat.c | 48 +++++++++++++++++++ .../include/asm-i386/mach-es7000/mach_apic.h | 4 ++ .../asm-i386/mach-es7000/mach_mpparse.h | 6 +++ 4 files changed, 59 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e56fde634d43..d89151a21b49 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 41a5311465b9de6d18e78b733a2c6e1b33e89be8 +refs/heads/master: 071922c08cef62e194d83db1cc4fa75892c69651 diff --git a/trunk/arch/i386/mach-es7000/es7000plat.c b/trunk/arch/i386/mach-es7000/es7000plat.c index 9be6ceabf042..ab99072d3f9a 100644 --- a/trunk/arch/i386/mach-es7000/es7000plat.c +++ b/trunk/arch/i386/mach-es7000/es7000plat.c @@ -40,6 +40,7 @@ #include #include #include "es7000.h" +#include /* * ES7000 Globals @@ -174,6 +175,53 @@ find_unisys_acpi_oem_table(unsigned long *oem_addr) } #endif +/* + * This file also gets compiled if CONFIG_X86_GENERICARCH is set. Generic + * arch already has got following function definitions (asm-generic/es7000.c) + * hence no need to define these for that case. + */ +#ifndef CONFIG_X86_GENERICARCH +void es7000_sw_apic(void); +void __init enable_apic_mode(void) +{ + es7000_sw_apic(); + return; +} + +__init int mps_oem_check(struct mp_config_table *mpc, char *oem, + char *productid) +{ + if (mpc->mpc_oemptr) { + struct mp_config_oemtable *oem_table = + (struct mp_config_oemtable *)mpc->mpc_oemptr; + if (!strncmp(oem, "UNISYS", 6)) + return parse_unisys_oem((char *)oem_table); + } + return 0; +} +#ifdef CONFIG_ACPI +/* Hook from generic ACPI tables.c */ +int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) +{ + unsigned long oem_addr; + if (!find_unisys_acpi_oem_table(&oem_addr)) { + if (es7000_check_dsdt()) + return parse_unisys_oem((char *)oem_addr); + else { + setup_unisys(); + return 1; + } + } + return 0; +} +#else +int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) +{ + return 0; +} +#endif +#endif /* COFIG_X86_GENERICARCH */ + static void es7000_spin(int n) { diff --git a/trunk/include/asm-i386/mach-es7000/mach_apic.h b/trunk/include/asm-i386/mach-es7000/mach_apic.h index 2d978928a395..caec64be516d 100644 --- a/trunk/include/asm-i386/mach-es7000/mach_apic.h +++ b/trunk/include/asm-i386/mach-es7000/mach_apic.h @@ -73,6 +73,10 @@ static inline void init_apic_ldr(void) apic_write_around(APIC_LDR, val); } +#ifndef CONFIG_X86_GENERICARCH +extern void enable_apic_mode(void); +#endif + extern int apic_version [MAX_APICS]; static inline void setup_apic_routing(void) { diff --git a/trunk/include/asm-i386/mach-es7000/mach_mpparse.h b/trunk/include/asm-i386/mach-es7000/mach_mpparse.h index b9fb784e1fd5..8aa10547b4b1 100644 --- a/trunk/include/asm-i386/mach-es7000/mach_mpparse.h +++ b/trunk/include/asm-i386/mach-es7000/mach_mpparse.h @@ -18,6 +18,12 @@ extern int parse_unisys_oem (char *oemptr); extern int find_unisys_acpi_oem_table(unsigned long *oem_addr); extern void setup_unisys(void); +#ifndef CONFIG_X86_GENERICARCH +extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); +extern int mps_oem_check(struct mp_config_table *mpc, char *oem, + char *productid); +#endif + #ifdef CONFIG_ACPI static inline int es7000_check_dsdt(void)