Temporary failures to get a regulator (EPROBE_DEFER) should be logged
as debug information instead of errors.

Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-or...@linaro.org>
---
 drivers/regulator/core.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 186a37675b50..a2725269a94a 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4342,8 +4342,6 @@ int regulator_bulk_get(struct device *dev, int 
num_consumers,
                                                      consumers[i].supply);
                if (IS_ERR(consumers[i].consumer)) {
                        ret = PTR_ERR(consumers[i].consumer);
-                       dev_err(dev, "Failed to get supply '%s': %d\n",
-                               consumers[i].supply, ret);
                        consumers[i].consumer = NULL;
                        goto err;
                }
@@ -4352,6 +4350,13 @@ int regulator_bulk_get(struct device *dev, int 
num_consumers,
        return 0;
 
 err:
+       if (ret != -EPROBE_DEFER)
+               dev_err(dev, "Failed to get supply '%s': %d\n",
+                       consumers[i].supply, ret);
+       else
+               dev_dbg(dev, "Failed to get supply '%s', deferring\n",
+                       consumers[i].supply);
+
        while (--i >= 0)
                regulator_put(consumers[i].consumer);
 
-- 
2.21.0

Reply via email to