diff mbox series

leds: rt8515: add V4L2_FLASH_LED_CLASS dependency

Message ID 20210204153951.1551156-1-arnd@kernel.org
State New
Headers show
Series leds: rt8515: add V4L2_FLASH_LED_CLASS dependency | expand

Commit Message

Arnd Bergmann Feb. 4, 2021, 3:39 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>


The leds-rt8515 driver can optionall use the v4l2 flash led class,
but it causes a link error when that class is in a loadable module
and the rt8515 driver itself is built-in:

ld.lld: error: undefined symbol: v4l2_flash_init
>>> referenced by leds-rt8515.c

>>>               leds/flash/leds-rt8515.o:(rt8515_probe) in archive

drivers/built-in.a

Adding 'depends on V4L2_FLASH_LED_CLASS' in Kconfig would avoid that,
but it would make it impossible to use the driver without the
v4l2 support.

Add the same dependency that the other users of this class have
instead, which just prevents the broken configuration.

Fixes: e1c6edcbea13 ("leds: rt8515: Add Richtek RT8515 LED driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/leds/flash/Kconfig | 1 +
 1 file changed, 1 insertion(+)

-- 
2.29.2

Comments

Pavel Machek Feb. 4, 2021, 4:12 p.m. UTC | #1
On Thu 2021-02-04 16:39:44, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>

> 

> The leds-rt8515 driver can optionall use the v4l2 flash led class,


Optionally.

> Add the same dependency that the other users of this class have

> instead, which just prevents the broken configuration.

> 

> Fixes: e1c6edcbea13 ("leds: rt8515: Add Richtek RT8515 LED driver")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Thanks for the fix. If you plan to send a pull request to linus before
5.11, feel free to add it.

Acked-by: Pavel Machek <pavel@ucw.cz>


Otherwise I'll queue it for -rc1, I guess.

Best regards,
								Pavel
-- 
http://www.livejournal.com/~pavelmachek
Linus Walleij Feb. 5, 2021, 9:16 a.m. UTC | #2
On Thu, Feb 4, 2021 at 4:39 PM Arnd Bergmann <arnd@kernel.org> wrote:

> From: Arnd Bergmann <arnd@arndb.de>

>

> The leds-rt8515 driver can optionall use the v4l2 flash led class,

> but it causes a link error when that class is in a loadable module

> and the rt8515 driver itself is built-in:

>

> ld.lld: error: undefined symbol: v4l2_flash_init

> >>> referenced by leds-rt8515.c

> >>>               leds/flash/leds-rt8515.o:(rt8515_probe) in archive

> drivers/built-in.a

>

> Adding 'depends on V4L2_FLASH_LED_CLASS' in Kconfig would avoid that,

> but it would make it impossible to use the driver without the

> v4l2 support.

>

> Add the same dependency that the other users of this class have

> instead, which just prevents the broken configuration.

>

> Fixes: e1c6edcbea13 ("leds: rt8515: Add Richtek RT8515 LED driver")

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Reviewed-by: Linus Walleij <linus.walleij@linaro.org>


> +       depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS


This kind of thing that looks like a truism but isn't is one of the
most unintuitive
things about KConfig :/ no idea what to do about it though.

I remember making a program for the C64 in early 1990ies with joke input
such as y/n/m (yes/no/maybe), sadly in Kconfig this is no joke.

Yours,
Linus Walleij
Pavel Machek Feb. 15, 2021, 9:49 a.m. UTC | #3
Hi!

> > From: Arnd Bergmann <arnd@arndb.de>

> >

> > The leds-rt8515 driver can optionall use the v4l2 flash led class,

> > but it causes a link error when that class is in a loadable module

> > and the rt8515 driver itself is built-in:

> >

> > ld.lld: error: undefined symbol: v4l2_flash_init

> > >>> referenced by leds-rt8515.c

> > >>>               leds/flash/leds-rt8515.o:(rt8515_probe) in archive

> > drivers/built-in.a

> >

> > Adding 'depends on V4L2_FLASH_LED_CLASS' in Kconfig would avoid that,

> > but it would make it impossible to use the driver without the

> > v4l2 support.

> >

> > Add the same dependency that the other users of this class have

> > instead, which just prevents the broken configuration.

> >

> > Fixes: e1c6edcbea13 ("leds: rt8515: Add Richtek RT8515 LED driver")

> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> 

> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

> 

> > +       depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS

> 

> This kind of thing that looks like a truism but isn't is one of the

> most unintuitive

> things about KConfig :/ no idea what to do about it though.


This is the way it is usually fixed. Anyway, I applied it and pushed
it to Linus and it is now merged.

> I remember making a program for the C64 in early 1990ies with joke input

> such as y/n/m (yes/no/maybe), sadly in Kconfig this is no joke.


:-).

Best regards,
									Pavel
-- 
http://www.livejournal.com/~pavelmachek
diff mbox series

Patch

diff --git a/drivers/leds/flash/Kconfig b/drivers/leds/flash/Kconfig
index d21d273ef3da..b580b416b9a4 100644
--- a/drivers/leds/flash/Kconfig
+++ b/drivers/leds/flash/Kconfig
@@ -5,6 +5,7 @@  if LEDS_CLASS_FLASH
 config LEDS_RT8515
 	tristate "LED support for Richtek RT8515 flash/torch LED"
 	depends on GPIOLIB
+	depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS
 	help
 	  This option enables support for the Richtek RT8515 flash
 	  and torch LEDs found on some mobile phones.