Thread (3 messages) 3 messages, 2 authors, 2021-05-31

RE: [PATCH v1] scsi: ufs-mediatek: Fix HCI version in some platforms

From: "Alim Akhtar" <alim.akhtar@samsung.com>
Date: 2021-05-31 05:34:56

Hi Stanley,
-----Original Message-----
From: Stanley Chu <redacted>
Sent: 31 May 2021 10:48
To: linux-scsi@vger.kernel.org; martin.petersen@oracle.com;
avri.altman@wdc.com; alim.akhtar@samsung.com; jejb@linux.ibm.com
Cc: peter.wang@mediatek.com; chun-hung.wu@mediatek.com;
alice.chao@mediatek.com; jonathan.hsu@mediatek.com;
powen.kao@mediatek.com; cc.chou@mediatek.com;
chaotian.jing@mediatek.com; jiajie.hao@mediatek.com; Stanley Chu
[off-list ref]
Subject: [PATCH v1] scsi: ufs-mediatek: Fix HCI version in some platforms

Some MediaTek platforms have incorrect UFSHCI versions showed in register
map. Fix the version by referring to UniPro version which is always
correct.
A bit of extra details will help here, like say HCI version below 3.0 is
broken on some MediaTek SoC etc.
That will also help to understand if this was a deviation from HCI spec. 
Signed-off-by: Stanley Chu <redacted>
---
With the updated commit message, feel free to add
Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com>
quoted hunk ↗ jump to hunk
 drivers/scsi/ufs/ufs-mediatek.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
diff --git a/drivers/scsi/ufs/ufs-mediatek.c
b/drivers/scsi/ufs/ufs-mediatek.c
quoted hunk ↗ jump to hunk
index 9912e208c2a1..3d3605fd05b2 100644
--- a/drivers/scsi/ufs/ufs-mediatek.c
+++ b/drivers/scsi/ufs/ufs-mediatek.c
@@ -606,6 +606,16 @@ static void ufs_mtk_get_controller_version(struct
ufs_hba *hba)
 		if (ver >= UFS_UNIPRO_VER_1_8)
 			host->hw_ver.major = 3;
 	}
+
+	/* Fix HCI version for some platforms with incorrect version */
+	if (hba->ufs_version < ufshci_version(3, 0) &&
+	    host->hw_ver.major == 3)
+		hba->ufs_version = ufshci_version(3, 0); }
+
+static u32 ufs_mtk_get_ufs_hci_version(struct ufs_hba *hba) {
+	return hba->ufs_version;
 }

 /**
@@ -1042,6 +1052,7 @@ static void ufs_mtk_event_notify(struct ufs_hba
*hba,  static const struct ufs_hba_variant_ops ufs_hba_mtk_vops = {
 	.name                = "mediatek.ufshci",
 	.init                = ufs_mtk_init,
+	.get_ufs_hci_version = ufs_mtk_get_ufs_hci_version,
 	.setup_clocks        = ufs_mtk_setup_clocks,
 	.hce_enable_notify   = ufs_mtk_hce_enable_notify,
 	.link_startup_notify = ufs_mtk_link_startup_notify,
--
2.18.0
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help