]> Gentwo Git Trees - linux/.git/commitdiff
amba: bus: Drop dev_pm_domain_detach() call
authorClaudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Wed, 27 Aug 2025 10:03:37 +0000 (13:03 +0300)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 19 Nov 2025 17:06:50 +0000 (18:06 +0100)
Starting with commit f99508074e78 ("PM: domains: Detach on
device_unbind_cleanup()"), there is no longer a need to call
dev_pm_domain_detach() in the bus remove function. The
device_unbind_cleanup() function now handles this to avoid
invoking devres cleanup handlers while the PM domain is
powered off, which could otherwise lead to failures as
described in the above-mentioned commit.

Drop the explicit dev_pm_domain_detach() call and rely instead
on the flags passed to dev_pm_domain_attach() to power off the
domain.

Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@bp.renesas.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/amba/bus.c

index 74e34a07ef72fb4c9f327f72d8ef251f0c44cad6..952c45ca6e48fd08c5f3fe8dc30840231e7f0b8d 100644 (file)
@@ -291,15 +291,14 @@ static int amba_probe(struct device *dev)
                if (ret < 0)
                        break;
 
-               ret = dev_pm_domain_attach(dev, PD_FLAG_ATTACH_POWER_ON);
+               ret = dev_pm_domain_attach(dev, PD_FLAG_ATTACH_POWER_ON |
+                                               PD_FLAG_DETACH_POWER_OFF);
                if (ret)
                        break;
 
                ret = amba_get_enable_pclk(pcdev);
-               if (ret) {
-                       dev_pm_domain_detach(dev, true);
+               if (ret)
                        break;
-               }
 
                pm_runtime_get_noresume(dev);
                pm_runtime_set_active(dev);
@@ -314,7 +313,6 @@ static int amba_probe(struct device *dev)
                pm_runtime_put_noidle(dev);
 
                amba_put_disable_pclk(pcdev);
-               dev_pm_domain_detach(dev, true);
        } while (0);
 
        return ret;
@@ -336,7 +334,6 @@ static void amba_remove(struct device *dev)
        pm_runtime_put_noidle(dev);
 
        amba_put_disable_pclk(pcdev);
-       dev_pm_domain_detach(dev, true);
 }
 
 static void amba_shutdown(struct device *dev)