Branch data 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 <asm/apic.h> 12 : : 13 : : #include "local.h" 14 : : 15 : : /* 16 : : * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. 17 : : */ 18 : 21 : void __init default_setup_apic_routing(void) 19 : : { 20 : 21 : struct apic **drv; 21 : : 22 : 21 : enable_IR_x2apic(); 23 : : 24 [ + - ]: 63 : for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { 25 [ + - + + ]: 42 : if ((*drv)->probe && (*drv)->probe()) { 26 [ - + ]: 21 : if (apic != *drv) { 27 : 0 : apic = *drv; 28 : 0 : pr_info("Switched APIC routing to %s.\n", 29 : : apic->name); 30 : : } 31 : : break; 32 : : } 33 : : } 34 : : 35 [ + - ]: 21 : if (x86_platform.apic_post_init) 36 : 21 : x86_platform.apic_post_init(); 37 : 21 : } 38 : : 39 : 42 : int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id) 40 : : { 41 : 42 : struct apic **drv; 42 : : 43 [ + - ]: 84 : for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { 44 [ + + ]: 84 : if ((*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) { 45 [ - + ]: 42 : if (apic != *drv) { 46 : 0 : apic = *drv; 47 : 0 : pr_info("Setting APIC routing to %s.\n", 48 : : apic->name); 49 : : } 50 : 42 : return 1; 51 : : } 52 : : } 53 : : return 0; 54 : : }