diff options
Diffstat (limited to 'drivers/net')
| -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 */ |
