linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver
@ 2022-08-05 12:03 Henning Schild
  2022-08-05 12:19 ` Henning Schild
  2022-08-23 14:15 ` Andy Shevchenko
  0 siblings, 2 replies; 6+ messages in thread
From: Henning Schild @ 2022-08-05 12:03 UTC (permalink / raw)
  To: Andy Shevchenko, Pavel Machek, linux-leds, linux-kernel; +Cc: Henning Schild

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 not 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.

Signed-off-by: Henning Schild <henning.schild@siemens.com>
---
 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 4c9e663a90ba..0c96ba98e338 100644
--- a/drivers/leds/simple/simatic-ipc-leds-gpio.c
+++ b/drivers/leds/simple/simatic-ipc-leds-gpio.c
@@ -57,6 +57,8 @@ static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
 	struct gpio_desc *gpiod;
 	int err;
 
+	if (!IS_ENABLED(CONFIG_PINCTRL_BROXTON))
+		return -ENODEV;
 	gpiod_add_lookup_table(&simatic_ipc_led_gpio_table);
 	simatic_leds_pdev = platform_device_register_resndata(NULL,
 		"leds-gpio", PLATFORM_DEVID_NONE, NULL, 0,
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver
  2022-08-05 12:03 [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver Henning Schild
@ 2022-08-05 12:19 ` Henning Schild
  2022-08-23 14:13   ` Andy Shevchenko
  2022-08-23 14:15 ` Andy Shevchenko
  1 sibling, 1 reply; 6+ messages in thread
From: Henning Schild @ 2022-08-05 12:19 UTC (permalink / raw)
  To: Andy Shevchenko, Pavel Machek, linux-leds, linux-kernel

This applies on top of
"[PATCH v6 00/12] platform/x86: introduce p2sb_bar() helper"

where it could also be squashed into p12.

Am Fri, 5 Aug 2022 14:03:43 +0200
schrieb Henning Schild <henning.schild@siemens.com>:

> 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 not driver to provide that pin we will poll forever and
> also create a lot of log messages.

When i did build a kernel without PINCTRL_BROXTON and booted that, i
quickly filled up my disk with gigabytes of log messages from
"leds-gpio".
 
> 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.

The series "[PATCH 0/4] add support for another simatic board" shows
how a second board would be added, using 

	if (!IS_ENABLED(CONFIG_GPIO_F7188X))
		return -ENODEV;

I am not too happy with the solution. But it is better than "depends"
because we do not need to build all possible GPIO providers if we want
a minimal kernel for a board, while having all simatic gpio based
boards in one led driver.

And we will anyhow need to "name the provider" in case it does not
auto-probe. Also to be seen in that other series where we

	request_module("gpio-f7188x");

regards,
Henning

> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> ---
>  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
> 4c9e663a90ba..0c96ba98e338 100644 ---
> a/drivers/leds/simple/simatic-ipc-leds-gpio.c +++
> b/drivers/leds/simple/simatic-ipc-leds-gpio.c @@ -57,6 +57,8 @@
> static int simatic_ipc_leds_gpio_probe(struct platform_device *pdev)
> struct gpio_desc *gpiod; int err;
>  
> +	if (!IS_ENABLED(CONFIG_PINCTRL_BROXTON))
> +		return -ENODEV;
>  	gpiod_add_lookup_table(&simatic_ipc_led_gpio_table);
>  	simatic_leds_pdev = platform_device_register_resndata(NULL,
>  		"leds-gpio", PLATFORM_DEVID_NONE, NULL, 0,


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver
  2022-08-05 12:19 ` Henning Schild
@ 2022-08-23 14:13   ` Andy Shevchenko
  0 siblings, 0 replies; 6+ messages in thread
From: Andy Shevchenko @ 2022-08-23 14:13 UTC (permalink / raw)
  To: Henning Schild; +Cc: Pavel Machek, linux-leds, linux-kernel

On Fri, Aug 05, 2022 at 02:19:20PM +0200, Henning Schild wrote:
> This applies on top of
> "[PATCH v6 00/12] platform/x86: introduce p2sb_bar() helper"
> 
> where it could also be squashed into p12.

Can't be squashed, since P2SB series is now part of upstream.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver
  2022-08-05 12:03 [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver Henning Schild
  2022-08-05 12:19 ` Henning Schild
@ 2022-08-23 14:15 ` Andy Shevchenko
  2022-08-23 14:42   ` Henning Schild
  1 sibling, 1 reply; 6+ messages in thread
From: Andy Shevchenko @ 2022-08-23 14:15 UTC (permalink / raw)
  To: Henning Schild; +Cc: Pavel Machek, linux-leds, linux-kernel

On Fri, Aug 05, 2022 at 02:03:43PM +0200, Henning Schild wrote:
> 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 not 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.

Not sure what we should do with this patch due to your self-reply on it.
So, if it's still needed, I would expect a new version / resend.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver
  2022-08-23 14:15 ` Andy Shevchenko
@ 2022-08-23 14:42   ` Henning Schild
  2022-08-23 14:52     ` Andy Shevchenko
  0 siblings, 1 reply; 6+ messages in thread
From: Henning Schild @ 2022-08-23 14:42 UTC (permalink / raw)
  To: Andy Shevchenko; +Cc: Pavel Machek, linux-leds, linux-kernel

Am Tue, 23 Aug 2022 17:15:15 +0300
schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:

> On Fri, Aug 05, 2022 at 02:03:43PM +0200, Henning Schild wrote:
> > 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 not 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.  
> 
> Not sure what we should do with this patch due to your self-reply on
> it. So, if it's still needed, I would expect a new version / resend.

Ok i did not realize that the P2SB stuff made it in the meantime. This
patch is still relevant and should be picked on top, to deal with the
unlikely case that this driver is enabled where the gpio driver is not
... which would lead to an endless probing loop and a lot of logging.

Why would you expect a new version? I did not try but see no reason it
should not still apply. There has been no review comments, which means
no change needed.

Unless we want to give it a Fixes or something and consider that
probing loop a bug to make sure the patch makes it into all kernels
that carry my LED GPIO stuff based on the P2SB patches.

regards,
Henning

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver
  2022-08-23 14:42   ` Henning Schild
@ 2022-08-23 14:52     ` Andy Shevchenko
  0 siblings, 0 replies; 6+ messages in thread
From: Andy Shevchenko @ 2022-08-23 14:52 UTC (permalink / raw)
  To: Henning Schild; +Cc: Pavel Machek, linux-leds, linux-kernel

On Tue, Aug 23, 2022 at 04:42:07PM +0200, Henning Schild wrote:
> Am Tue, 23 Aug 2022 17:15:15 +0300
> schrieb Andy Shevchenko <andriy.shevchenko@linux.intel.com>:
> > On Fri, Aug 05, 2022 at 02:03:43PM +0200, Henning Schild wrote:
> > > 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 not 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.  
> > 
> > Not sure what we should do with this patch due to your self-reply on
> > it. So, if it's still needed, I would expect a new version / resend.
> 
> Ok i did not realize that the P2SB stuff made it in the meantime. This
> patch is still relevant and should be picked on top, to deal with the
> unlikely case that this driver is enabled where the gpio driver is not
> ... which would lead to an endless probing loop and a lot of logging.
> 
> Why would you expect a new version? I did not try but see no reason it
> should not still apply. There has been no review comments, which means
> no change needed.
> 
> Unless we want to give it a Fixes or something and consider that
> probing loop a bug to make sure the patch makes it into all kernels
> that carry my LED GPIO stuff based on the P2SB patches.

Because it's usually how maintainers work (at least Lee and Greg KH come
to my mind), when new cycle starts, the (potentially rebased) new versions
are expected.

But with powerfulness of `b4` tool it might be that they changed their ways
of maintaining. You need to ask the LED maintainer(s) on how to proceed.

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-08-23 17:02 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-05 12:03 [PATCH] leds: simatic-ipc-leds-gpio: make sure we have the GPIO providing driver Henning Schild
2022-08-05 12:19 ` Henning Schild
2022-08-23 14:13   ` Andy Shevchenko
2022-08-23 14:15 ` Andy Shevchenko
2022-08-23 14:42   ` Henning Schild
2022-08-23 14:52     ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).