Subject: [net PATCH 2/2] net: phy: Skip PHY LEDs OF registration for Generic PHY driver

From: Christian Marangi <[email-masked]>
Date: Fri, 4 Oct 2024 00:10:05 +0200

It might happen that a PHY driver fails to probe or is not present in
the system as it's a kmod. In such case the Device Tree might have LED
entry but the Generic PHY is probed instead.

In this scenario, PHY LEDs OF registration should be skipped as
controlling the PHY LEDs is not possible.

Tested-by: Daniel Golle <[email-masked]>
Cc: [email-masked]
Fixes: 01e5b728e9e4 ("net: phy: Add a binding for PHY LEDs")
Signed-off-by: Christian Marangi <[email-masked]>
---
 drivers/net/phy/phy_device.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 499797646580..af088bf00bae 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -3411,6 +3411,11 @@ static int of_phy_leds(struct phy_device *phydev)
 	struct device_node *leds;
 	int err;
 
+	/* Skip LED registration if we are Generic PHY */
+	if (phy_driver_is_genphy(phydev) ||
+	    phy_driver_is_genphy_10g(phydev))
+		return 0;
+
 	if (!IS_ENABLED(CONFIG_OF_MDIO))
 		return 0;
 
-- 
2.45.2