aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorAuke Kok <auke-jan.h.kok@intel.com>2006-04-14 22:04:46 -0400
committerAuke Kok <auke-jan.h.kok@intel.com>2006-04-14 22:04:46 -0400
commit4cc15f54991caf1572e03ffc65d9986e433007e2 (patch)
treecc32bb4993833593f3c46ead3a5572ba8920fdb6 /drivers/net
parentd0e027db7861ef03de0ac08494a9a61984d8f8b0 (diff)
e1000: Esb2 wol link cycle bug and uninitialized registers
Esb2 link didn't return after wol disable. The code previously assumed that writing reset to PHY_CTRL phy register turned the phy back on. In the ESB2 phy case that didn't occur. Add ESB2 to acquire/release_hw functions upon review it was discovered that esb2 was skipped on these functions Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: John Ronciak <john.ronciak@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/e1000/e1000_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index ac1e8387416b..8de9f9affae4 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -359,6 +359,7 @@ e1000_release_hw_control(struct e1000_adapter *adapter)
359 switch (adapter->hw.mac_type) { 359 switch (adapter->hw.mac_type) {
360 case e1000_82571: 360 case e1000_82571:
361 case e1000_82572: 361 case e1000_82572:
362 case e1000_80003es2lan:
362 ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT); 363 ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
363 E1000_WRITE_REG(&adapter->hw, CTRL_EXT, 364 E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
364 ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD); 365 ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD);
@@ -392,6 +393,7 @@ e1000_get_hw_control(struct e1000_adapter *adapter)
392 switch (adapter->hw.mac_type) { 393 switch (adapter->hw.mac_type) {
393 case e1000_82571: 394 case e1000_82571:
394 case e1000_82572: 395 case e1000_82572:
396 case e1000_80003es2lan:
395 ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT); 397 ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
396 E1000_WRITE_REG(&adapter->hw, CTRL_EXT, 398 E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
397 ctrl_ext | E1000_CTRL_EXT_DRV_LOAD); 399 ctrl_ext | E1000_CTRL_EXT_DRV_LOAD);
@@ -419,7 +421,7 @@ e1000_up(struct e1000_adapter *adapter)
419 uint16_t mii_reg; 421 uint16_t mii_reg;
420 e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &mii_reg); 422 e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &mii_reg);
421 if (mii_reg & MII_CR_POWER_DOWN) 423 if (mii_reg & MII_CR_POWER_DOWN)
422 e1000_phy_reset(&adapter->hw); 424 e1000_phy_hw_reset(&adapter->hw);
423 } 425 }
424 426
425 e1000_set_multi(netdev); 427 e1000_set_multi(netdev);