Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae782dec authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'phy-sysfs-reciprocal-links'



Florian Fainelli says:

====================
net: phy: Create sysfs reciprocal links for attached_dev/phydev

This patch series addresses a device topology shortcoming where a program
scanning /sys would not be able to establish a mapping between the network
device and the PHY device.

In the process it turned out that no PHY device documentation existed for
sysfs attributes.

Changes in v2:

- document possible phy_interface values in sysfs-class-net-phydev
====================

Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 9226976f 86f22d04
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -251,3 +251,11 @@ Contact: netdev@vger.kernel.org
Description:
		Indicates the unique physical switch identifier of a switch this
		port belongs to, as a string.

What:		/sys/class/net/<iface>/phydev
Date:		May 2017
KernelVersion:	4.13
Contact:	netdev@vger.kernel.org
Description:
		Symbolic link to the PHY device this network device is attached
		to.
+36 −0
Original line number Diff line number Diff line
What:		/sys/class/mdio_bus/<bus>/<device>/attached_dev
Date:		May 2017
KernelVersion:	4.13
Contact:	netdev@vger.kernel.org
Description:
		Symbolic link to the network device this PHY device is
		attached to.

What:		/sys/class/mdio_bus/<bus>/<device>/phy_has_fixups
Date:		February 2014
KernelVersion:	3.15
Contact:	netdev@vger.kernel.org
Description:
		Boolean value indicating whether the PHY device has
		any fixups registered against it (phy_register_fixup)

What:		/sys/class/mdio_bus/<bus>/<device>/phy_id
Date:		November 2012
KernelVersion:	3.8
Contact:	netdev@vger.kernel.org
Description:
		32-bit hexadecimal value corresponding to the PHY device's OUI,
		model and revision number.

What:		/sys/class/mdio_bus/<bus>/<device>/phy_interface
Date:		February 2014
KernelVersion:	3.15
Contact:	netdev@vger.kernel.org
Description:
		String value indicating the PHY interface, possible
		values are:.
		<empty> (not available), mii, gmii, sgmii, tbi, rev-mii,
		rmii, rgmii, rgmii-id, rgmii-rxid, rgmii-txid, rtbi, smii
		xgmii, moca, qsgmii, trgmii, 1000base-x, 2500base-x, rxaui,
		unknown
+11 −0
Original line number Diff line number Diff line
@@ -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);