diff options
Diffstat (limited to 'sys/dev/e1000/e1000_base.c')
-rw-r--r-- | sys/dev/e1000/e1000_base.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/e1000/e1000_base.c b/sys/dev/e1000/e1000_base.c index ff810821d9e9..ae44a0b91aac 100644 --- a/sys/dev/e1000/e1000_base.c +++ b/sys/dev/e1000/e1000_base.c @@ -137,7 +137,7 @@ void e1000_power_down_phy_copper_base(struct e1000_hw *hw) return; /* If the management interface is not enabled, then power down */ - if (phy->ops.check_reset_block(hw)) + if (!(e1000_enable_mng_pass_thru(hw) || phy->ops.check_reset_block(hw))) e1000_power_down_phy_copper(hw); } @@ -162,7 +162,8 @@ void e1000_rx_fifo_flush_base(struct e1000_hw *hw) rfctl |= E1000_RFCTL_IPV6_EX_DIS; E1000_WRITE_REG(hw, E1000_RFCTL, rfctl); - if (!(E1000_READ_REG(hw, E1000_MANC) & E1000_MANC_RCV_TCO_EN)) + if (hw->mac.type != e1000_82575 || + !(E1000_READ_REG(hw, E1000_MANC) & E1000_MANC_RCV_TCO_EN)) return; /* Disable all Rx queues */ |