From 892834cb620c2cc39944e8c776244b458f8fdce6 Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Wed, 3 Jul 2024 17:11:49 +0800 Subject: [PATCH] scsi: ufs: rockchip: Add shutdown support Disable vcc if it exists, so the rom code could relink the device from the init state. Change-Id: I4493df466f3ea60b8c7a7e3befd110311fce6f6c Signed-off-by: Shawn Lin --- drivers/ufs/host/ufs-rockchip.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/ufs/host/ufs-rockchip.c b/drivers/ufs/host/ufs-rockchip.c index b1c7d8d89c90..6c73679669b0 100644 --- a/drivers/ufs/host/ufs-rockchip.c +++ b/drivers/ufs/host/ufs-rockchip.c @@ -615,6 +615,16 @@ static int ufs_rockchip_resume(struct device *dev) return 0; } +static void ufs_rockchip_shutdown(struct platform_device *pdev) +{ + struct ufs_hba *hba = platform_get_drvdata(pdev); + + dev_info(&pdev->dev, "shutting down...\n"); + + ufshcd_pltfrm_shutdown(pdev); + ufs_rockchip_device_reset(hba); +} + static const struct dev_pm_ops ufs_rockchip_pm_ops = { SET_SYSTEM_SLEEP_PM_OPS(ufs_rockchip_suspend, ufs_rockchip_resume) SET_RUNTIME_PM_OPS(ufs_rockchip_runtime_suspend, ufs_rockchip_runtime_resume, NULL) @@ -625,7 +635,7 @@ static const struct dev_pm_ops ufs_rockchip_pm_ops = { static struct platform_driver ufs_rockchip_pltform = { .probe = ufs_rockchip_probe, .remove = ufs_rockchip_remove, - .shutdown = ufshcd_pltfrm_shutdown, + .shutdown = ufs_rockchip_shutdown, .driver = { .name = "ufshcd-rockchip", .pm = &ufs_rockchip_pm_ops,