In case of error during resource acquisition driver should print error
message only in case it is not deferred probe, using dev_err_probe helper
solves the issue. Moreover it records defer probe reason for debugging.

Signed-off-by: Andrzej Hajda <a.ha...@samsung.com>
Reviewed-by: Neil Armstrong <narmstr...@baylibre.com>
---
 drivers/gpu/drm/bridge/sil-sii8620.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/bridge/sil-sii8620.c 
b/drivers/gpu/drm/bridge/sil-sii8620.c
index 92acd336aa89..389c1f029774 100644
--- a/drivers/gpu/drm/bridge/sil-sii8620.c
+++ b/drivers/gpu/drm/bridge/sil-sii8620.c
@@ -2299,10 +2299,9 @@ static int sii8620_probe(struct i2c_client *client,
        INIT_LIST_HEAD(&ctx->mt_queue);
 
        ctx->clk_xtal = devm_clk_get(dev, "xtal");
-       if (IS_ERR(ctx->clk_xtal)) {
-               dev_err(dev, "failed to get xtal clock from DT\n");
-               return PTR_ERR(ctx->clk_xtal);
-       }
+       if (IS_ERR(ctx->clk_xtal))
+               return dev_err_probe(dev, PTR_ERR(ctx->clk_xtal),
+                                    "failed to get xtal clock from DT\n");
 
        if (!client->irq) {
                dev_err(dev, "no irq provided\n");
@@ -2313,16 +2312,14 @@ static int sii8620_probe(struct i2c_client *client,
                                        sii8620_irq_thread,
                                        IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
                                        "sii8620", 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");
 
        ctx->gpio_reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
-       if (IS_ERR(ctx->gpio_reset)) {
-               dev_err(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(dev, PTR_ERR(ctx->gpio_reset),
+                                    "failed to get reset gpio from DT\n");
 
        ctx->supplies[0].supply = "cvcc10";
        ctx->supplies[1].supply = "iovcc18";
-- 
2.17.1

Reply via email to