PM / Domains: Make genpd state allocation dynamic
[linux-2.6-block.git] / arch / arm / mach-imx / gpc.c
index 0df062d8b2c942f84a31a923e0a4f221c6c9366d..57a410bbb6a2cb33229a2042791811e0d9afa787 100644 (file)
@@ -380,13 +380,6 @@ static struct pu_domain imx6q_pu_domain = {
                .name = "PU",
                .power_off = imx6q_pm_pu_power_off,
                .power_on = imx6q_pm_pu_power_on,
-               .states = {
-                       [0] = {
-                               .power_off_latency_ns = 25000,
-                               .power_on_latency_ns = 2000000,
-                       },
-               },
-               .state_count = 1,
        },
 };
 
@@ -430,6 +423,16 @@ static int imx_gpc_genpd_init(struct device *dev, struct regulator *pu_reg)
        if (!IS_ENABLED(CONFIG_PM_GENERIC_DOMAINS))
                return 0;
 
+       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;
+
        pm_genpd_init(&imx6q_pu_domain.base, NULL, false);
        return of_genpd_add_provider_onecell(dev->of_node,
                                             &imx_gpc_onecell_data);