Message ID | 1440323220-20438-4-git-send-email-andrew@lunn.ch |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Le 08/23/15 02:46, Andrew Lunn a écrit : > 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. As mentioned in patch 4, the behavior is not really specified before you attach to the PHY device, and therefore configured by the PHY library, still: > > Signed-off-by: Andrew Lunn <andrew@lunn.ch> Acked-by: Florian Fainelli <f.fainelli@gmail.com>
diff --git a/drivers/net/phy/fixed_phy.c b/drivers/net/phy/fixed_phy.c index 1a400ef92d65..7244336dee7a 100644 --- a/drivers/net/phy/fixed_phy.c +++ b/drivers/net/phy/fixed_phy.c @@ -296,6 +296,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);
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> --- drivers/net/phy/fixed_phy.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)