mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
net: phylink: Refactor phylink_of_phy_connect()
Refactor phylink_of_phy_connect() to use phylink_fwnode_phy_connect(). Signed-off-by: Calvin Johnson <calvin.johnson@oss.nxp.com> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Acked-by: Grant Likely <grant.likely@arm.com> Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
25396f680d
commit
423e6e8946
@ -1085,44 +1085,7 @@ EXPORT_SYMBOL_GPL(phylink_connect_phy);
|
||||
int phylink_of_phy_connect(struct phylink *pl, struct device_node *dn,
|
||||
u32 flags)
|
||||
{
|
||||
struct device_node *phy_node;
|
||||
struct phy_device *phy_dev;
|
||||
int ret;
|
||||
|
||||
/* Fixed links and 802.3z are handled without needing a PHY */
|
||||
if (pl->cfg_link_an_mode == MLO_AN_FIXED ||
|
||||
(pl->cfg_link_an_mode == MLO_AN_INBAND &&
|
||||
phy_interface_mode_is_8023z(pl->link_interface)))
|
||||
return 0;
|
||||
|
||||
phy_node = of_parse_phandle(dn, "phy-handle", 0);
|
||||
if (!phy_node)
|
||||
phy_node = of_parse_phandle(dn, "phy", 0);
|
||||
if (!phy_node)
|
||||
phy_node = of_parse_phandle(dn, "phy-device", 0);
|
||||
|
||||
if (!phy_node) {
|
||||
if (pl->cfg_link_an_mode == MLO_AN_PHY)
|
||||
return -ENODEV;
|
||||
return 0;
|
||||
}
|
||||
|
||||
phy_dev = of_phy_find_device(phy_node);
|
||||
/* We're done with the phy_node handle */
|
||||
of_node_put(phy_node);
|
||||
if (!phy_dev)
|
||||
return -ENODEV;
|
||||
|
||||
ret = phy_attach_direct(pl->netdev, phy_dev, flags,
|
||||
pl->link_interface);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = phylink_bringup_phy(pl, phy_dev, pl->link_config.interface);
|
||||
if (ret)
|
||||
phy_detach(phy_dev);
|
||||
|
||||
return ret;
|
||||
return phylink_fwnode_phy_connect(pl, of_fwnode_handle(dn), flags);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(phylink_of_phy_connect);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user