Thread (12 messages) 12 messages, 2 authors, 2014-11-05
STALE4236d

[PATCH 3/4] PM / Domains: Improve error handling while adding/removing devices

From: geert@linux-m68k.org (Geert Uytterhoeven)
Date: 2014-11-05 07:47:50
Also in: linux-pm, linux-samsung-soc

On Tue, Oct 28, 2014 at 3:38 PM, Ulf Hansson [off-list ref] wrote:
quoted hunk ↗ jump to hunk
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1358,25 +1358,81 @@ EXPORT_SYMBOL_GPL(pm_genpd_syscore_poweron);

 #endif /* CONFIG_PM_SLEEP */

-static struct generic_pm_domain_data *__pm_genpd_alloc_dev_data(struct device *dev)
+static int genpd_alloc_dev_data(struct generic_pm_domain *genpd,
+                               struct device *dev, struct gpd_timing_data *td)
 {
[...]
+       if (genpd->attach_dev)
+               genpd->attach_dev(dev);
Note that dev->pm_domain is not yet set at this point, so the callee
can no longer
know to which domain the device is being attached.
Should we re-add the parameter, or move the attach_dev() back to
__pm_genpd_add_device(), like Kevin suggested.

[...]
 }
quoted hunk ↗ jump to hunk
 /**
@@ -1388,7 +1444,7 @@ static void __pm_genpd_free_dev_data(struct device *dev,
 int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
                          struct gpd_timing_data *td)
 {
[...]
-       ret = dev_pm_get_subsys_data(dev);
+       ret = genpd_alloc_dev_data(genpd, dev, td);
[...]
        dev->pm_domain = &genpd->domain;
-
+       gpd_data = to_gpd_data(dev->power.subsys_data->domain_data);
        spin_unlock_irq(&dev->power.lock);

-       if (genpd->attach_dev)
-               genpd->attach_dev(dev);
-
Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help