Don't report requested regulator (via of_regulator_get()) as
non-existent if said regulator is missing from regulator list. Instead
rely on driver_deferred_probe_check_state() to properly declare
regulator as such after all of the initcalls were done and no further
missing dependencies could be resolved.

Signed-off-by: Andrey Smirnov <[email protected]>
---
 drivers/regulator/core.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 795dcdb8c..a5ac8f3c9 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -227,7 +227,13 @@ static struct regulator_internal *of_regulator_get(struct 
device_d *dev, const c
                }
        }
 
-       ri = ERR_PTR(-ENODEV);
+       /*
+        * It is possible that regulator we are looking for will be
+        * added in future initcalls, so, instead of reporting a
+        * complete failure we see if probe deferral is more
+        * appropriate
+        */
+       ri = ERR_PTR(driver_deferred_probe_check_state(dev));
 out:
        free(propname);
 
-- 
2.20.1


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to