summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2021-07-16 12:40:40 +0200
committerLucas Stach <l.stach@pengutronix.de>2021-07-21 22:25:58 +0200
commita185cfd4510db7b8ee1a44696804492c3ba8630f (patch)
tree89af2bfc7f40c2739d5ffd52b9955e04189e8749
parente42822782dfae41481bc87cd2f007204b4ffd10c (diff)
downloadlinux-a185cfd4510db7b8ee1a44696804492c3ba8630f.tar.gz
linux-a185cfd4510db7b8ee1a44696804492c3ba8630f.tar.xz
soc: imx: gpcv2: add lockdep annotation
Some of the GPCv2 power domains are nested inside each other without visibility to lockdep at the genpd level, as they are in separate driver instances and don't have a parent/child power-domain relationship. Add a subclass annotation to the nested domains to let lockdep know that it is okay to take the genpd lock in a nested fashion. Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
-rw-r--r--drivers/soc/imx/gpcv2.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c
index 2c43e74db0be..35f26f57d1ac 100644
--- a/drivers/soc/imx/gpcv2.c
+++ b/drivers/soc/imx/gpcv2.c
@@ -898,6 +898,10 @@ static int imx_pgc_domain_probe(struct platform_device *pdev)
goto out_domain_unmap;
}
+ if (IS_ENABLED(CONFIG_LOCKDEP) &&
+ of_property_read_bool(domain->dev->of_node, "power-domains"))
+ lockdep_set_subclass(&domain->genpd.mlock, 1);
+
ret = of_genpd_add_provider_simple(domain->dev->of_node,
&domain->genpd);
if (ret) {