On Mon, Nov 28, 2022 at 05:20:42PM -0800, Asutosh Das wrote: > The code to parse the extended feature is duplicated twice > in the ufs core. Replace the duplicated code with a > function. > > Signed-off-by: Asutosh Das <quic_asutoshd@xxxxxxxxxxx> > Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx> Looks like you missed my tag. But anyhow: Reviewed-by: Manivannan Sadhasivam <mani@xxxxxxxxxx> Thanks, Mani > --- > drivers/ufs/core/ufshcd.c | 21 +++++++++++++-------- > 1 file changed, 13 insertions(+), 8 deletions(-) > > diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c > index 2dbe249..6ea22b5 100644 > --- a/drivers/ufs/core/ufshcd.c > +++ b/drivers/ufs/core/ufshcd.c > @@ -215,6 +215,17 @@ ufs_get_desired_pm_lvl_for_dev_link_state(enum ufs_dev_pwr_mode dev_state, > return UFS_PM_LVL_0; > } > > +static unsigned int ufs_get_ext_ufs_feature(struct ufs_hba *hba, > + const u8 *desc_buf) > +{ > + if (hba->desc_size[QUERY_DESC_IDN_DEVICE] < > + DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP + 4) > + return 0; > + > + return get_unaligned_be32(desc_buf + > + DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP); > +} > + > static const struct ufs_dev_quirk ufs_fixups[] = { > /* UFS cards deviations table */ > { .wmanufacturerid = UFS_VENDOR_MICRON, > @@ -7608,13 +7619,7 @@ 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); > - > + ext_ufs_feature = ufs_get_ext_ufs_feature(hba, desc_buf); > if (!(ext_ufs_feature & UFS_DEV_WRITE_BOOSTER_SUP)) > goto wb_disabled; > > @@ -7668,7 +7673,7 @@ static void ufshcd_temp_notif_probe(struct ufs_hba *hba, const u8 *desc_buf) > if (!(hba->caps & UFSHCD_CAP_TEMP_NOTIF) || dev_info->wspecversion < 0x300) > return; > > - ext_ufs_feature = get_unaligned_be32(desc_buf + DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP); > + ext_ufs_feature = ufs_get_ext_ufs_feature(hba, desc_buf); > > if (ext_ufs_feature & UFS_DEV_LOW_TEMP_NOTIF) > mask |= MASK_EE_TOO_LOW_TEMP; > -- > 2.7.4 >