From: Mario Limonciello <mario.limonciello@xxxxxxx> If the HSMP driver is compiled into the kernel or a module manually loaded on client hardware it can cause problems with the functionality of the PMC module since it probes a mailbox with a different definition on servers. Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2414 Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3285 Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> --- v1->v2: * use pm preferred profile instead --- drivers/platform/x86/amd/hsmp.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/platform/x86/amd/hsmp.c b/drivers/platform/x86/amd/hsmp.c index 1927be901108..102a49c3e945 100644 --- a/drivers/platform/x86/amd/hsmp.c +++ b/drivers/platform/x86/amd/hsmp.c @@ -907,6 +907,17 @@ static int hsmp_plat_dev_register(void) return ret; } +static bool hsmp_supported_profile(void) +{ + switch (acpi_gbl_FADT.preferred_profile) { + case PM_ENTERPRISE_SERVER: + case PM_SOHO_SERVER: + case PM_PERFORMANCE_SERVER: + return true; + } + return false; +} + static int __init hsmp_plt_init(void) { int ret = -ENODEV; @@ -917,6 +928,11 @@ static int __init hsmp_plt_init(void) return ret; } + if (!hsmp_supported_profile()) { + pr_err("HSMP is only supported on servers"); + return ret; + } + /* * amd_nb_num() returns number of SMN/DF interfaces present in the system * if we have N SMN/DF interfaces that ideally means N sockets -- 2.43.0