This patch reverts https://github.com/torvalds/linux/commit/aea6cb99703e17019e025aa71643b4d3e0a24413 that got backported into both 5.8.17 and 5.9.2 Without it rk808 used by all rk3399 boards fails to be probed. diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 4859cf84c..b6dcbb779 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -5256,20 +5256,15 @@ regulator_register(const struct regulator_desc *regulator_desc, else if (regulator_desc->supply_name) rdev->supply_name = regulator_desc->supply_name; + /* + * Attempt to resolve the regulator supply, if specified, + * but don't return an error if we fail because we will try + * to resolve it again later as more regulators are added. + */ + if (regulator_resolve_supply(rdev)) + rdev_dbg(rdev, "unable to resolve supply\n"); + ret = set_machine_constraints(rdev, constraints); - if (ret == -EPROBE_DEFER) { - /* Regulator might be in bypass mode and so needs its supply - * to set the constraints */ - /* FIXME: this currently triggers a chicken-and-egg problem - * when creating -SUPPLY symlink in sysfs to a regulator - * that is just being created */ - ret = regulator_resolve_supply(rdev); - if (!ret) - ret = set_machine_constraints(rdev, constraints); - else - rdev_dbg(rdev, "unable to resolve supply early: %pe\n", - ERR_PTR(ret)); - } if (ret < 0) goto wash;