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-10-01 22:49:03 +0200
commit40f0d97a4ce29f0941aedd9d45b0ea4143da66b0 (patch)
tree697221cc7f3a1680b2af83e316d972e82d865ab9
parent2d631d8fcca6d81cdb42899f6d0fc279ec3da228 (diff)
downloadlinux-40f0d97a4ce29f0941aedd9d45b0ea4143da66b0.tar.gz
linux-40f0d97a4ce29f0941aedd9d45b0ea4143da66b0.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> Reviewed-by: Peng Fan <peng.fan@nxp.com>
-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) {