net: phy: properly report internal PHYs through sysfs
Internal PHYs may not have a valid PHY interface defined, which will
show up in sysfs as "". Add an explicit check of internal PHYs to report
their interface correctly.
Fixes: 3d055d8d1c
("net: phy: expose PHY device interface mode")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
879ece6ecb
commit
574746ddec
1 changed files with 7 additions and 1 deletions
|
@ -553,8 +553,14 @@ static ssize_t
|
||||||
phy_interface_show(struct device *dev, struct device_attribute *attr, char *buf)
|
phy_interface_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
struct phy_device *phydev = to_phy_device(dev);
|
struct phy_device *phydev = to_phy_device(dev);
|
||||||
|
const char *mode = NULL;
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", phy_modes(phydev->interface));
|
if (phy_is_internal(phydev))
|
||||||
|
mode = "internal";
|
||||||
|
else
|
||||||
|
mode = phy_modes(phydev->interface);
|
||||||
|
|
||||||
|
return sprintf(buf, "%s\n", mode);
|
||||||
}
|
}
|
||||||
static DEVICE_ATTR_RO(phy_interface);
|
static DEVICE_ATTR_RO(phy_interface);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue