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>
52 lines
1.5 KiB
Text
52 lines
1.5 KiB
Text
# SPDX-License-Identifier: GPL-2.0-only
|
|
menuconfig NET_DSA_REALTEK
|
|
tristate "Realtek Ethernet switch family support"
|
|
depends on NET_DSA
|
|
select FIXED_PHY
|
|
select IRQ_DOMAIN
|
|
select REALTEK_PHY
|
|
select REGMAP
|
|
help
|
|
Select to enable support for Realtek Ethernet switch chips.
|
|
|
|
Note that at least one interface driver must be enabled for the
|
|
subdrivers to be loaded. Moreover, an interface driver cannot achieve
|
|
anything without at least one subdriver enabled.
|
|
|
|
if NET_DSA_REALTEK
|
|
|
|
config NET_DSA_REALTEK_MDIO
|
|
bool "Realtek MDIO interface support"
|
|
depends on OF
|
|
help
|
|
Select to enable support for registering switches configured
|
|
through MDIO.
|
|
|
|
config NET_DSA_REALTEK_SMI
|
|
bool "Realtek SMI interface support"
|
|
depends on OF
|
|
help
|
|
Select to enable support for registering switches connected
|
|
through SMI.
|
|
|
|
config NET_DSA_REALTEK_RTL8365MB
|
|
tristate "Realtek RTL8365MB switch driver"
|
|
depends on NET_DSA_REALTEK_SMI || NET_DSA_REALTEK_MDIO
|
|
select NET_DSA_TAG_RTL8_4
|
|
help
|
|
Select to enable support for Realtek RTL8365MB-VC and RTL8367S.
|
|
|
|
config NET_DSA_REALTEK_RTL8366RB
|
|
tristate "Realtek RTL8366RB switch driver"
|
|
depends on NET_DSA_REALTEK_SMI || NET_DSA_REALTEK_MDIO
|
|
select NET_DSA_TAG_RTL4_A
|
|
help
|
|
Select to enable support for Realtek RTL8366RB.
|
|
|
|
config NET_DSA_REALTEK_RTL8366RB_LEDS
|
|
bool "Support RTL8366RB LED control"
|
|
depends on (LEDS_CLASS=y || LEDS_CLASS=NET_DSA_REALTEK_RTL8366RB)
|
|
depends on NET_DSA_REALTEK_RTL8366RB
|
|
default NET_DSA_REALTEK_RTL8366RB
|
|
|
|
endif
|