[PATCH v5 6/7] scsi: ufs: rockchip: initial support for UFS
Ulf Hansson
ulf.hansson at linaro.org
Tue Nov 12 06:54:36 PST 2024
[...]
> +
> +#ifdef CONFIG_PM_SLEEP
> +static int ufs_rockchip_system_suspend(struct device *dev)
> +{
> + struct ufs_hba *hba = dev_get_drvdata(dev);
> + struct ufs_rockchip_host *host = ufshcd_get_variant(hba);
> + int err;
> +
> + if (hba->spm_lvl < UFS_PM_LVL_5)
> + device_set_awake_path(dev);
> +
> + err = ufshcd_system_suspend(dev);
> + if (err) {
> + dev_err(hba->dev, "system susped failed %d\n", err);
> + return err;
> + }
> +
> + clk_disable_unprepare(host->ref_out_clk);
I am not sure that the host is always runtime resumed at this point,
or is there? If not, we need to call pm_runtime_get_sync() somewhere
here and a corresponding pm_runtime_put* in the ->suspend() callback.
Of course, if you could make use of pm_runtime_force_suspend|resume()
that would be even better, but then probably need some additional
re-work in the ufs-core layer first, to make this work, I think.
[...]
Kind regards
Uffe
More information about the Linux-rockchip
mailing list