2022-12-11 13:51:37

by Arthur Simchaev

[permalink] [raw]
Subject: [PATCH v5 0/4] ufs: core: Always read the descriptors with max length

v4--v5:
Change patch 2 according to Bart's comment

v3--v4:
Add "Reviewed-by" to patch's commits
Use kzalloc instead of kmalloc in drivers/ufs/core/ufshcd.c - patch 2/4

v2--v3:
Based on Bean's comments:
1)Use kzalloc instead of kmalloc in ufshcd_set_active_icc_lvl - patch 2/4
2)Delete UFS_RPMB_UNIT definition - patch 2/4
3)Delete len description - patch 3/4

v1--v2:
Fix argument warning in ufshpb.c

Read any descriptor with a maximum size of QUERY_DESC_MAX_SIZE.
According to the spec the device rerurns the actual size.
Thus can improve code readability and save CPU cycles.
While at it, cleanup few leftovers around the descriptor size parameter.

Suggested-by: Bean Huo <[email protected]>

Arthur Simchaev (4):
ufs:core: Remove redundant wb check
ufs:core: Remove redundant desc_size variable from hba
ufs: core: Remove len parameter from ufshcd_set_active_icc_lvl
ufs: core: Remove ufshcd_map_desc_id_to_length function

drivers/ufs/core/ufs_bsg.c | 7 +--
drivers/ufs/core/ufshcd-priv.h | 3 --
drivers/ufs/core/ufshcd.c | 100 ++++++++++-------------------------------
drivers/ufs/core/ufshpb.c | 5 +--
include/ufs/ufshcd.h | 1 -
5 files changed, 26 insertions(+), 90 deletions(-)

--
2.7.4


2022-12-11 13:51:52

by Arthur Simchaev

[permalink] [raw]
Subject: [PATCH v5 1/4] ufs: core: Remove redundant wb check

We used to use the extended-feature field in the device descriptor,
as an indication that the device supports ufs2.2 or later.
Remove that as this check is specifically done few lines above.

Reviewed-by: Bart Van Assche <[email protected]>
Reviewed-by: Bean Huo <[email protected]>
Signed-off-by: Arthur Simchaev <[email protected]>
---
drivers/ufs/core/ufshcd.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 2dbe249..2e47c69 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -7608,10 +7608,6 @@ static void ufshcd_wb_probe(struct ufs_hba *hba, const u8 *desc_buf)
(hba->dev_quirks & UFS_DEVICE_QUIRK_SUPPORT_EXTENDED_FEATURES)))
goto wb_disabled;

- if (hba->desc_size[QUERY_DESC_IDN_DEVICE] <
- DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP + 4)
- goto wb_disabled;
-
ext_ufs_feature = get_unaligned_be32(desc_buf +
DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP);

--
2.7.4

2022-12-13 05:45:24

by Stanley Jhu

[permalink] [raw]
Subject: Re: [PATCH v5 1/4] ufs: core: Remove redundant wb check

On Sun, Dec 11, 2022 at 9:08 PM Arthur Simchaev <[email protected]> wrote:
>
> We used to use the extended-feature field in the device descriptor,
> as an indication that the device supports ufs2.2 or later.
> Remove that as this check is specifically done few lines above.
>
> Reviewed-by: Bart Van Assche <[email protected]>
> Reviewed-by: Bean Huo <[email protected]>
> Signed-off-by: Arthur Simchaev <[email protected]>

Reviewed-by: Stanley Chu <[email protected]>

2022-12-30 22:02:17

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH v5 0/4] ufs: core: Always read the descriptors with max length


Arthur,

> Read any descriptor with a maximum size of QUERY_DESC_MAX_SIZE.
> According to the spec the device rerurns the actual size. Thus can
> improve code readability and save CPU cycles. While at it, cleanup
> few leftovers around the descriptor size parameter.

Applied to 6.3/scsi-staging, thanks!

--
Martin K. Petersen Oracle Linux Engineering