Message ID | 20250226220414.343659-6-peter.griffin@linaro.org (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | ufs-exynos fixes for gs101 | expand |
On 2/26/25 2:04 PM, Peter Griffin wrote: > +static void exynos_ufs_exit(struct ufs_hba *hba) > +{ > + struct exynos_ufs *ufs = ufshcd_get_variant(hba); > + > + phy_power_off(ufs->phy); > + phy_exit(ufs->phy); > +} > + > + For future patches, please follow the convention that is used elsewhere in the kernel and separate functions with a single blank line instead of two. Thanks, Bart.
Hi Bart, Thanks for your review feedback! On Fri, 28 Feb 2025 at 19:20, Bart Van Assche <bvanassche@acm.org> wrote: > > On 2/26/25 2:04 PM, Peter Griffin wrote: > > +static void exynos_ufs_exit(struct ufs_hba *hba) > > +{ > > + struct exynos_ufs *ufs = ufshcd_get_variant(hba); > > + > > + phy_power_off(ufs->phy); > > + phy_exit(ufs->phy); > > +} > > + > > + > > For future patches, please follow the convention that is used elsewhere > in the kernel and separate functions with a single blank line instead of > two. That was an oversight on my part, will fix. Thanks, Peter
diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index 27eb360458a7..4c3e03a3b8d9 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -1513,6 +1513,15 @@ static int exynos_ufs_init(struct ufs_hba *hba) return ret; } +static void exynos_ufs_exit(struct ufs_hba *hba) +{ + struct exynos_ufs *ufs = ufshcd_get_variant(hba); + + phy_power_off(ufs->phy); + phy_exit(ufs->phy); +} + + static int exynos_ufs_host_reset(struct ufs_hba *hba) { struct exynos_ufs *ufs = ufshcd_get_variant(hba); @@ -1968,6 +1977,7 @@ static int gs101_ufs_pre_pwr_change(struct exynos_ufs *ufs, static const struct ufs_hba_variant_ops ufs_hba_exynos_ops = { .name = "exynos_ufs", .init = exynos_ufs_init, + .exit = exynos_ufs_exit, .hce_enable_notify = exynos_ufs_hce_enable_notify, .link_startup_notify = exynos_ufs_link_startup_notify, .pwr_change_notify = exynos_ufs_pwr_change_notify, @@ -2006,13 +2016,7 @@ static int exynos_ufs_probe(struct platform_device *pdev) static void exynos_ufs_remove(struct platform_device *pdev) { - struct ufs_hba *hba = platform_get_drvdata(pdev); - struct exynos_ufs *ufs = ufshcd_get_variant(hba); - ufshcd_pltfrm_remove(pdev); - - phy_power_off(ufs->phy); - phy_exit(ufs->phy); } static struct exynos_ufs_uic_attr exynos7_uic_attr = {
ufshcd_pltfrm_remove() calls ufshcd_remove(hba) which in turn calls ufshcd_hba_exit(). By moving the phy_power_off() and phy_exit() calls to the newly created .exit callback they get called by ufshcd_variant_hba_exit() before ufshcd_hba_exit() turns off the regulators. This is also similar flow to the ufs-qcom driver. Signed-off-by: Peter Griffin <peter.griffin@linaro.org> --- drivers/ufs/host/ufs-exynos.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)