Commit 88f4d3aa authored by Ram Kumar Dwivedi's avatar Ram Kumar Dwivedi Committed by Martin K. Petersen
Browse files

scsi: ufs: ufs-qcom: Add support for limiting HS gear and rate



Add support to limit Tx/Rx gear and rate during UFS initialization based
on DT property.

Also update the phy_gear to ensure PHY calibrations align with the
required gear and rate.

Signed-off-by: default avatarRam Kumar Dwivedi <quic_rdwivedi@quicinc.com>
Reviewed-by: default avatarAlim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 1cc577e6
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1092,6 +1092,18 @@ static void ufs_qcom_set_phy_gear(struct ufs_qcom_host *host)
	}
}

static void ufs_qcom_parse_gear_limits(struct ufs_hba *hba)
{
	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
	struct ufs_host_params *host_params = &host->host_params;
	u32 hs_gear_old = host_params->hs_tx_gear;

	ufshcd_parse_gear_limits(hba, host_params);
	if (host_params->hs_tx_gear != hs_gear_old) {
		host->phy_gear = host_params->hs_tx_gear;
	}
}

static void ufs_qcom_set_host_params(struct ufs_hba *hba)
{
	struct ufs_qcom_host *host = ufshcd_get_variant(hba);
@@ -1333,6 +1345,7 @@ static int ufs_qcom_init(struct ufs_hba *hba)
	ufs_qcom_advertise_quirks(hba);
	ufs_qcom_set_host_params(hba);
	ufs_qcom_set_phy_gear(host);
	ufs_qcom_parse_gear_limits(hba);

	err = ufs_qcom_ice_init(host);
	if (err)