Re: [PATCH v4] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver

From: Henning Schild
Date: Thu Dec 22 2022 - 05:19:32 EST


Ping. This still applies and still is relevant. Maybe got lost or stuck
in the LED subsystem.

Henning

Am Fri, 7 Oct 2022 17:33:23 +0200
schrieb Henning Schild <henning.schild@xxxxxxxxxxx>:

> If we register a "leds-gpio" platform device for GPIO pins that do not
> exist we get a -EPROBE_DEFER and the probe will be tried again later.
> If there is no driver to provide that pin we will poll forever and
> also create a lot of log messages.
>
> So check if that GPIO driver is configured, if so it will come up
> eventually. If not, we exit our probe function early and do not even
> bother registering the "leds-gpio". This method was chosen over
> "Kconfig depends" since this way we can add support for more devices
> and GPIO backends more easily without "depends":ing on all GPIO
> backends.
>
> Fixes: a6c80bec3c93 ("leds: simatic-ipc-leds-gpio: Add GPIO version
> of Siemens driver") Reviewed-by: Andy Shevchenko
> <andy.shevchenko@xxxxxxxxx> Signed-off-by: Henning Schild
> <henning.schild@xxxxxxxxxxx> ---
> drivers/leds/simple/simatic-ipc-leds-gpio.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/leds/simple/simatic-ipc-leds-gpio.c
> b/drivers/leds/simple/simatic-ipc-leds-gpio.c index
> b9eeb8702df0..fb8d427837db 100644 ---
> a/drivers/leds/simple/simatic-ipc-leds-gpio.c +++
> b/drivers/leds/simple/simatic-ipc-leds-gpio.c @@ -77,6 +77,8 @@
> static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
> switch (plat->devmode) {
> case SIMATIC_IPC_DEVICE_127E:
> + if (!IS_ENABLED(CONFIG_PINCTRL_BROXTON))
> + return -ENODEV;
> simatic_ipc_led_gpio_table =
> &simatic_ipc_led_gpio_table_127e; break;
> case SIMATIC_IPC_DEVICE_227G: