Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
43 lines
914 B
C
43 lines
914 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Copyright 2004 James Cleverdon, IBM.
|
|
*
|
|
* Generic APIC sub-arch probe layer.
|
|
*
|
|
* Hacked for x86-64 by James Cleverdon from i386 architecture code by
|
|
* Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
|
|
* James Cleverdon.
|
|
*/
|
|
#include <linux/thread_info.h>
|
|
#include <asm/apic.h>
|
|
|
|
#include "local.h"
|
|
|
|
/* Select the appropriate APIC driver */
|
|
void __init x86_64_probe_apic(void)
|
|
{
|
|
struct apic **drv;
|
|
|
|
enable_IR_x2apic();
|
|
|
|
for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
|
|
if ((*drv)->probe && (*drv)->probe()) {
|
|
apic_install_driver(*drv);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
|
|
{
|
|
struct apic **drv;
|
|
|
|
for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
|
|
if ((*drv)->acpi_madt_oem_check(oem_id, oem_table_id)) {
|
|
apic_install_driver(*drv);
|
|
return 1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|