Skip to content

Commit 0bd3cb8

Browse files
quic-cangmartinkpetersen
authored andcommitted
scsi: ufs: ufs-qcom: Set initial PHY gear to max HS gear for HW ver 4 and newer
Since HW ver 4, max HS gear can be get from UFS host controller's register, use the max HS gear as the initial PHY gear instead of UFS_HS_G2, so that we don't need to update the hard code for newer targets in future. Reviewed-by: Nitin Rawat <[email protected]> Reviewed-by: Manivannan Sadhasivam <[email protected]> Signed-off-by: Can Guo <[email protected]> Link: https://lore.kernel.org/r/[email protected] Tested-by: Neil Armstrong <[email protected]> # on SM8550-QRD Signed-off-by: Martin K. Petersen <[email protected]>
1 parent 9d8528a commit 0bd3cb8

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

drivers/ufs/host/ufs-qcom.c

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,6 +1060,22 @@ static void ufs_qcom_advertise_quirks(struct ufs_hba *hba)
10601060
hba->quirks |= UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH;
10611061
}
10621062

1063+
static void ufs_qcom_set_phy_gear(struct ufs_qcom_host *host)
1064+
{
1065+
struct ufs_host_params *host_params = &host->host_params;
1066+
1067+
host->phy_gear = host_params->hs_tx_gear;
1068+
1069+
/*
1070+
* For controllers whose major HW version is < 4, power up the PHY using
1071+
* minimum supported gear (UFS_HS_G2). Switching to max gear will be
1072+
* performed during reinit if supported. For newer controllers, whose
1073+
* major HW version is >= 4, power up the PHY using max supported gear.
1074+
*/
1075+
if (host->hw_ver.major < 0x4)
1076+
host->phy_gear = UFS_HS_G2;
1077+
}
1078+
10631079
static void ufs_qcom_set_host_params(struct ufs_hba *hba)
10641080
{
10651081
struct ufs_qcom_host *host = ufshcd_get_variant(hba);
@@ -1296,6 +1312,7 @@ static int ufs_qcom_init(struct ufs_hba *hba)
12961312
ufs_qcom_set_caps(hba);
12971313
ufs_qcom_advertise_quirks(hba);
12981314
ufs_qcom_set_host_params(hba);
1315+
ufs_qcom_set_phy_gear(host);
12991316

13001317
err = ufs_qcom_ice_init(host);
13011318
if (err)
@@ -1313,12 +1330,6 @@ static int ufs_qcom_init(struct ufs_hba *hba)
13131330
dev_warn(dev, "%s: failed to configure the testbus %d\n",
13141331
__func__, err);
13151332

1316-
/*
1317-
* Power up the PHY using the minimum supported gear (UFS_HS_G2).
1318-
* Switching to max gear will be performed during reinit if supported.
1319-
*/
1320-
host->phy_gear = UFS_HS_G2;
1321-
13221333
return 0;
13231334

13241335
out_variant_clear:

0 commit comments

Comments
 (0)