Skip to content

Commit

Permalink
net: phy: Validate PHY LED OPs presence before registering
Browse files Browse the repository at this point in the history
Validate PHY LED OPs presence before registering and parsing them.
Defining LED nodes for a PHY driver that actually doesn't supports them
is redundant and useless.

It's also the case with Generic PHY driver used and a DT having LEDs
node for the specific PHY.

Skip it and report the error with debug print enabled.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20241008194718.9682-1-ansuelsmth@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
  • Loading branch information
Christian Marangi authored and Paolo Abeni committed Oct 10, 2024
1 parent 88dc9ae commit 16aef66
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/net/phy/phy_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -3420,6 +3420,16 @@ static int of_phy_leds(struct phy_device *phydev)
if (!leds)
return 0;

/* Check if the PHY driver have at least an OP to
* set the LEDs.
*/
if (!(phydev->drv->led_brightness_set ||
phydev->drv->led_blink_set ||
phydev->drv->led_hw_control_set)) {
phydev_dbg(phydev, "ignoring leds node defined with no PHY driver support\n");
goto exit;
}

for_each_available_child_of_node_scoped(leds, led) {
err = of_phy_led(phydev, led);
if (err) {
Expand All @@ -3429,6 +3439,7 @@ static int of_phy_leds(struct phy_device *phydev)
}
}

exit:
of_node_put(leds);
return 0;
}
Expand Down

0 comments on commit 16aef66

Please sign in to comment.