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 | /* Select the appropriate APIC driver */ |
17 | void __init x86_64_probe_apic(void) |
18 | { |
19 | struct apic **drv; |
20 | |
21 | enable_IR_x2apic(); |
22 | |
23 | for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { |
24 | if ((*drv)->probe && (*drv)->probe()) { |
25 | apic_install_driver(driver: *drv); |
26 | break; |
27 | } |
28 | } |
29 | } |
30 | |
31 | int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
32 | { |
33 | struct apic **drv; |
34 | |
35 | for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) { |
36 | if ((*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) { |
37 | apic_install_driver(driver: *drv); |
38 | return 1; |
39 | } |
40 | } |
41 | return 0; |
42 | } |
43 |