lkml.org 
[lkml]   [2016]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v2] PM / Domains: Allow holes in genpd_data.domains array
Date
In platforms such as Rockchip's, the array of domains isn't always
filled without holes, as which domains are present depend on the
particular SoC revision.

By allowing holes to be in the array, such SoCs can still use a single
set of constants to index the array of power domains.

Fixes: 0159ec670763 ("PM / Domains: Verify the PM domain is present when adding a provider")
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Cc: Jon Hunter <jonathanh@nvidia.com>
Cc: Heiko Stuebner <heiko@sntech.de>

---

v2: Also skip holes in the error path.
---
drivers/base/power/domain.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index b0cf46dcae73..83ae3d7d3fdd 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1581,6 +1581,8 @@ int of_genpd_add_provider_onecell(struct device_node *np,
mutex_lock(&gpd_list_lock);

for (i = 0; i < data->num_domains; i++) {
+ if (!data->domains[i])
+ continue;
if (!pm_genpd_present(data->domains[i]))
goto error;

@@ -1598,6 +1600,8 @@ int of_genpd_add_provider_onecell(struct device_node *np,

error:
while (i--) {
+ if (!data->domains[i])
+ continue;
data->domains[i]->provider = NULL;
data->domains[i]->has_provider = false;
}
--
2.7.4
\
 
 \ /
  Last update: 2016-09-17 09:59    [W:0.074 / U:21.564 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site