summaryrefslogtreecommitdiff
path: root/drivers/mfd
diff options
context:
space:
mode:
authorIwona Winiarska <iwona.winiarska@intel.com>2022-05-09 21:05:59 +0300
committerIwona Winiarska <iwona.winiarska@intel.com>2022-05-23 15:06:36 +0300
commitb0f89c7de8f3cac4952acc5f09539c0b879e58d9 (patch)
tree87bcb1dee4b10adebe8836bfc27296e291c3472b /drivers/mfd
parent5a478efbb1201546d179b51c2b3f12122647b3d5 (diff)
downloadlinux-b0f89c7de8f3cac4952acc5f09539c0b879e58d9.tar.xz
peci: Extend peci client with Domain ID information
Since PECI Target addressing has been changed to use Domain ID information, each peci_client instance should correspond with both CPU ID and Domain ID. Let's extend peci_client structure, sysfs API and intel-peci-client to use Domain ID. Make MFD device ID as a combination of peci adapter number, CPU ID and Domain ID. Signed-off-by: Iwona Winiarska <iwona.winiarska@intel.com>
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/intel-peci-client.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mfd/intel-peci-client.c b/drivers/mfd/intel-peci-client.c
index 3eb2c59a2424..69834a230998 100644
--- a/drivers/mfd/intel-peci-client.c
+++ b/drivers/mfd/intel-peci-client.c
@@ -74,7 +74,7 @@ static int peci_client_get_cpu_gen_info(struct peci_client_manager *priv)
int i;
ret = peci_get_cpu_id(priv->client->adapter, priv->client->addr,
- &cpu_id);
+ priv->client->domain_id, &cpu_id);
if (ret)
return ret;
@@ -107,6 +107,9 @@ static int peci_client_get_cpu_gen_info(struct peci_client_manager *priv)
static int peci_client_probe(struct peci_client *client)
{
struct device *dev = &client->dev;
+ u8 cpu_id = client->addr - PECI_BASE_ADDR;
+ u8 domain_id = client->domain_id;
+ u8 adapter_nr = client->adapter->nr;
struct peci_client_manager *priv;
int device_id;
int ret;
@@ -122,7 +125,7 @@ static int peci_client_probe(struct peci_client *client)
if (ret)
return ret;
- device_id = (client->adapter->nr << 4) | (client->addr - PECI_BASE_ADDR);
+ device_id = (adapter_nr << 8) | (cpu_id << 4) | domain_id;
ret = devm_mfd_add_devices(dev, device_id, peci_functions,
ARRAY_SIZE(peci_functions), NULL, 0, NULL);