2023-08-16 16:51:28 +00:00
|
|
|
From 4bb7aac70b5d8a4bddf4ee0791b834f9f56883d2 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Arnd Bergmann <arnd@arndb.de>
|
|
|
|
Date: Thu, 20 Apr 2023 10:45:51 +0200
|
|
|
|
Subject: [PATCH] net: phy: fix circular LEDS_CLASS dependencies
|
|
|
|
|
|
|
|
The CONFIG_PHYLIB symbol is selected by a number of device drivers that
|
|
|
|
need PHY support, but it now has a dependency on CONFIG_LEDS_CLASS,
|
|
|
|
which may not be enabled, causing build failures.
|
|
|
|
|
|
|
|
Avoid the risk of missing and circular dependencies by guarding the
|
|
|
|
phylib LED support itself in another Kconfig symbol that can only be
|
|
|
|
enabled if the dependency is met.
|
|
|
|
|
|
|
|
This could be made a hidden symbol and always enabled when both CONFIG_OF
|
|
|
|
and CONFIG_LEDS_CLASS are reachable from the phylib, but there may be an
|
|
|
|
advantage in having users see this option when they have a misconfigured
|
|
|
|
kernel without built-in LED support.
|
|
|
|
|
|
|
|
Fixes: 01e5b728e9e4 ("net: phy: Add a binding for PHY LEDs")
|
|
|
|
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
|
|
|
|
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
|
|
|
Link: https://lore.kernel.org/r/20230420084624.3005701-1-arnd@kernel.org
|
|
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
|
|
---
|
|
|
|
drivers/net/phy/Kconfig | 9 ++++++++-
|
|
|
|
drivers/net/phy/phy_device.c | 3 ++-
|
|
|
|
2 files changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/phy/Kconfig
|
|
|
|
+++ b/drivers/net/phy/Kconfig
|
|
|
|
@@ -18,7 +18,6 @@ menuconfig PHYLIB
|
|
|
|
depends on NETDEVICES
|
|
|
|
select MDIO_DEVICE
|
|
|
|
select MDIO_DEVRES
|
|
|
|
- depends on LEDS_CLASS || LEDS_CLASS=n
|
|
|
|
help
|
|
|
|
Ethernet controllers are usually attached to PHY
|
|
|
|
devices. This option provides infrastructure for
|
|
|
|
@@ -45,6 +44,14 @@ config LED_TRIGGER_PHY
|
|
|
|
<Speed in megabits>Mbps OR <Speed in gigabits>Gbps OR link
|
|
|
|
for any speed known to the PHY.
|
|
|
|
|
|
|
|
+config PHYLIB_LEDS
|
|
|
|
+ bool "Support probing LEDs from device tree"
|
|
|
|
+ depends on LEDS_CLASS=y || LEDS_CLASS=PHYLIB
|
|
|
|
+ depends on OF
|
|
|
|
+ default y
|
|
|
|
+ help
|
|
|
|
+ When LED class support is enabled, phylib can automatically
|
|
|
|
+ probe LED setting from device tree.
|
|
|
|
|
|
|
|
config FIXED_PHY
|
|
|
|
tristate "MDIO Bus/PHY emulation with fixed speed/link PHYs"
|
|
|
|
--- a/drivers/net/phy/phy_device.c
|
|
|
|
+++ b/drivers/net/phy/phy_device.c
|
2023-08-23 18:59:59 +00:00
|
|
|
@@ -3210,7 +3210,8 @@ static int phy_probe(struct device *dev)
|
2023-08-16 16:51:28 +00:00
|
|
|
/* Get the LEDs from the device tree, and instantiate standard
|
|
|
|
* LEDs for them.
|
|
|
|
*/
|
|
|
|
- err = of_phy_leds(phydev);
|
|
|
|
+ if (IS_ENABLED(CONFIG_PHYLIB_LEDS))
|
|
|
|
+ err = of_phy_leds(phydev);
|
|
|
|
|
|
|
|
out:
|
|
|
|
/* Re-assert the reset signal on error */
|