]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: ufs: host: mediatek: Require CONFIG_PM
authorArnd Bergmann <arnd@arndb.de>
Mon, 2 Feb 2026 09:50:18 +0000 (10:50 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 4 Feb 2026 03:28:44 +0000 (22:28 -0500)
The added print statement from a recent fix causes the driver to fail
building when CONFIG_PM is disabled:

drivers/ufs/host/ufs-mediatek.c: In function 'ufs_mtk_resume':
drivers/ufs/host/ufs-mediatek.c:1890:40: error: 'struct dev_pm_info' has no member named 'request'
 1890 |                         hba->dev->power.request,

It seems unlikely that the driver can work at all without CONFIG_PM, so
just add a dependency and remove the existing ifdef checks, rather than
adding another ifdef.

Fixes: 15ef3f5aa822 ("scsi: ufs: host: mediatek: Enhance recovery on resume failure")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://patch.msgid.link/20260202095052.1232703-1-arnd@kernel.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ufs/host/Kconfig
drivers/ufs/host/ufs-mediatek.c
include/ufs/ufshcd.h

index 7d5117b2dab4a70410a1a89fc36ede744922f366..964ae70e7390d00c0294d2d6ad90f95fe2d1d77e 100644 (file)
@@ -72,6 +72,7 @@ config SCSI_UFS_QCOM
 config SCSI_UFS_MEDIATEK
        tristate "Mediatek specific hooks to UFS controller platform driver"
        depends on SCSI_UFSHCD_PLATFORM && ARCH_MEDIATEK
+       depends on PM
        depends on RESET_CONTROLLER
        select PHY_MTK_UFS
        select RESET_TI_SYSCON
index ecbbf52bf7341d43b53a781710d7dbf4cb9bf97a..05892b9ac5283372fb14d4f4c0bb1ad2b39d9454 100644 (file)
@@ -2437,7 +2437,6 @@ static void ufs_mtk_remove(struct platform_device *pdev)
        ufshcd_pltfrm_remove(pdev);
 }
 
-#ifdef CONFIG_PM_SLEEP
 static int ufs_mtk_system_suspend(struct device *dev)
 {
        struct ufs_hba *hba = dev_get_drvdata(dev);
@@ -2484,9 +2483,7 @@ out:
 
        return ret;
 }
-#endif
 
-#ifdef CONFIG_PM
 static int ufs_mtk_runtime_suspend(struct device *dev)
 {
        struct ufs_hba *hba = dev_get_drvdata(dev);
@@ -2525,13 +2522,10 @@ static int ufs_mtk_runtime_resume(struct device *dev)
 
        return ufshcd_runtime_resume(dev);
 }
-#endif
 
 static const struct dev_pm_ops ufs_mtk_pm_ops = {
-       SET_SYSTEM_SLEEP_PM_OPS(ufs_mtk_system_suspend,
-                               ufs_mtk_system_resume)
-       SET_RUNTIME_PM_OPS(ufs_mtk_runtime_suspend,
-                          ufs_mtk_runtime_resume, NULL)
+       SYSTEM_SLEEP_PM_OPS(ufs_mtk_system_suspend, ufs_mtk_system_resume)
+       RUNTIME_PM_OPS(ufs_mtk_runtime_suspend, ufs_mtk_runtime_resume, NULL)
        .prepare         = ufshcd_suspend_prepare,
        .complete        = ufshcd_resume_complete,
 };
@@ -2541,7 +2535,7 @@ static struct platform_driver ufs_mtk_pltform = {
        .remove = ufs_mtk_remove,
        .driver = {
                .name   = "ufshcd-mtk",
-               .pm     = &ufs_mtk_pm_ops,
+               .pm     = pm_ptr(&ufs_mtk_pm_ops),
                .of_match_table = ufs_mtk_of_match,
        },
 };
index a64c19563b03bb88b3ad59308c2e709d08be5628..8563b66489764d3e2bdea3ad2f33e2d09039e0ce 100644 (file)
@@ -1344,17 +1344,13 @@ static inline void *ufshcd_get_variant(struct ufs_hba *hba)
        return hba->priv;
 }
 
-#ifdef CONFIG_PM
 extern int ufshcd_runtime_suspend(struct device *dev);
 extern int ufshcd_runtime_resume(struct device *dev);
-#endif
-#ifdef CONFIG_PM_SLEEP
 extern int ufshcd_system_suspend(struct device *dev);
 extern int ufshcd_system_resume(struct device *dev);
 extern int ufshcd_system_freeze(struct device *dev);
 extern int ufshcd_system_thaw(struct device *dev);
 extern int ufshcd_system_restore(struct device *dev);
-#endif
 
 extern int ufshcd_dme_reset(struct ufs_hba *hba);
 extern int ufshcd_dme_enable(struct ufs_hba *hba);