aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgbe/ixgbe_ethtool.c
diff options
context:
space:
mode:
authorDon Skidmore <donald.c.skidmore@intel.com>2009-03-31 21:33:02 +0000
committerDavid S. Miller <davem@davemloft.net>2009-04-02 01:02:27 -0700
commit7c5b83230a22d0e14375e5f283b8aaf3320ebd86 (patch)
tree172df4ec235cf5974d6f3e529a4349a0acee9e80 /drivers/net/ixgbe/ixgbe_ethtool.c
parentixgbe: fix build when DEBUG is defined (diff)
downloadlinux-dev-7c5b83230a22d0e14375e5f283b8aaf3320ebd86.tar.xz
linux-dev-7c5b83230a22d0e14375e5f283b8aaf3320ebd86.zip
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/net/ixgbe/ixgbe_ethtool.c')
-rw-r--r--drivers/net/ixgbe/ixgbe_ethtool.c9
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,
ecmd->advertising |= ADVERTISED_10000baseT_Full;
if (hw->phy.autoneg_advertised & IXGBE_LINK_SPEED_1GB_FULL)
ecmd->advertising |= ADVERTISED_1000baseT_Full;
+ /*
+ * It's possible that phy.autoneg_advertised may not be
+ * set yet. If so display what the default would be -
+ * both 1G and 10G supported.
+ */
+ if (!(ecmd->advertising & (ADVERTISED_1000baseT_Full |
+ ADVERTISED_10000baseT_Full)))
+ ecmd->advertising |= (ADVERTISED_10000baseT_Full |
+ ADVERTISED_1000baseT_Full);
ecmd->port = PORT_TP;
} else if (hw->phy.media_type == ixgbe_media_type_backplane) {