On Tue, Oct 28, 2014 at 3:38 PM, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > --- 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. [...] > } > /** > @@ -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@xxxxxxxxxxxxxx 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 -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html