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 daniel@makrotopia.org Cc: stable@vger.kernel.org Fixes: 01e5b728e9e4 ("net: phy: Add a binding for PHY LEDs") Signed-off-by: Christian Marangi ansuelsmth@gmail.com --- 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;