In case of error during resource acquisition the driver should print
an error message only if it is not deferred probe. Use dev_err_probe
helper to handle this, which will also record defer probe reason for
debugging.

Signed-off-by: Henrik Grimler <hen...@grimler.se>
---
v3: add missing return in error path, spotted by Dmitry
v2: no changes
---
 drivers/gpu/drm/bridge/sii9234.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/bridge/sii9234.c b/drivers/gpu/drm/bridge/sii9234.c
index 
930117bbba87285e62107389606897740516eb0a..e43248e515b3dcdde043997288d61f738417b8f0
 100644
--- a/drivers/gpu/drm/bridge/sii9234.c
+++ b/drivers/gpu/drm/bridge/sii9234.c
@@ -825,21 +825,17 @@ static int sii9234_init_resources(struct sii9234 *ctx,
        }
 
        ctx->gpio_reset = devm_gpiod_get(ctx->dev, "reset", GPIOD_OUT_LOW);
-       if (IS_ERR(ctx->gpio_reset)) {
-               dev_err(ctx->dev, "failed to get reset gpio from DT\n");
-               return PTR_ERR(ctx->gpio_reset);
-       }
+       if (IS_ERR(ctx->gpio_reset))
+               return dev_err_probe(ctx->dev, PTR_ERR(ctx->gpio_reset),
+                                    "failed to get reset gpio from DT\n");
 
        ctx->supplies[0].supply = "avcc12";
        ctx->supplies[1].supply = "avcc33";
        ctx->supplies[2].supply = "iovcc18";
        ctx->supplies[3].supply = "cvcc12";
        ret = devm_regulator_bulk_get(ctx->dev, 4, ctx->supplies);
-       if (ret) {
-               if (ret != -EPROBE_DEFER)
-                       dev_err(ctx->dev, "regulator_bulk failed\n");
-               return ret;
-       }
+       if (ret)
+               return dev_err_probe(ctx->dev, ret, "regulator_bulk failed\n");
 
        ctx->client[I2C_MHL] = client;
 
@@ -911,10 +907,9 @@ static int sii9234_probe(struct i2c_client *client)
                                        sii9234_irq_thread,
                                        IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
                                        "sii9234", ctx);
-       if (ret < 0) {
-               dev_err(dev, "failed to install IRQ handler\n");
-               return ret;
-       }
+       if (ret < 0)
+               return dev_err_probe(dev, ret,
+                                    "failed to install IRQ handler\n");
 
        ret = sii9234_init_resources(ctx, client);
        if (ret < 0)

-- 
2.50.1

Reply via email to