summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ufs/ufshcd-priv.h
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2022-04-20 00:58:11 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2022-04-26 05:23:04 +0200
commita8b032b5b3ba4e9d8ecb913724d0725121445b24 (patch)
treefe2a80ba4398f80968d1131598c79962f5213fab /drivers/scsi/ufs/ufshcd-priv.h
parentscsi: ufs: Move the struct ufs_ref_clk definition (diff)
downloadlinux-a8b032b5b3ba4e9d8ecb913724d0725121445b24.tar.xz
linux-a8b032b5b3ba4e9d8ecb913724d0725121445b24.zip
scsi: ufs: Move the ufs_is_valid_unit_desc_lun() definition
Move the definition of this function from a public into a private header file since it is only used inside the UFS core. Link: https://lore.kernel.org/r/20220419225811.4127248-29-bvanassche@acm.org Tested-by: Bean Huo <beanhuo@micron.com> Reviewed-by: Bean Huo <beanhuo@micron.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to '')
-rw-r--r--drivers/scsi/ufs/ufshcd-priv.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufshcd-priv.h b/drivers/scsi/ufs/ufshcd-priv.h
index 3fa8ab94e4e1..38bc77d3dbbd 100644
--- a/drivers/scsi/ufs/ufshcd-priv.h
+++ b/drivers/scsi/ufs/ufshcd-priv.h
@@ -276,4 +276,23 @@ static inline int ufshcd_rpm_put(struct ufs_hba *hba)
return pm_runtime_put(&hba->ufs_device_wlun->sdev_gendev);
}
+/**
+ * ufs_is_valid_unit_desc_lun - checks if the given LUN has a unit descriptor
+ * @dev_info: pointer of instance of struct ufs_dev_info
+ * @lun: LU number to check
+ * @return: true if the lun has a matching unit descriptor, false otherwise
+ */
+static inline bool ufs_is_valid_unit_desc_lun(struct ufs_dev_info *dev_info,
+ u8 lun, u8 param_offset)
+{
+ if (!dev_info || !dev_info->max_lu_supported) {
+ pr_err("Max General LU supported by UFS isn't initialized\n");
+ return false;
+ }
+ /* WB is available only for the logical unit from 0 to 7 */
+ if (param_offset == UNIT_DESC_PARAM_WB_BUF_ALLOC_UNITS)
+ return lun < UFS_UPIU_MAX_WB_LUN_ID;
+ return lun == UFS_UPIU_RPMB_WLUN || (lun < dev_info->max_lu_supported);
+}
+
#endif /* _UFSHCD_PRIV_H_ */