diff options
author | Andrew Lunn <andrew@lunn.ch> | 2015-08-31 15:56:48 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-31 14:48:02 -0700 |
commit | 34b31da486a5e4eda9ff548ebf6dc3adc167bd0c (patch) | |
tree | 0394017fa6fc48d665452780ba481d74108ccf10 | |
parent | dea870242a9c4ea74b3ca0f2da3f864c47484cff (diff) | |
download | linux-34b31da486a5e4eda9ff548ebf6dc3adc167bd0c.tar.bz2 |
phy: fixed_phy: Set supported speed in phydev
Set the supported field of the phydev to indicate the speed features
of the phy. If the phy is never attached to a netdev, but used in an
adjust_link() function, the speed will be incorrectly evaluated to
10/half rather than the correct speed/duplex.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/phy/fixed_phy.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c index ce46428ff21f..2f9457f05a2e 100644 --- a/drivers/net/phy/fixed_phy.c +++ b/drivers/net/phy/fixed_phy.c @@ -305,6 +305,18 @@ struct phy_device *fixed_phy_register(unsigned int irq, phy->dev.of_node = np; phy->is_pseudo_fixed_link = true; + switch (status->speed) { + case SPEED_1000: + phy->supported = PHY_1000BT_FEATURES; + break; + case SPEED_100: + phy->supported = PHY_100BT_FEATURES; + break; + case SPEED_10: + default: + phy->supported = PHY_10BT_FEATURES; + } + ret = phy_device_register(phy); if (ret) { phy_device_free(phy); |