diff options
| -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 523b9716a543..d115a6d30f29 100644 --- a/drivers/net/e1000e/ich8lan.c +++ b/drivers/net/e1000e/ich8lan.c | |||
| @@ -1893,12 +1893,17 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) | |||
| 1893 | ctrl |= E1000_CTRL_PHY_RST; | 1893 | ctrl |= E1000_CTRL_PHY_RST; |
| 1894 | } | 1894 | } |
| 1895 | ret_val = e1000_acquire_swflag_ich8lan(hw); | 1895 | ret_val = e1000_acquire_swflag_ich8lan(hw); |
| 1896 | /* Whether or not the swflag was acquired, we need to reset the part */ | ||
| 1896 | hw_dbg(hw, "Issuing a global reset to ich8lan"); | 1897 | hw_dbg(hw, "Issuing a global reset to ich8lan"); |
| 1897 | ew32(CTRL, (ctrl | E1000_CTRL_RST)); | 1898 | ew32(CTRL, (ctrl | E1000_CTRL_RST)); |
| 1898 | msleep(20); | 1899 | msleep(20); |
| 1899 | 1900 | ||
| 1900 | /* release the swflag because it is not reset by hardware reset */ | 1901 | if (!ret_val) { |
| 1901 | e1000_release_swflag_ich8lan(hw); | 1902 | /* release the swflag because it is not reset by |
| 1903 | * hardware reset | ||
| 1904 | */ | ||
| 1905 | e1000_release_swflag_ich8lan(hw); | ||
| 1906 | } | ||
| 1902 | 1907 | ||
| 1903 | ret_val = e1000e_get_auto_rd_done(hw); | 1908 | ret_val = e1000e_get_auto_rd_done(hw); |
| 1904 | if (ret_val) { | 1909 | if (ret_val) { |
