Mandatorily set the initdata->supply_regulator while it actually not exist will cause regulator core to resolve supply each time whenever a new regulator registered which is meaningless and waste CPU mips.
We can observe more than one hundred times of iteration of resolving during a MX6Q SDB board booting up. This patch adds the condition check for vin-supply to avoid the issue. Cc: Liam Girdwood <lgirdw...@gmail.com> Cc: Mark Brown <broo...@kernel.org> Cc: Shawn Guo <shawn...@kernel.org> Cc: Sascha Hauer <ker...@pengutronix.de> Cc: Robin Gong <yibin.g...@nxp.com> Signed-off-by: Dong Aisheng <aisheng.d...@nxp.com> --- drivers/regulator/anatop-regulator.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/anatop-regulator.c b/drivers/regulator/anatop-regulator.c index 46b9c2c..2a97ada 100644 --- a/drivers/regulator/anatop-regulator.c +++ b/drivers/regulator/anatop-regulator.c @@ -203,7 +203,9 @@ static int anatop_regulator_probe(struct platform_device *pdev) if (!initdata) return -ENOMEM; - initdata->supply_regulator = "vin"; + if (of_find_property(np, "vin-supply", NULL)) + initdata->supply_regulator = "vin"; + sreg->initdata = initdata; anatop_np = of_get_parent(np); -- 2.7.4