All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next PATCH 1/2] ixgbe: fix slow load times on 82598 nics
@ 2009-01-23  8:37 Jeff Kirsher
  2009-01-23  8:37 ` [net-next PATCH 2/2] ixgbe: add support KX/KX4 device Jeff Kirsher
  2009-01-27  4:57 ` [net-next PATCH 1/2] ixgbe: fix slow load times on 82598 nics David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Jeff Kirsher @ 2009-01-23  8:37 UTC (permalink / raw)
  To: davem; +Cc: netdev, jeff, Don Skidmore, Peter P Waskiewicz Jr, Jeff Kirsher

From: Don Skidmore <donald.c.skidmore@intel.com>

Load times for NICs that use i2c to communicate with the phy were taking
~4.5 sec per port.  This fix first checks to see if the link is already
up before calling get_link_capabilities, since if it is we don't need
query the phy for link state.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 drivers/net/ixgbe/ixgbe_main.c |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index f7b592e..18d4353 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -3901,16 +3901,27 @@ static void ixgbe_netpoll(struct net_device *netdev)
  **/
 static int ixgbe_link_config(struct ixgbe_hw *hw)
 {
-	u32 autoneg = IXGBE_LINK_SPEED_10GB_FULL;
+	u32 autoneg;
+	bool link_up = false;
+	u32 ret = IXGBE_ERR_LINK_SETUP;
 
-	/* must always autoneg for both 1G and 10G link */
-	hw->mac.autoneg = true;
+	if (hw->mac.ops.check_link)
+		ret = hw->mac.ops.check_link(hw, &autoneg, &link_up, false);
 
-	if ((hw->mac.type == ixgbe_mac_82598EB) &&
-	    (hw->phy.media_type == ixgbe_media_type_copper))
-		autoneg = IXGBE_LINK_SPEED_82598_AUTONEG;
+	if (ret || !link_up)
+		goto link_cfg_out;
 
-	return hw->mac.ops.setup_link_speed(hw, autoneg, true, true);
+	if (hw->mac.ops.get_link_capabilities)
+		ret = hw->mac.ops.get_link_capabilities(hw, &autoneg,
+		                                        &hw->mac.autoneg);
+	if (ret)
+		goto link_cfg_out;
+
+	if (hw->mac.ops.setup_link_speed)
+		ret = hw->mac.ops.setup_link_speed(hw, autoneg, true, true);
+
+link_cfg_out:
+	return ret;
 }
 
 static const struct net_device_ops ixgbe_netdev_ops = {


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-01-27  4:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-23  8:37 [net-next PATCH 1/2] ixgbe: fix slow load times on 82598 nics Jeff Kirsher
2009-01-23  8:37 ` [net-next PATCH 2/2] ixgbe: add support KX/KX4 device Jeff Kirsher
2009-01-27  4:57   ` David Miller
2009-01-27  4:57 ` [net-next PATCH 1/2] ixgbe: fix slow load times on 82598 nics David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.