diff options
author | Don Skidmore <donald.c.skidmore@intel.com> | 2009-03-31 17:33:02 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-02 04:02:27 -0400 |
commit | 7c5b83230a22d0e14375e5f283b8aaf3320ebd86 (patch) | |
tree | 172df4ec235cf5974d6f3e529a4349a0acee9e80 /drivers | |
parent | b453368dfd74ba5a49bfaa853251212fa306e70d (diff) |
ixgbe: Fix ethtool output with advertised mode.
Ethtool tries to get advertised speed from phy.autoneg_advertised.
However for copper media this wasn't happening until later do to
an other fix which moved mac.ops.setup_link_speed placement in
ixgbe_link_config(). This patch will display the default advertised
speeds if it can't yet get this information from phy.autoneg_advertised.
Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Acked-by: Mallikarjuna R Chilakala <mallikarjuna.chilakala@intel.com>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_ethtool.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c index 18ecba7f6ecb..34b4a84d2e77 100644 --- a/drivers/net/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ixgbe/ixgbe_ethtool.c | |||
@@ -129,6 +129,15 @@ static int ixgbe_get_settings(struct net_device *netdev, | |||
129 | ecmd->advertising |= ADVERTISED_10000baseT_Full; | 129 | ecmd->advertising |= ADVERTISED_10000baseT_Full; |
130 | if (hw->phy.autoneg_advertised & IXGBE_LINK_SPEED_1GB_FULL) | 130 | if (hw->phy.autoneg_advertised & IXGBE_LINK_SPEED_1GB_FULL) |
131 | ecmd->advertising |= ADVERTISED_1000baseT_Full; | 131 | ecmd->advertising |= ADVERTISED_1000baseT_Full; |
132 | /* | ||
133 | * It's possible that phy.autoneg_advertised may not be | ||
134 | * set yet. If so display what the default would be - | ||
135 | * both 1G and 10G supported. | ||
136 | */ | ||
137 | if (!(ecmd->advertising & (ADVERTISED_1000baseT_Full | | ||
138 | ADVERTISED_10000baseT_Full))) | ||
139 | ecmd->advertising |= (ADVERTISED_10000baseT_Full | | ||
140 | ADVERTISED_1000baseT_Full); | ||
132 | 141 | ||
133 | ecmd->port = PORT_TP; | 142 | ecmd->port = PORT_TP; |
134 | } else if (hw->phy.media_type == ixgbe_media_type_backplane) { | 143 | } else if (hw->phy.media_type == ixgbe_media_type_backplane) { |