mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-27 12:32:50 +00:00
net: phy: Validate PHY LED OPs presence before registering
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>
This commit is contained in:
committed by
Paolo Abeni
parent
88dc9aebd0
commit
16aef66643
@@ -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) {
|
||||
@@ -3429,6 +3439,7 @@ static int of_phy_leds(struct phy_device *phydev)
|
||||
}
|
||||
}
|
||||
|
||||
exit:
|
||||
of_node_put(leds);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user