Unverified Commit 0bd0f983 authored by Suma Hegde's avatar Suma Hegde Committed by Ilpo Järvinen
Browse files

platform/x86/amd/hsmp: Replace amd_num_nodes() with topology_max_packages()



The amd_num_nodes() function returns the number of data fabrics present.
On older EPYC processors, there was one data fabric per socket.
However, newer EPYC processors have more than one data fabric per
socket, leading to a situation where the number of sockets is not equal
to the number of data fabrics. Therefore, it is appropriate to use
topology_max_packages() to know the number of sockets in the system.

Also remove node.h header inclusion and socket number comparison against
data fabric nodes.

plat.c is supported only for legacy platforms where socket number and
data fabric numbers are same. So it can remain unchanged.

Signed-off-by: default avatarSuma Hegde <suma.hegde@amd.com>
Link: https://patch.msgid.link/20250916043736.3279947-1-suma.hegde@amd.com


Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
parent 64400456
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -22,12 +22,11 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/sysfs.h>
#include <linux/topology.h>
#include <linux/uuid.h>

#include <uapi/asm-generic/errno-base.h>

#include <asm/amd/node.h>

#include "hsmp.h"

#define DRIVER_NAME		"hsmp_acpi"
@@ -586,9 +585,9 @@ static int hsmp_acpi_probe(struct platform_device *pdev)
		return -ENOMEM;

	if (!hsmp_pdev->is_probed) {
		hsmp_pdev->num_sockets = amd_num_nodes();
		if (hsmp_pdev->num_sockets == 0 || hsmp_pdev->num_sockets > MAX_AMD_NUM_NODES) {
			dev_err(&pdev->dev, "Wrong number of sockets\n");
		hsmp_pdev->num_sockets = topology_max_packages();
		if (!hsmp_pdev->num_sockets) {
			dev_err(&pdev->dev, "No CPU sockets detected\n");
			return -ENODEV;
		}