Torsten Duwe fa7b29
From 952f4e81274131eda4ab0d751d6f2700b0356542 Mon Sep 17 00:00:00 2001
Torsten Duwe fa7b29
From: Marco Chiappero <marco.chiappero@intel.com>
Torsten Duwe fa7b29
Date: Thu, 16 Dec 2021 09:13:21 +0000
Torsten Duwe fa7b29
Subject: [PATCH] crypto: qat - leverage bitfield.h utils for PFVF messages
Torsten Duwe fa7b29
Git-commit: 952f4e81274131eda4ab0d751d6f2700b0356542
Torsten Duwe fa7b29
Patch-mainline: v5.17-rc1
Torsten Duwe fa7b29
References: jsc#PED-1073
Torsten Duwe fa7b29
Torsten Duwe fa7b29
The PFVF protocol defines messages composed of a number of control
Torsten Duwe fa7b29
bitfields. Replace all the code setting and retrieving such bits
Torsten Duwe fa7b29
with the utilities from bitfield.h, to improve code quality and
Torsten Duwe fa7b29
readability.
Torsten Duwe fa7b29
Torsten Duwe fa7b29
Signed-off-by: Marco Chiappero <marco.chiappero@intel.com>
Torsten Duwe fa7b29
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Torsten Duwe fa7b29
Reviewed-by: Fiona Trahe <fiona.trahe@intel.com>
Torsten Duwe fa7b29
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Torsten Duwe fa7b29
Signed-off-by: Torsten Duwe <duwe@suse.de>
Torsten Duwe fa7b29
Torsten Duwe fa7b29
---
Torsten Duwe fa7b29
 drivers/crypto/qat/qat_common/adf_pfvf_msg.h      |  8 ++++----
Torsten Duwe fa7b29
 drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c | 13 +++++++------
Torsten Duwe fa7b29
 drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c   |  7 +++----
Torsten Duwe fa7b29
 3 files changed, 14 insertions(+), 14 deletions(-)
Torsten Duwe fa7b29
Torsten Duwe fa7b29
diff --git a/drivers/crypto/qat/qat_common/adf_pfvf_msg.h b/drivers/crypto/qat/qat_common/adf_pfvf_msg.h
Torsten Duwe fa7b29
index 26eb27853e834..daee3d7ceb8c3 100644
Torsten Duwe fa7b29
--- a/drivers/crypto/qat/qat_common/adf_pfvf_msg.h
Torsten Duwe fa7b29
+++ b/drivers/crypto/qat/qat_common/adf_pfvf_msg.h
Torsten Duwe fa7b29
@@ -3,6 +3,8 @@
Torsten Duwe fa7b29
 #ifndef ADF_PFVF_MSG_H
Torsten Duwe fa7b29
 #define ADF_PFVF_MSG_H
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
+#include <linux/bits.h>
Torsten Duwe fa7b29
+
Torsten Duwe fa7b29
 /*
Torsten Duwe fa7b29
  * PF<->VF Messaging
Torsten Duwe fa7b29
  * The PF has an array of 32-bit PF2VF registers, one for each VF.  The
Torsten Duwe fa7b29
@@ -86,10 +88,8 @@ enum pfvf_compatibility_version {
Torsten Duwe fa7b29
 };
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
 /* PF->VF Version Response */
Torsten Duwe fa7b29
-#define ADF_PF2VF_VERSION_RESP_VERS_SHIFT	0
Torsten Duwe fa7b29
-#define ADF_PF2VF_VERSION_RESP_VERS_MASK	0xFF
Torsten Duwe fa7b29
-#define ADF_PF2VF_VERSION_RESP_RESULT_SHIFT	8
Torsten Duwe fa7b29
-#define ADF_PF2VF_VERSION_RESP_RESULT_MASK	0x03
Torsten Duwe fa7b29
+#define ADF_PF2VF_VERSION_RESP_VERS_MASK	GENMASK(7, 0)
Torsten Duwe fa7b29
+#define ADF_PF2VF_VERSION_RESP_RESULT_MASK	GENMASK(9, 8)
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
 enum pf2vf_compat_response {
Torsten Duwe fa7b29
 	ADF_PF2VF_VF_COMPATIBLE			= 0x01,
Torsten Duwe fa7b29
diff --git a/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c b/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
Torsten Duwe fa7b29
index bb4d7db68579a..8785b9d1df91a 100644
Torsten Duwe fa7b29
--- a/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
Torsten Duwe fa7b29
+++ b/drivers/crypto/qat/qat_common/adf_pfvf_pf_proto.c
Torsten Duwe fa7b29
@@ -1,5 +1,6 @@
Torsten Duwe fa7b29
 // SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only)
Torsten Duwe fa7b29
 /* Copyright(c) 2015 - 2021 Intel Corporation */
Torsten Duwe fa7b29
+#include <linux/bitfield.h>
Torsten Duwe fa7b29
 #include <linux/spinlock.h>
Torsten Duwe fa7b29
 #include <linux/types.h>
Torsten Duwe fa7b29
 #include "adf_accel_devices.h"
Torsten Duwe fa7b29
@@ -64,9 +65,9 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u8 vf_nr,
Torsten Duwe fa7b29
 			compat = ADF_PF2VF_VF_COMPAT_UNKNOWN;
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
 		resp->type = ADF_PF2VF_MSGTYPE_VERSION_RESP;
Torsten Duwe fa7b29
-		resp->data = ADF_PFVF_COMPAT_THIS_VERSION <<
Torsten Duwe fa7b29
-			     ADF_PF2VF_VERSION_RESP_VERS_SHIFT;
Torsten Duwe fa7b29
-		resp->data |= compat << ADF_PF2VF_VERSION_RESP_RESULT_SHIFT;
Torsten Duwe fa7b29
+		resp->data = FIELD_PREP(ADF_PF2VF_VERSION_RESP_VERS_MASK,
Torsten Duwe fa7b29
+					ADF_PFVF_COMPAT_THIS_VERSION) |
Torsten Duwe fa7b29
+			     FIELD_PREP(ADF_PF2VF_VERSION_RESP_RESULT_MASK, compat);
Torsten Duwe fa7b29
 		}
Torsten Duwe fa7b29
 		break;
Torsten Duwe fa7b29
 	case ADF_VF2PF_MSGTYPE_VERSION_REQ:
Torsten Duwe fa7b29
@@ -80,10 +81,10 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u8 vf_nr,
Torsten Duwe fa7b29
 		/* PF always newer than legacy VF */
Torsten Duwe fa7b29
 		compat = ADF_PF2VF_VF_COMPATIBLE;
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
-		resp->type = ADF_PF2VF_MSGTYPE_VERSION_RESP;
Torsten Duwe fa7b29
 		/* Set legacy major and minor version to the latest, 1.1 */
Torsten Duwe fa7b29
-		resp->data |= 0x11;
Torsten Duwe fa7b29
-		resp->data |= compat << ADF_PF2VF_VERSION_RESP_RESULT_SHIFT;
Torsten Duwe fa7b29
+		resp->type = ADF_PF2VF_MSGTYPE_VERSION_RESP;
Torsten Duwe fa7b29
+		resp->data = FIELD_PREP(ADF_PF2VF_VERSION_RESP_VERS_MASK, 0x11) |
Torsten Duwe fa7b29
+			     FIELD_PREP(ADF_PF2VF_VERSION_RESP_RESULT_MASK, compat);
Torsten Duwe fa7b29
 		}
Torsten Duwe fa7b29
 		break;
Torsten Duwe fa7b29
 	case ADF_VF2PF_MSGTYPE_INIT:
Torsten Duwe fa7b29
diff --git a/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c b/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
Torsten Duwe fa7b29
index 5184a77598d2e..130d7b9c12ea7 100644
Torsten Duwe fa7b29
--- a/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
Torsten Duwe fa7b29
+++ b/drivers/crypto/qat/qat_common/adf_pfvf_vf_msg.c
Torsten Duwe fa7b29
@@ -1,5 +1,6 @@
Torsten Duwe fa7b29
 // SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only)
Torsten Duwe fa7b29
 /* Copyright(c) 2015 - 2021 Intel Corporation */
Torsten Duwe fa7b29
+#include <linux/bitfield.h>
Torsten Duwe fa7b29
 #include "adf_accel_devices.h"
Torsten Duwe fa7b29
 #include "adf_common_drv.h"
Torsten Duwe fa7b29
 #include "adf_pfvf_msg.h"
Torsten Duwe fa7b29
@@ -67,10 +68,8 @@ int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
Torsten Duwe fa7b29
 		return ret;
Torsten Duwe fa7b29
 	}
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
-	pf_version = (resp.data >> ADF_PF2VF_VERSION_RESP_VERS_SHIFT)
Torsten Duwe fa7b29
-		     & ADF_PF2VF_VERSION_RESP_VERS_MASK;
Torsten Duwe fa7b29
-	compat = (resp.data >> ADF_PF2VF_VERSION_RESP_RESULT_SHIFT)
Torsten Duwe fa7b29
-		 & ADF_PF2VF_VERSION_RESP_RESULT_MASK;
Torsten Duwe fa7b29
+	pf_version = FIELD_GET(ADF_PF2VF_VERSION_RESP_VERS_MASK, resp.data);
Torsten Duwe fa7b29
+	compat = FIELD_GET(ADF_PF2VF_VERSION_RESP_RESULT_MASK, resp.data);
Torsten Duwe fa7b29
 
Torsten Duwe fa7b29
 	/* Response from PF received, check compatibility */
Torsten Duwe fa7b29
 	switch (compat) {
Torsten Duwe fa7b29
-- 
Torsten Duwe fa7b29
2.35.3
Torsten Duwe fa7b29