net: phy: expose phydev->has_fixups to sysfs
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 12 Feb 2014 01:27:42 +0000 (17:27 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 13 Feb 2014 00:08:49 +0000 (19:08 -0500)
Expose the PHY device has_fixups boolean as a sysfs property to help
troubleshooting PHY configurations.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/ABI/testing/sysfs-bus-mdio
drivers/net/phy/mdio_bus.c

index 2133afd0b067ca346eab433c29cd7124310881ce..491baaf4285f64d7a4e822359a43ad8c5f9d6c54 100644 (file)
@@ -17,3 +17,13 @@ Description:
                Ethernet driver during bus enumeration, encoded in string.
                This interface mode is used to configure the Ethernet MAC with the
                appropriate mode for its data lines to the PHY hardware.
+
+What:          /sys/bus/mdio_bus/devices/.../phy_has_fixups
+Date:          February 2014
+KernelVersion: 3.15
+Contact:       netdev@vger.kernel.org
+Description:
+               This attribute contains the boolean value whether a given PHY
+               device has had any "fixup" workaround running on it, encoded as
+               a boolean. This information is provided to help troubleshooting
+               PHY configurations.
index 7c66ea095a4625735c97874c68f170f34230ffcc..76f54b32a120832f2ce212c129592a6f30ab83df 100644 (file)
@@ -441,9 +441,19 @@ phy_interface_show(struct device *dev, struct device_attribute *attr, char *buf)
 }
 static DEVICE_ATTR_RO(phy_interface);
 
+static ssize_t
+phy_has_fixups_show(struct device *dev, struct device_attribute *attr, char *buf)
+{
+       struct phy_device *phydev = to_phy_device(dev);
+
+       return sprintf(buf, "%d\n", phydev->has_fixups);
+}
+static DEVICE_ATTR_RO(phy_has_fixups);
+
 static struct attribute *mdio_dev_attrs[] = {
        &dev_attr_phy_id.attr,
        &dev_attr_phy_interface.attr,
+       &dev_attr_phy_has_fixups.attr,
        NULL,
 };
 ATTRIBUTE_GROUPS(mdio_dev);