In the probe path, dev_err() can be replaced with dev_err_probe() which will check if error code is -EPROBE_DEFER and prints the error name. It also sets the defer probe reason which can be checked later through debugfs. It's more simple in error path. --- drivers/video/backlight/ktd253-backlight.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/video/backlight/ktd253-backlight.c b/drivers/video/backlight/ktd253-backlight.c index 37aa5a669530..d7d43454f64a 100644 --- a/drivers/video/backlight/ktd253-backlight.c +++ b/drivers/video/backlight/ktd253-backlight.c @@ -173,12 +173,9 @@ static int ktd253_backlight_probe(struct platform_device *pdev) } ktd253->gpiod = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW); - if (IS_ERR(ktd253->gpiod)) { - ret = PTR_ERR(ktd253->gpiod); - if (ret != -EPROBE_DEFER) - dev_err(dev, "gpio line missing or invalid.\n"); - return ret; - } + if (IS_ERR(ktd253->gpiod)) + return dev_err_probe(dev, PTR_ERR(ktd253->gpiod), + "gpio line missing or invalid.\n"); gpiod_set_consumer_name(ktd253->gpiod, dev_name(dev)); /* Bring backlight to a known off state */ msleep(KTD253_T_OFF_MS); -- 2.25.1