diff options
-rw-r--r-- | drivers/net/e1000e/hw.h | 1 | ||||
-rw-r--r-- | drivers/net/e1000e/ich8lan.c | 2 | ||||
-rw-r--r-- | drivers/net/e1000e/netdev.c | 5 |
3 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h index 287ee954448f..fa314b4a68c1 100644 --- a/drivers/net/e1000e/hw.h +++ b/drivers/net/e1000e/hw.h | |||
@@ -901,6 +901,7 @@ struct e1000_fc_info { | |||
901 | u32 high_water; /* Flow control high-water mark */ | 901 | u32 high_water; /* Flow control high-water mark */ |
902 | u32 low_water; /* Flow control low-water mark */ | 902 | u32 low_water; /* Flow control low-water mark */ |
903 | u16 pause_time; /* Flow control pause timer */ | 903 | u16 pause_time; /* Flow control pause timer */ |
904 | u16 refresh_time; /* Flow control refresh timer */ | ||
904 | bool send_xon; /* Flow control send XON */ | 905 | bool send_xon; /* Flow control send XON */ |
905 | bool strict_ieee; /* Strict IEEE mode */ | 906 | bool strict_ieee; /* Strict IEEE mode */ |
906 | enum e1000_fc_mode current_mode; /* FC mode in effect */ | 907 | enum e1000_fc_mode current_mode; /* FC mode in effect */ |
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c index 8efe9a7cbaad..2b2cffc017be 100644 --- a/drivers/net/e1000e/ich8lan.c +++ b/drivers/net/e1000e/ich8lan.c | |||
@@ -2823,6 +2823,8 @@ static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw) | |||
2823 | ew32(FCTTV, hw->fc.pause_time); | 2823 | ew32(FCTTV, hw->fc.pause_time); |
2824 | if ((hw->phy.type == e1000_phy_82578) || | 2824 | if ((hw->phy.type == e1000_phy_82578) || |
2825 | (hw->phy.type == e1000_phy_82577)) { | 2825 | (hw->phy.type == e1000_phy_82577)) { |
2826 | ew32(FCRTV_PCH, hw->fc.refresh_time); | ||
2827 | |||
2826 | ret_val = hw->phy.ops.write_reg(hw, | 2828 | ret_val = hw->phy.ops.write_reg(hw, |
2827 | PHY_REG(BM_PORT_CTRL_PAGE, 27), | 2829 | PHY_REG(BM_PORT_CTRL_PAGE, 27), |
2828 | hw->fc.pause_time); | 2830 | hw->fc.pause_time); |
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 16a03c553299..d1f60c570c0e 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -3134,6 +3134,7 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
3134 | fc->high_water = 0x5000; | 3134 | fc->high_water = 0x5000; |
3135 | fc->low_water = 0x3000; | 3135 | fc->low_water = 0x3000; |
3136 | } | 3136 | } |
3137 | fc->refresh_time = 0x1000; | ||
3137 | } else { | 3138 | } else { |
3138 | if ((adapter->flags & FLAG_HAS_ERT) && | 3139 | if ((adapter->flags & FLAG_HAS_ERT) && |
3139 | (adapter->netdev->mtu > ETH_DATA_LEN)) | 3140 | (adapter->netdev->mtu > ETH_DATA_LEN)) |
@@ -3171,10 +3172,6 @@ void e1000e_reset(struct e1000_adapter *adapter) | |||
3171 | if (mac->ops.init_hw(hw)) | 3172 | if (mac->ops.init_hw(hw)) |
3172 | e_err("Hardware Error\n"); | 3173 | e_err("Hardware Error\n"); |
3173 | 3174 | ||
3174 | /* additional part of the flow-control workaround above */ | ||
3175 | if (hw->mac.type == e1000_pchlan) | ||
3176 | ew32(FCRTV_PCH, 0x1000); | ||
3177 | |||
3178 | e1000_update_mng_vlan(adapter); | 3175 | e1000_update_mng_vlan(adapter); |
3179 | 3176 | ||
3180 | /* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */ | 3177 | /* Enable h/w to recognize an 802.1Q VLAN Ethernet packet */ |