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(structufs_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