]> www.infradead.org Git - users/hch/misc.git/commitdiff
scsi: ufs: host: mediatek: Fix UniPro setting for MT6989
authorPeter Wang <peter.wang@mediatek.com>
Mon, 11 Aug 2025 13:11:24 +0000 (21:11 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 15 Aug 2025 02:49:13 +0000 (22:49 -0400)
Set the UniPro attribute 0xD09E[4] bit to enable the 1144 functions
specifically for the MT6989 platform. This adjustment ensures proper
functionality and compatibility with the MT6989 hardware.

Signed-off-by: Peter Wang <peter.wang@mediatek.com>
Link: https://lore.kernel.org/r/20250811131423.3444014-9-peter.wang@mediatek.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/ufs-mediatek.c

index 1fb8a094d2afd0b8c7b0ed0a9443fc518f2e11dd..e3d99981a802246a5d1575e6440687d10054b8ff 100644 (file)
@@ -1475,6 +1475,7 @@ static int ufs_mtk_pre_link(struct ufs_hba *hba)
 {
        int ret;
        u32 tmp;
+       struct ufs_mtk_host *host = ufshcd_get_variant(hba);
 
        ufs_mtk_get_controller_version(hba);
 
@@ -1500,6 +1501,16 @@ static int ufs_mtk_pre_link(struct ufs_hba *hba)
 
        ret = ufshcd_dme_set(hba, UIC_ARG_MIB(VS_SAVEPOWERCONTROL), tmp);
 
+       /* Enable the 1144 functions setting */
+       if (host->ip_ver == IP_VER_MT6989) {
+               ret = ufshcd_dme_get(hba, UIC_ARG_MIB(VS_DEBUGOMC), &tmp);
+               if (ret)
+                       return ret;
+
+               tmp |= 0x10;
+               ret = ufshcd_dme_set(hba, UIC_ARG_MIB(VS_DEBUGOMC), tmp);
+       }
+
        return ret;
 }
 static void ufs_mtk_post_link(struct ufs_hba *hba)