diff options
author | Ulf Hansson <ulf.hansson@linaro.org> | 2024-05-03 15:48:21 +0200 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2024-05-03 15:48:21 +0200 |
commit | d88ea30340963d87c267cf1c7ebb2a205ef04e25 (patch) | |
tree | 632287153092b8f8def39f9f32e0ff580b077126 /drivers/pmdomain | |
parent | pmdomain: core: Don't clear suspended_count at genpd_prepare() (diff) | |
parent | pmdomain: ti-sci: Fix duplicate PD referrals (diff) | |
download | linux-d88ea30340963d87c267cf1c7ebb2a205ef04e25.tar.xz linux-d88ea30340963d87c267cf1c7ebb2a205ef04e25.zip |
pmdomain: Merge branch fixes into next
Merge the pmdomain fixes for v6.9-rc[n] into the next branch, to allow them
to get tested together with the new changes that are targeted for v6.10.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/pmdomain')
-rw-r--r-- | drivers/pmdomain/ti/ti_sci_pm_domains.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/drivers/pmdomain/ti/ti_sci_pm_domains.c b/drivers/pmdomain/ti/ti_sci_pm_domains.c index 9dddf227a3a6..1510d5ddae3d 100644 --- a/drivers/pmdomain/ti/ti_sci_pm_domains.c +++ b/drivers/pmdomain/ti/ti_sci_pm_domains.c @@ -114,6 +114,18 @@ static const struct of_device_id ti_sci_pm_domain_matches[] = { }; MODULE_DEVICE_TABLE(of, ti_sci_pm_domain_matches); +static bool ti_sci_pm_idx_exists(struct ti_sci_genpd_provider *pd_provider, u32 idx) +{ + struct ti_sci_pm_domain *pd; + + list_for_each_entry(pd, &pd_provider->pd_list, node) { + if (pd->idx == idx) + return true; + } + + return false; +} + static int ti_sci_pm_domain_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -149,8 +161,14 @@ static int ti_sci_pm_domain_probe(struct platform_device *pdev) break; if (args.args_count >= 1 && args.np == dev->of_node) { - if (args.args[0] > max_id) + if (args.args[0] > max_id) { max_id = args.args[0]; + } else { + if (ti_sci_pm_idx_exists(pd_provider, args.args[0])) { + index++; + continue; + } + } pd = devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); if (!pd) { |