From 6ac6ae0df2c2a552c184f2e7efcdfb144e870ee3 Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Fri, 5 Oct 2007 15:22:02 -0700 Subject: [PATCH] --- yaml --- r: 66997 b: refs/heads/master c: 309af40b5f4c2065c9a5f74a360ad3d3b0c9c9cd h: refs/heads/master i: 66995: 5662d350cb4ec19f478b8a51169029f4a94702ab v: v3 --- [refs] | 2 +- trunk/drivers/net/e1000e/ethtool.c | 1 + trunk/drivers/net/e1000e/lib.c | 12 +++++++++--- trunk/drivers/net/e1000e/netdev.c | 1 + 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 05ead4b9ee05..87dd889f793b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4e6c709c5ab886be0ddbc96c4f96534e55920e68 +refs/heads/master: 309af40b5f4c2065c9a5f74a360ad3d3b0c9c9cd diff --git a/trunk/drivers/net/e1000e/ethtool.c b/trunk/drivers/net/e1000e/ethtool.c index 2e8218fb0579..b7a7e2ae5e13 100644 --- a/trunk/drivers/net/e1000e/ethtool.c +++ b/trunk/drivers/net/e1000e/ethtool.c @@ -301,6 +301,7 @@ static int e1000_set_pauseparam(struct net_device *netdev, hw->mac.original_fc = hw->mac.fc; if (adapter->fc_autoneg == AUTONEG_ENABLE) { + hw->mac.fc = e1000_fc_default; if (netif_running(adapter->netdev)) { e1000e_down(adapter); e1000e_up(adapter); diff --git a/trunk/drivers/net/e1000e/lib.c b/trunk/drivers/net/e1000e/lib.c index 3bbfe605e111..0bdeca30c75f 100644 --- a/trunk/drivers/net/e1000e/lib.c +++ b/trunk/drivers/net/e1000e/lib.c @@ -639,9 +639,15 @@ s32 e1000e_setup_link(struct e1000_hw *hw) if (e1000_check_reset_block(hw)) return 0; - ret_val = e1000_set_default_fc_generic(hw); - if (ret_val) - return ret_val; + /* + * If flow control is set to default, set flow control based on + * the EEPROM flow control settings. + */ + if (mac->fc == e1000_fc_default) { + ret_val = e1000_set_default_fc_generic(hw); + if (ret_val) + return ret_val; + } /* We want to save off the original Flow Control configuration just * in case we get disconnected and then reconnected into a different diff --git a/trunk/drivers/net/e1000e/netdev.c b/trunk/drivers/net/e1000e/netdev.c index 600538bc932f..033e124d1c1f 100644 --- a/trunk/drivers/net/e1000e/netdev.c +++ b/trunk/drivers/net/e1000e/netdev.c @@ -4195,6 +4195,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev, /* Initialize link parameters. User can change them with ethtool */ adapter->hw.mac.autoneg = 1; + adapter->fc_autoneg = 1; adapter->hw.mac.original_fc = e1000_fc_default; adapter->hw.mac.fc = e1000_fc_default; adapter->hw.phy.autoneg_advertised = 0x2f;