Messages in this thread | | | Date | Wed, 16 Nov 2022 15:22:58 -0800 | Subject | Re: [PATCH 1/2] net: phy: Add link between phy dev and mac dev | From | Florian Fainelli <> |
| |
On 11/16/22 06:43, Xiaolei Wang wrote: > The external phy used by current mac interface > is managed by another mac interface, so we should > create a device link between phy dev and mac dev. > > Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com> > --- > drivers/net/phy/phy.c | 20 ++++++++++++++++++++ > include/linux/phy.h | 1 + > 2 files changed, 21 insertions(+) > > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c > index e741d8aebffe..0ef6b69026c7 100644 > --- a/drivers/net/phy/phy.c > +++ b/drivers/net/phy/phy.c > @@ -35,6 +35,7 @@ > #include <net/netlink.h> > #include <net/genetlink.h> > #include <net/sock.h> > +#include <linux/of_mdio.h> > > #define PHY_STATE_TIME HZ > > @@ -1535,3 +1536,22 @@ int phy_ethtool_nway_reset(struct net_device *ndev) > return phy_restart_aneg(phydev); > } > EXPORT_SYMBOL(phy_ethtool_nway_reset); > + > +/** > + * The external phy used by current mac interface is managed by > + * another mac interface, so we should create a device link between > + * phy dev and mac dev. > + */ > +void phy_mac_link_add(struct device_node *phy_np, struct net_device *ndev) > +{ > + struct phy_device *phy_dev = of_phy_find_device(phy_np); > + struct device *dev = phy_dev ? &phy_dev->mdio.dev : NULL; > + > + if (dev && ndev->dev.parent != dev) > + device_link_add(ndev->dev.parent, dev, > + DL_FLAG_PM_RUNTIME);
Where is the matching device_link_del()? -- Florian
| |