On Fri, Jun 11, 2021 at 1:54 PM Ioana Ciornei <ciorneiioana@xxxxxxxxx> wrote: > > From: Calvin Johnson <calvin.johnson@xxxxxxxxxxx> > > Define fwnode_phy_find_device() to iterate an mdiobus and find the > phy device of the provided phy fwnode. Additionally define > device_phy_find_device() to find phy device of provided device. > > Define fwnode_get_phy_node() to get phy_node using named reference. using a named ... > +struct fwnode_handle *fwnode_get_phy_node(struct fwnode_handle *fwnode) > +{ > + struct fwnode_handle *phy_node; > + > + /* Only phy-handle is used for ACPI */ > + phy_node = fwnode_find_reference(fwnode, "phy-handle", 0); > + if (is_acpi_node(fwnode) || !IS_ERR(phy_node)) > + return phy_node; > + phy_node = fwnode_find_reference(fwnode, "phy", 0); > + if (IS_ERR(phy_node)) > + phy_node = fwnode_find_reference(fwnode, "phy-device", 0); > + return phy_node; Looking into the patterns in this code I would perhaps refactor it the following way: /* First try "phy-handle" as most common in use */ phy_node = fwnode_find_reference(fwnode, "phy-handle", 0); /* Only phy-handle is used for ACPI */ if (is_acpi_node(fwnode)) return phy_node; if (!IS_ERR(phy_node)) return phy_node; /* Try "phy" reference */ phy_node = fwnode_find_reference(fwnode, "phy", 0); if (!IS_ERR(phy_node)) return phy_node; /* At last try "phy-device" reference */ return fwnode_find_reference(fwnode, "phy-device", 0); > +} -- With Best Regards, Andy Shevchenko