From patchwork Wed Feb 12 14:36:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shiju Jose X-Patchwork-Id: 13971481 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0871C021AE for ; Wed, 12 Feb 2025 14:37:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE1B9280006; Wed, 12 Feb 2025 09:37:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D6C9B280001; Wed, 12 Feb 2025 09:37:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BBDF2280006; Wed, 12 Feb 2025 09:37:36 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 95597280001 for ; Wed, 12 Feb 2025 09:37:36 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 5F79847161 for ; Wed, 12 Feb 2025 14:37:36 +0000 (UTC) X-FDA: 83111546112.17.4DACBE1 Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf08.hostedemail.com (Postfix) with ESMTP id 6C311160008 for ; Wed, 12 Feb 2025 14:37:34 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf08.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739371054; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=1UQ5ZZA4dKkWzdO2NCfxwIUwqpkaGg83M+v/FoH2MlE=; b=FLjAx49P2m7j+E77wIntOKar58eog/EiOWGYHg0cn0vJSm4EcTaeI4BtXMmsC1u9kIenEI Ha/6kFKtAfCNMdeannfnBmSaak1iYRPHEQzS2c/0S3pj/1WlimpkQ2/Kmes2w48o6chyxb uKyhTmk8dxsY9y3amV5td2LT1ELyCLM= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf08.hostedemail.com: domain of shiju.jose@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=shiju.jose@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739371054; a=rsa-sha256; cv=none; b=uWaCiUJbFsWYMIsIUfnrpBR3KYxg/TWaD9CkMJLHiUNmUekd016afI0dr+P8l+AKMqz1/Z WvbBCSB697FwUmL802/p+BYKyN1aI/DHL7WzQ0XQKw3Vgjz+xS5ocHCUGrnjw+39Mns+sk fVRYPhxIedg1iTF+TCSjrJVfO+wcUzc= Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4YtLSW28YRz6J7db; Wed, 12 Feb 2025 22:35:07 +0800 (CST) Received: from frapeml500007.china.huawei.com (unknown [7.182.85.172]) by mail.maildlp.com (Postfix) with ESMTPS id AAFA5140525; Wed, 12 Feb 2025 22:37:32 +0800 (CST) Received: from P_UKIT01-A7bmah.china.huawei.com (10.126.169.206) by frapeml500007.china.huawei.com (7.182.85.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Wed, 12 Feb 2025 15:37:30 +0100 From: To: , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v20 07/15] cxl: Add helper function to retrieve a feature entry Date: Wed, 12 Feb 2025 14:36:45 +0000 Message-ID: <20250212143654.1893-8-shiju.jose@huawei.com> X-Mailer: git-send-email 2.43.0.windows.1 In-Reply-To: <20250212143654.1893-1-shiju.jose@huawei.com> References: <20250212143654.1893-1-shiju.jose@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.126.169.206] X-ClientProxiedBy: lhrpeml100003.china.huawei.com (7.191.160.210) To frapeml500007.china.huawei.com (7.182.85.172) X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 6C311160008 X-Stat-Signature: 4wsntp768dt6gc66hhpiqygkik46736r X-HE-Tag: 1739371054-381107 X-HE-Meta: U2FsdGVkX184+LNKPGZzCyXMJ0XdwuYIbkNRIWxT3IP97r25IZWYHhqiKRUJ9cU01mnpwJYtio9Fue1RT3W8KWXYshb7uNicmvuLg+s91qrppJwoDW+avEL9y2t19M6BM228rbtrATR0svO7kiwdh0w/YF9ZGRtSLA8QNQz/hfF5M2Ndl0XgkrohcQ+cCODZimn4FJ5weHsinhXQpsUQ8IjUMD4to4nkw/qOib3cGgQjmSIiQJg025CSCP+XOy9BZhKjyvp+GB1Aes70go9w3oBhFkcTd9O2QXh9F3e/0+T3l9UXRlwLPcME550U2WTiGrTAb7o5Jf25vUWacNdAZ/PCe7KzvLHKy8SCGDX2t420lnyUATflCT5AqOgMmn9pQ+LDY3Ujwor4iBGV874ns+XP6AcJhvNbQUEO4hcwP2XJeFyX9SBGNUP3ZYmDD6TJsvEbP+3WZQallQInPQvlmzdTy4wa8GyKCd11OXnzQIrpk/jcqdSxT/sHQIi4EHRFiUQRJ3PMiO9/y9VebyZNukZI/tDjSm2UTmGVEQdH0XDM8KvuKpQAVKgUbtBeJDNfoRmacceVESqCrynYN1UGP8iOvUbK35RVrfwFbxaRyqbD+LLphHFljNfYhIvnHTaaps+gq8xBrNY6cKSFKt8fKkBM/Y4PcM9khCKOkGshiipcqCCN7jqAwvFn15chmaLy4ELWiXcC2Vqn6dIY9Gp78UmVj6bCoEKZNVsJmW7tictclxCea3IAkbbSlIOIELt5Hxb5zxVEPqaqIMcki4X7Ph2d4+EOZLptUzTUG0Kuzv9iZb57dm2a0Fopv8LWj+BpoSfjohuxcFh90BNOIxv/vhlD3ofuN7zdpDzFOKzkYCIq+bQ6Uyx+87CorfvyNW3NCak6xtLpeedoaDSVC0qOMcxrGk4rdWhCymZdJk9Q15ORrvK2wnREXLiXzlPTaSMXQKyZRstLGph9T9SS0fU v8Q2JiUE d5nsFjv/JqikilRHEV1PMRgA1Dg0eqvFLOrNuIRdFeJCDJ7X13zgagcSUjYhTfMETDV69TrVWQn3RpL1UY6WCG0kwkIblAXLdIPLDdDIx2qIRviwfdnnwV/aLDNG5bPKo6M9Ey7KrLu9vvyZg2LiaAoMpEnlSoEZCfQj8+lRhhAoVvqlQGVZYoc+AGgEbj5mIkW/H9g3FeHonkld+dhLoTCg9sA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Shiju Jose Add helper function to retrieve a feature entry from the supported features list, if supported. Signed-off-by: Shiju Jose --- drivers/cxl/core/core.h | 2 ++ drivers/cxl/core/features.c | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/drivers/cxl/core/core.h b/drivers/cxl/core/core.h index f67b3d99461e..3f5474f155d0 100644 --- a/drivers/cxl/core/core.h +++ b/drivers/cxl/core/core.h @@ -118,6 +118,8 @@ int cxl_port_get_switch_dport_bandwidth(struct cxl_port *port, struct access_coordinate *c); #ifdef CONFIG_CXL_FEATURES +struct cxl_feat_entry *cxl_get_feature_entry(struct cxl_dev_state *cxlds, + const uuid_t *feat_uuid); size_t cxl_get_feature(struct cxl_mailbox *cxl_mbox, const uuid_t *feat_uuid, enum cxl_get_feat_selection selection, void *feat_out, size_t feat_out_size, u16 offset, diff --git a/drivers/cxl/core/features.c b/drivers/cxl/core/features.c index 61298b79dc4f..66ed8e97fc08 100644 --- a/drivers/cxl/core/features.c +++ b/drivers/cxl/core/features.c @@ -209,6 +209,26 @@ int devm_cxl_setup_features(struct cxl_dev_state *cxlds) } EXPORT_SYMBOL_NS_GPL(devm_cxl_setup_features, "CXL"); +struct cxl_feat_entry *cxl_get_feature_entry(struct cxl_dev_state *cxlds, + const uuid_t *feat_uuid) +{ + struct cxl_features_state *cxlfs = to_cxlfs(cxlds); + struct cxl_feat_entry *feat_entry; + int count; + + /* + * Retrieve the feature entry from the supported features list, + * if the feature is supported. + */ + feat_entry = cxlfs->entries->ent; + for (count = 0; count < cxlfs->entries->num_features; count++, feat_entry++) { + if (uuid_equal(&feat_entry->uuid, feat_uuid)) + return feat_entry; + } + + return ERR_PTR(-ENOENT); +} + size_t cxl_get_feature(struct cxl_mailbox *cxl_mbox, const uuid_t *feat_uuid, enum cxl_get_feat_selection selection, void *feat_out, size_t feat_out_size, u16 offset,