diff options
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r-- | drivers/net/e1000e/ich8lan.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c index 92f2ace7ca68..f2a5963b5a95 100644 --- a/drivers/net/e1000e/ich8lan.c +++ b/drivers/net/e1000e/ich8lan.c | |||
@@ -1939,12 +1939,17 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) | |||
1939 | ctrl |= E1000_CTRL_PHY_RST; | 1939 | ctrl |= E1000_CTRL_PHY_RST; |
1940 | } | 1940 | } |
1941 | ret_val = e1000_acquire_swflag_ich8lan(hw); | 1941 | ret_val = e1000_acquire_swflag_ich8lan(hw); |
1942 | /* Whether or not the swflag was acquired, we need to reset the part */ | ||
1942 | hw_dbg(hw, "Issuing a global reset to ich8lan\n"); | 1943 | hw_dbg(hw, "Issuing a global reset to ich8lan\n"); |
1943 | ew32(CTRL, (ctrl | E1000_CTRL_RST)); | 1944 | ew32(CTRL, (ctrl | E1000_CTRL_RST)); |
1944 | msleep(20); | 1945 | msleep(20); |
1945 | 1946 | ||
1946 | /* release the swflag because it is not reset by hardware reset */ | 1947 | if (!ret_val) { |
1947 | e1000_release_swflag_ich8lan(hw); | 1948 | /* release the swflag because it is not reset by |
1949 | * hardware reset | ||
1950 | */ | ||
1951 | e1000_release_swflag_ich8lan(hw); | ||
1952 | } | ||
1948 | 1953 | ||
1949 | ret_val = e1000e_get_auto_rd_done(hw); | 1954 | ret_val = e1000e_get_auto_rd_done(hw); |
1950 | if (ret_val) { | 1955 | if (ret_val) { |