|
@@ -960,6 +960,15 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
|
|
|
|
|
|
phydev->attached_dev = dev;
|
|
|
dev->phydev = phydev;
|
|
|
+ err = sysfs_create_link(&phydev->mdio.dev.kobj, &dev->dev.kobj,
|
|
|
+ "attached_dev");
|
|
|
+ if (err)
|
|
|
+ goto error;
|
|
|
+
|
|
|
+ err = sysfs_create_link(&dev->dev.kobj, &phydev->mdio.dev.kobj,
|
|
|
+ "phydev");
|
|
|
+ if (err)
|
|
|
+ goto error;
|
|
|
|
|
|
phydev->dev_flags = flags;
|
|
|
|
|
@@ -1050,6 +1059,8 @@ void phy_detach(struct phy_device *phydev)
|
|
|
struct mii_bus *bus;
|
|
|
int i;
|
|
|
|
|
|
+ sysfs_remove_link(&dev->dev.kobj, "phydev");
|
|
|
+ sysfs_remove_link(&phydev->mdio.dev.kobj, "attached_dev");
|
|
|
phydev->attached_dev->phydev = NULL;
|
|
|
phydev->attached_dev = NULL;
|
|
|
phy_suspend(phydev);
|