mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
FROMGIT: scsi: ufs: core: Advanced RPMB detection
Check UFS Advanced RPMB LU enablement during ufshcd_lu_init().
Change-Id: Ib923917dd9144f824bc08e4b600e6fd54e1716a5
Signed-off-by: Bean Huo <beanhuo@micron.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Bug: 258234315
(cherry picked from commit f6b9d0fe5c git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next)
Signed-off-by: Bart Van Assche <bvanassche@google.com>
This commit is contained in:
committed by
Bart Van Assche
parent
7242e938ec
commit
efa542a826
@@ -5027,6 +5027,12 @@ static void ufshcd_lu_init(struct ufs_hba *hba, struct scsi_device *sdev)
|
||||
desc_buf[UNIT_DESC_PARAM_LU_WR_PROTECT] == UFS_LU_POWER_ON_WP)
|
||||
hba->dev_info.is_lu_power_on_wp = true;
|
||||
|
||||
/* In case of RPMB LU, check if advanced RPMB mode is enabled */
|
||||
if (desc_buf[UNIT_DESC_PARAM_UNIT_INDEX] == UFS_UPIU_RPMB_WLUN &&
|
||||
desc_buf[RPMB_UNIT_DESC_PARAM_REGION_EN] & BIT(4))
|
||||
hba->dev_info.b_advanced_rpmb_en = true;
|
||||
|
||||
|
||||
kfree(desc_buf);
|
||||
set_qdepth:
|
||||
/*
|
||||
|
||||
@@ -214,6 +214,28 @@ enum unit_desc_param {
|
||||
UNIT_DESC_PARAM_WB_BUF_ALLOC_UNITS = 0x29,
|
||||
};
|
||||
|
||||
/* RPMB Unit descriptor parameters offsets in bytes*/
|
||||
enum rpmb_unit_desc_param {
|
||||
RPMB_UNIT_DESC_PARAM_LEN = 0x0,
|
||||
RPMB_UNIT_DESC_PARAM_TYPE = 0x1,
|
||||
RPMB_UNIT_DESC_PARAM_UNIT_INDEX = 0x2,
|
||||
RPMB_UNIT_DESC_PARAM_LU_ENABLE = 0x3,
|
||||
RPMB_UNIT_DESC_PARAM_BOOT_LUN_ID = 0x4,
|
||||
RPMB_UNIT_DESC_PARAM_LU_WR_PROTECT = 0x5,
|
||||
RPMB_UNIT_DESC_PARAM_LU_Q_DEPTH = 0x6,
|
||||
RPMB_UNIT_DESC_PARAM_PSA_SENSITIVE = 0x7,
|
||||
RPMB_UNIT_DESC_PARAM_MEM_TYPE = 0x8,
|
||||
RPMB_UNIT_DESC_PARAM_REGION_EN = 0x9,
|
||||
RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_SIZE = 0xA,
|
||||
RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_COUNT = 0xB,
|
||||
RPMB_UNIT_DESC_PARAM_REGION0_SIZE = 0x13,
|
||||
RPMB_UNIT_DESC_PARAM_REGION1_SIZE = 0x14,
|
||||
RPMB_UNIT_DESC_PARAM_REGION2_SIZE = 0x15,
|
||||
RPMB_UNIT_DESC_PARAM_REGION3_SIZE = 0x16,
|
||||
RPMB_UNIT_DESC_PARAM_PROVISIONING_TYPE = 0x17,
|
||||
RPMB_UNIT_DESC_PARAM_PHY_MEM_RSRC_CNT = 0x18,
|
||||
};
|
||||
|
||||
/* Device descriptor parameters offsets in bytes*/
|
||||
enum device_desc_param {
|
||||
DEVICE_DESC_PARAM_LEN = 0x0,
|
||||
@@ -603,6 +625,9 @@ struct ufs_dev_info {
|
||||
|
||||
bool b_rpm_dev_flush_capable;
|
||||
u8 b_presrv_uspc_en;
|
||||
|
||||
bool b_advanced_rpmb_en;
|
||||
|
||||
ANDROID_KABI_RESERVE(1);
|
||||
|
||||
ANDROID_OEM_DATA(1);
|
||||
|
||||
Reference in New Issue
Block a user