leds: gpio: Add kernel log if devm_fwnode_gpiod_get() fails
authorStefan Wahren <wahrenst@gmx.net>
Sat, 2 Dec 2023 18:36:36 +0000 (19:36 +0100)
committerLee Jones <lee@kernel.org>
Wed, 13 Dec 2023 15:45:55 +0000 (15:45 +0000)
In case leds-gpio fails to get at least one of possibly many GPIOs
from the DT (e.g. the GPIO is already requested) neither gpiolib nor
the driver does provide any helpful error log:

    leds-gpio: probe of leds failed with error -16

As the driver knows better how to handle errors with such mandatory
GPIOs, let's implement an error log which points to the affected
GPIO.

Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20231202183636.7055-1-wahrenst@gmx.net
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/leds-gpio.c

index 710c319ad312bf6da20d3d263c207269e4d00521..83fcd7b6afff767583bb39670abe5f2e058504f6 100644 (file)
@@ -172,6 +172,8 @@ static struct gpio_leds_priv *gpio_leds_create(struct device *dev)
                led.gpiod = devm_fwnode_gpiod_get(dev, child, NULL, GPIOD_ASIS,
                                                  NULL);
                if (IS_ERR(led.gpiod)) {
+                       dev_err_probe(dev, PTR_ERR(led.gpiod), "Failed to get GPIO '%pfw'\n",
+                                     child);
                        fwnode_handle_put(child);
                        return ERR_CAST(led.gpiod);
                }