build/patch/kernel/rockchip64-current/general-resolve-regulator-before-create.patch
2020-11-10 21:43:13 +01:00

38 lines
1.4 KiB
Diff

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;