diff options
author | Auke Kok <auke-jan.h.kok@intel.com> | 2006-04-14 22:04:46 -0400 |
---|---|---|
committer | Auke Kok <auke-jan.h.kok@intel.com> | 2006-04-14 22:04:46 -0400 |
commit | 4cc15f54991caf1572e03ffc65d9986e433007e2 (patch) | |
tree | cc32bb4993833593f3c46ead3a5572ba8920fdb6 /drivers/net/e1000 | |
parent | d0e027db7861ef03de0ac08494a9a61984d8f8b0 (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/e1000')
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 4 |
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); |