summaryrefslogtreecommitdiff
path: root/drivers/soc
diff options
context:
space:
mode:
authorKrzysztof Richert <krzysztof.richert@intel.com>2022-04-05 16:19:52 +0300
committerKrzysztof Richert <krzysiek.richert@gmail.com>2022-04-15 10:15:51 +0300
commit6329b11a61a5c3ee529e228731023239d036e40b (patch)
tree747577787a5cf6e089181a0182f4df4338271ab6 /drivers/soc
parent913231244a40110c832b5ec0afabda89d4d95f0f (diff)
downloadlinux-6329b11a61a5c3ee529e228731023239d036e40b.tar.xz
soc: aspeed: mctp: Extend internal aspeed-mctp driver API
New API allows to read DomainId information by internal kernel clients (for example peci-mctp). Signed-off-by: Krzysztof Richert <krzysztof.richert@intel.com>
Diffstat (limited to 'drivers/soc')
-rw-r--r--drivers/soc/aspeed/aspeed-mctp.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/soc/aspeed/aspeed-mctp.c b/drivers/soc/aspeed/aspeed-mctp.c
index 2fa1dcfc37e3..5073f0e14dc3 100644
--- a/drivers/soc/aspeed/aspeed-mctp.c
+++ b/drivers/soc/aspeed/aspeed-mctp.c
@@ -1083,6 +1083,28 @@ int aspeed_mctp_get_eid_bdf(struct mctp_client *client, u8 eid, u16 *bdf)
}
EXPORT_SYMBOL_GPL(aspeed_mctp_get_eid_bdf);
+int aspeed_mctp_get_eid(struct mctp_client *client, u16 bdf,
+ u8 domain_id, u8 *eid)
+{
+ struct aspeed_mctp_endpoint *endpoint;
+ int ret = -ENOENT;
+
+ mutex_lock(&client->priv->endpoints_lock);
+
+ list_for_each_entry(endpoint, &client->priv->endpoints, link) {
+ if (endpoint->data.eid_ext_info.domain_id == domain_id &&
+ endpoint->data.eid_ext_info.bdf == bdf) {
+ *eid = endpoint->data.eid_ext_info.eid;
+ ret = 0;
+ break;
+ }
+ }
+
+ mutex_unlock(&client->priv->endpoints_lock);
+ return ret;
+}
+EXPORT_SYMBOL_GPL(aspeed_mctp_get_eid);
+
static int
aspeed_mctp_get_eid_info(struct aspeed_mctp *priv, void __user *userbuf,
enum mctp_address_type addr_format)