Merge branch 'pm-domains'
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 12 Dec 2016 19:43:19 +0000 (20:43 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 12 Dec 2016 19:43:19 +0000 (20:43 +0100)
* pm-domains:
  PM / Domains: Fix compatible for domain idle state
  PM / Domains: Do not print PM domain add error message if EPROBE_DEFER
  PM / Domains: Fix a warning message
  PM / Domains: check for negative return from of_count_phandle_with_args()
  PM / doc: Update device documentation for devices in IRQ-safe PM domains
  PM / Domains: Support IRQ safe PM domains
  PM / Domains: Abstract genpd locking
  dt/bindings / PM/Domains: Update binding for PM domain idle states
  PM / Domains: Save the fwnode in genpd_power_state
  PM / Domains: Allow domain power states to be read from DT
  PM / Domains: Add residency property to genpd states
  PM / Domains: Make genpd state allocation dynamic

Conflicts:
arch/arm/mach-imx/gpc.c

1  2 
arch/arm/mach-imx/gpc.c

index b54db47f6f322d358f7742ecc7e17b23e0c2b667,57a410bbb6a2cb33229a2042791811e0d9afa787..1dc2a34b9dbd452531479d0766187c8547cb13fd
@@@ -430,18 -423,20 +423,28 @@@ static int imx_gpc_genpd_init(struct de
        if (!IS_ENABLED(CONFIG_PM_GENERIC_DOMAINS))
                return 0;
  
 -      pm_genpd_init(&imx6q_pu_domain.base, NULL, false);
 -      return of_genpd_add_provider_onecell(dev->of_node,
+       imx6q_pu_domain.base.states = devm_kzalloc(dev,
+                                       sizeof(*imx6q_pu_domain.base.states),
+                                       GFP_KERNEL);
+       if (!imx6q_pu_domain.base.states)
+               return -ENOMEM;
+       imx6q_pu_domain.base.states[0].power_off_latency_ns = 25000;
+       imx6q_pu_domain.base.states[0].power_on_latency_ns = 2000000;
+       imx6q_pu_domain.base.state_count = 1;
 +      for (i = 0; i < ARRAY_SIZE(imx_gpc_domains); i++)
 +              pm_genpd_init(imx_gpc_domains[i], NULL, false);
 +
 +      ret =  of_genpd_add_provider_onecell(dev->of_node,
                                             &imx_gpc_onecell_data);
 +      if (ret)
 +              goto power_off;
 +
 +      return 0;
  
 +power_off:
 +      imx6q_pm_pu_power_off(&imx6q_pu_domain.base);
  clk_err:
        while (i--)
                clk_put(imx6q_pu_domain.clk[i]);