1/* 2 * APIC driver for the Unisys ES7000 chipset. 3 */ 4#define APIC_DEFINITION 1 5#include <linux/threads.h> 6#include <linux/cpumask.h> 7#include <asm/smp.h> 8#include <asm/mpspec.h> 9#include <asm/genapic.h> 10#include <asm/fixmap.h> 11#include <asm/apicdef.h> 12#include <linux/kernel.h> 13#include <linux/string.h> 14#include <linux/smp.h> 15#include <linux/init.h> 16#include <asm/mach-es7000/mach_apicdef.h> 17#include <asm/mach-es7000/mach_apic.h> 18#include <asm/mach-es7000/mach_ipi.h> 19#include <asm/mach-es7000/mach_mpparse.h> 20#include <asm/mach-es7000/mach_wakecpu.h> 21 22static int probe_es7000(void) 23{ 24 /* probed later in mptable/ACPI hooks */ 25 return 0; 26} 27 28extern void es7000_sw_apic(void); 29static void __init enable_apic_mode(void) 30{ 31 es7000_sw_apic(); 32 return; 33} 34 35static __init int mps_oem_check(struct mp_config_table *mpc, char *oem, 36 char *productid) 37{ 38 if (mpc->mpc_oemptr) { 39 struct mp_config_oemtable *oem_table = 40 (struct mp_config_oemtable *)mpc->mpc_oemptr; 41 if (!strncmp(oem, "UNISYS", 6)) 42 return parse_unisys_oem((char *)oem_table); 43 } 44 return 0; 45} 46 47#ifdef CONFIG_ACPI 48/* Hook from generic ACPI tables.c */ 49static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) 50{ 51 unsigned long oem_addr; 52 if (!find_unisys_acpi_oem_table(&oem_addr)) { 53 if (es7000_check_dsdt()) 54 return parse_unisys_oem((char *)oem_addr); 55 else { 56 setup_unisys(); 57 return 1; 58 } 59 } 60 return 0; 61} 62#else 63static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) 64{ 65 return 0; 66} 67#endif 68 69struct genapic apic_es7000 = APIC_INIT("es7000", probe_es7000); 70