Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/bridge/sii8620: fix resource acquisition error handling

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.hajda@samsung.com>
Reviewed-by: Neil Armstrong <narmstrong@baylibre.com>
Link: https://lore.kernel.org/r/20200713144324.23654-4-a.hajda@samsung.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Andrzej Hajda and committed by
Greg Kroah-Hartman
a60294d2 d090b70e

+9 -12
+9 -12
drivers/gpu/drm/bridge/sil-sii8620.c
··· 2299 2299 INIT_LIST_HEAD(&ctx->mt_queue); 2300 2300 2301 2301 ctx->clk_xtal = devm_clk_get(dev, "xtal"); 2302 - if (IS_ERR(ctx->clk_xtal)) { 2303 - dev_err(dev, "failed to get xtal clock from DT\n"); 2304 - return PTR_ERR(ctx->clk_xtal); 2305 - } 2302 + if (IS_ERR(ctx->clk_xtal)) 2303 + return dev_err_probe(dev, PTR_ERR(ctx->clk_xtal), 2304 + "failed to get xtal clock from DT\n"); 2306 2305 2307 2306 if (!client->irq) { 2308 2307 dev_err(dev, "no irq provided\n"); ··· 2312 2313 sii8620_irq_thread, 2313 2314 IRQF_TRIGGER_HIGH | IRQF_ONESHOT, 2314 2315 "sii8620", ctx); 2315 - if (ret < 0) { 2316 - dev_err(dev, "failed to install IRQ handler\n"); 2317 - return ret; 2318 - } 2316 + if (ret < 0) 2317 + return dev_err_probe(dev, ret, 2318 + "failed to install IRQ handler\n"); 2319 2319 2320 2320 ctx->gpio_reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); 2321 - if (IS_ERR(ctx->gpio_reset)) { 2322 - dev_err(dev, "failed to get reset gpio from DT\n"); 2323 - return PTR_ERR(ctx->gpio_reset); 2324 - } 2321 + if (IS_ERR(ctx->gpio_reset)) 2322 + return dev_err_probe(dev, PTR_ERR(ctx->gpio_reset), 2323 + "failed to get reset gpio from DT\n"); 2325 2324 2326 2325 ctx->supplies[0].supply = "cvcc10"; 2327 2326 ctx->supplies[1].supply = "iovcc18";