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>
This commit is contained in:
parent
d0e027db78
commit
4cc15f5499
1 changed files with 3 additions and 1 deletions
|
@ -359,6 +359,7 @@ e1000_release_hw_control(struct e1000_adapter *adapter)
|
||||||
switch (adapter->hw.mac_type) {
|
switch (adapter->hw.mac_type) {
|
||||||
case e1000_82571:
|
case e1000_82571:
|
||||||
case e1000_82572:
|
case e1000_82572:
|
||||||
|
case e1000_80003es2lan:
|
||||||
ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
|
ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
|
||||||
E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
|
E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
|
||||||
ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD);
|
ctrl_ext & ~E1000_CTRL_EXT_DRV_LOAD);
|
||||||
|
@ -392,6 +393,7 @@ e1000_get_hw_control(struct e1000_adapter *adapter)
|
||||||
switch (adapter->hw.mac_type) {
|
switch (adapter->hw.mac_type) {
|
||||||
case e1000_82571:
|
case e1000_82571:
|
||||||
case e1000_82572:
|
case e1000_82572:
|
||||||
|
case e1000_80003es2lan:
|
||||||
ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
|
ctrl_ext = E1000_READ_REG(&adapter->hw, CTRL_EXT);
|
||||||
E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
|
E1000_WRITE_REG(&adapter->hw, CTRL_EXT,
|
||||||
ctrl_ext | E1000_CTRL_EXT_DRV_LOAD);
|
ctrl_ext | E1000_CTRL_EXT_DRV_LOAD);
|
||||||
|
@ -419,7 +421,7 @@ e1000_up(struct e1000_adapter *adapter)
|
||||||
uint16_t mii_reg;
|
uint16_t mii_reg;
|
||||||
e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &mii_reg);
|
e1000_read_phy_reg(&adapter->hw, PHY_CTRL, &mii_reg);
|
||||||
if (mii_reg & MII_CR_POWER_DOWN)
|
if (mii_reg & MII_CR_POWER_DOWN)
|
||||||
e1000_phy_reset(&adapter->hw);
|
e1000_phy_hw_reset(&adapter->hw);
|
||||||
}
|
}
|
||||||
|
|
||||||
e1000_set_multi(netdev);
|
e1000_set_multi(netdev);
|
||||||
|
|
Reference in a new issue