When the kernel is compiled without LED framework support the
rtl8366rb fails to build like this:
rtl8366rb.o: in function `rtl8366rb_setup_led':
rtl8366rb.c:953:(.text.unlikely.rtl8366rb_setup_led+0xe8):
undefined reference to `led_init_default_state_get'
rtl8366rb.c:980:(.text.unlikely.rtl8366rb_setup_led+0x240):
undefined reference to `devm_led_classdev_register_ext'
As this is constantly coming up in different randconfig builds,
bite the bullet and create a separate file for the offending
code, split out a header with all stuff needed both in the
core driver and the leds code.
Add a new bool Kconfig option for the LED compile target, such
that it depends on LEDS_CLASS=y || LEDS_CLASS=RTL8366RB
which make LED support always available when LEDS_CLASS is
compiled into the kernel and enforce that if the LEDS_CLASS
is a module, then the RTL8366RB driver needs to be a module
as well so that modprobe can resolve the dependencies.
Fixes: 32d6170054
("net: dsa: realtek: add LED drivers for rtl8366rb")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202502070525.xMUImayb-lkp@intel.com/
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
18 lines
508 B
Makefile
18 lines
508 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
obj-$(CONFIG_NET_DSA_REALTEK) += realtek_dsa.o
|
|
realtek_dsa-objs := rtl83xx.o
|
|
|
|
ifdef CONFIG_NET_DSA_REALTEK_MDIO
|
|
realtek_dsa-objs += realtek-mdio.o
|
|
endif
|
|
|
|
ifdef CONFIG_NET_DSA_REALTEK_SMI
|
|
realtek_dsa-objs += realtek-smi.o
|
|
endif
|
|
|
|
obj-$(CONFIG_NET_DSA_REALTEK_RTL8366RB) += rtl8366.o
|
|
rtl8366-objs := rtl8366-core.o rtl8366rb.o
|
|
ifdef CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS
|
|
rtl8366-objs += rtl8366rb-leds.o
|
|
endif
|
|
obj-$(CONFIG_NET_DSA_REALTEK_RTL8365MB) += rtl8365mb.o
|