diff options
Diffstat (limited to 'drivers/soc/rockchip/pm_domains.c')
-rw-r--r-- | drivers/soc/rockchip/pm_domains.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/soc/rockchip/pm_domains.c b/drivers/soc/rockchip/pm_domains.c index 53efc386b1ad..f874baaf934c 100644 --- a/drivers/soc/rockchip/pm_domains.c +++ b/drivers/soc/rockchip/pm_domains.c @@ -14,6 +14,7 @@ #include <linux/pm_clock.h> #include <linux/pm_domain.h> #include <linux/of_address.h> +#include <linux/of_clk.h> #include <linux/of_platform.h> #include <linux/clk.h> #include <linux/regmap.h> @@ -400,8 +401,7 @@ static int rockchip_pm_add_one_domain(struct rockchip_pmu *pmu, pd->info = pd_info; pd->pmu = pmu; - pd->num_clks = of_count_phandle_with_args(node, "clocks", - "#clock-cells"); + pd->num_clks = of_clk_get_parent_count(node); if (pd->num_clks > 0) { pd->clks = devm_kcalloc(pmu->dev, pd->num_clks, sizeof(*pd->clks), GFP_KERNEL); @@ -626,8 +626,7 @@ static int rockchip_pm_domain_probe(struct platform_device *pdev) pmu_info = match->data; pmu = devm_kzalloc(dev, - sizeof(*pmu) + - pmu_info->num_domains * sizeof(pmu->domains[0]), + struct_size(pmu, domains, pmu_info->num_domains), GFP_KERNEL); if (!pmu) return -ENOMEM; |