[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221011072126.30802-1-gaoyankaigeren@gmail.com>
Date: Tue, 11 Oct 2022 15:21:26 +0800
From: Ten Gao <gaoyankaigeren@...il.com>
To: Alim Akhtar <alim.akhtar@...sung.com>,
Avri Altman <avri.altman@....com>,
Bart Van Assche <bvanassche@....org>,
"James E . J . Bottomley" <jejb@...ux.ibm.com>,
Bean Huo <beanhuo@...ron.com>,
Adrian Hunter <adrian.hunter@...el.com>
Cc: "Martin K . Petersen" <martin.petersen@...cle.com>,
Mike Snitzer <snitzer@...hat.com>,
Ulf Hansson <ulf.hansson@...aro.org>,
Eric Biggers <ebiggers@...gle.com>,
Kiwoong Kim <kwmad.kim@...sung.com>,
linux-scsi@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH 2/2] ufs: core: remove encrypt when no data transfer
From: Ten Gao <ten.gao@...soc.com>
when there is no data transmission, ufs is unnecessary to encrypt.
We need to adjust scsi crypto relation.
Signed-off-by: Ten Gao <ten.gao@...soc.com>
---
drivers/ufs/core/ufshcd-crypto.h | 10 ++++++----
include/ufs/ufshci.h | 2 ++
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/ufs/core/ufshcd-crypto.h b/drivers/ufs/core/ufshcd-crypto.h
index 504cc841540b..5bc2a0cbdfa6 100644
--- a/drivers/ufs/core/ufshcd-crypto.h
+++ b/drivers/ufs/core/ufshcd-crypto.h
@@ -30,10 +30,12 @@ ufshcd_prepare_req_desc_hdr_crypto(struct ufshcd_lrb *lrbp, u32 *dword_0,
u32 *dword_1, u32 *dword_3)
{
if (lrbp->crypto_key_slot >= 0) {
- *dword_0 |= UTP_REQ_DESC_CRYPTO_ENABLE_CMD;
- *dword_0 |= lrbp->crypto_key_slot;
- *dword_1 = lower_32_bits(lrbp->data_unit_num);
- *dword_3 = upper_32_bits(lrbp->data_unit_num);
+ if ((*dword_0 & UTRD_DIRECTION) != UTP_NO_DATA_TRANSFER) {
+ *dword_0 |= UTP_REQ_DESC_CRYPTO_ENABLE_CMD;
+ *dword_0 |= lrbp->crypto_key_slot;
+ *dword_1 = lower_32_bits(lrbp->data_unit_num);
+ *dword_3 = upper_32_bits(lrbp->data_unit_num);
+ }
}
}
diff --git a/include/ufs/ufshci.h b/include/ufs/ufshci.h
index f525566a0864..7dbfeecaa36c 100644
--- a/include/ufs/ufshci.h
+++ b/include/ufs/ufshci.h
@@ -387,6 +387,8 @@ enum {
UTP_DEVICE_TO_HOST = 0x04000000,
};
+#define UTRD_DIRECTION 0x6000000
+
/* Overall command status values */
enum utp_ocs {
OCS_SUCCESS = 0x0,
--
2.17.1
Powered by blists - more mailing lists