Line data Source code
1 : // SPDX-License-Identifier: GPL-2.0-only 2 : /* 3 : * Copyright 2004 James Cleverdon, IBM. 4 : * 5 : * Generic APIC sub-arch probe layer. 6 : * 7 : * Hacked for x86-64 by James Cleverdon from i386 architecture code by 8 : * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and 9 : * James Cleverdon. 10 : */ 11 : #include <linux/thread_info.h> 12 : #include <asm/apic.h> 13 : 14 : #include "local.h" 15 : 16 : /* 17 : * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. 18 : */ 19 1 : void __init default_setup_apic_routing(void) 20 : { 21 1 : struct apic **drv; 22 : 23 1 : enable_IR_x2apic(); 24 : 25 3 : for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { 26 2 : if ((*drv)->probe && (*drv)->probe()) { 27 1 : if (apic != *drv) { 28 0 : apic = *drv; 29 0 : pr_info("Switched APIC routing to %s.\n", 30 : apic->name); 31 : } 32 : break; 33 : } 34 : } 35 1 : } 36 : 37 0 : int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 38 : { 39 0 : struct apic **drv; 40 : 41 0 : for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { 42 0 : if ((*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) { 43 0 : if (apic != *drv) { 44 0 : apic = *drv; 45 0 : pr_info("Setting APIC routing to %s.\n", 46 : apic->name); 47 : } 48 0 : return 1; 49 : } 50 : } 51 : return 0; 52 : }