diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2011-03-18 20:27:20 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-04-13 22:17:06 -0400 |
commit | 1bba4386ab4f67a53c9649268dd9c83bc6110a9b (patch) | |
tree | 5519c317c5f2828422c7cb44fa6251bae5b5aff9 /drivers/net/e1000e/lib.c | |
parent | 563988dcfe706457ec7049d59e18d6147179bb0a (diff) |
e1000e: convert short duration msleep() to usleep_range()
With durations less than 20ms, the jiffies or legacy timer backed msleep()
may sleep ~20ms which might not be what the caller expects. Instead, it
is recommended to use the hrtimers backed usleep_range(). For more, see
Documentation/timers/timers-howto.txt. Issues reported by checkpatch.
In addition, remove unnecessary sleep in e1000e_write_nvm_spi().
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/e1000e/lib.c')
-rw-r--r-- | drivers/net/e1000e/lib.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/e1000e/lib.c b/drivers/net/e1000e/lib.c index 96921de5df2e..30ef8fa4968c 100644 --- a/drivers/net/e1000e/lib.c +++ b/drivers/net/e1000e/lib.c | |||
@@ -868,7 +868,7 @@ static s32 e1000_poll_fiber_serdes_link_generic(struct e1000_hw *hw) | |||
868 | * milliseconds even if the other end is doing it in SW). | 868 | * milliseconds even if the other end is doing it in SW). |
869 | */ | 869 | */ |
870 | for (i = 0; i < FIBER_LINK_UP_LIMIT; i++) { | 870 | for (i = 0; i < FIBER_LINK_UP_LIMIT; i++) { |
871 | msleep(10); | 871 | usleep_range(10000, 20000); |
872 | status = er32(STATUS); | 872 | status = er32(STATUS); |
873 | if (status & E1000_STATUS_LU) | 873 | if (status & E1000_STATUS_LU) |
874 | break; | 874 | break; |
@@ -930,7 +930,7 @@ s32 e1000e_setup_fiber_serdes_link(struct e1000_hw *hw) | |||
930 | 930 | ||
931 | ew32(CTRL, ctrl); | 931 | ew32(CTRL, ctrl); |
932 | e1e_flush(); | 932 | e1e_flush(); |
933 | msleep(1); | 933 | usleep_range(1000, 2000); |
934 | 934 | ||
935 | /* | 935 | /* |
936 | * For these adapters, the SW definable pin 1 is set when the optics | 936 | * For these adapters, the SW definable pin 1 is set when the optics |
@@ -1385,7 +1385,7 @@ s32 e1000e_get_auto_rd_done(struct e1000_hw *hw) | |||
1385 | while (i < AUTO_READ_DONE_TIMEOUT) { | 1385 | while (i < AUTO_READ_DONE_TIMEOUT) { |
1386 | if (er32(EECD) & E1000_EECD_AUTO_RD) | 1386 | if (er32(EECD) & E1000_EECD_AUTO_RD) |
1387 | break; | 1387 | break; |
1388 | msleep(1); | 1388 | usleep_range(1000, 2000); |
1389 | i++; | 1389 | i++; |
1390 | } | 1390 | } |
1391 | 1391 | ||
@@ -2087,8 +2087,6 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) | |||
2087 | if (ret_val) | 2087 | if (ret_val) |
2088 | return ret_val; | 2088 | return ret_val; |
2089 | 2089 | ||
2090 | msleep(10); | ||
2091 | |||
2092 | while (widx < words) { | 2090 | while (widx < words) { |
2093 | u8 write_opcode = NVM_WRITE_OPCODE_SPI; | 2091 | u8 write_opcode = NVM_WRITE_OPCODE_SPI; |
2094 | 2092 | ||
@@ -2132,7 +2130,7 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) | |||
2132 | } | 2130 | } |
2133 | } | 2131 | } |
2134 | 2132 | ||
2135 | msleep(10); | 2133 | usleep_range(10000, 20000); |
2136 | nvm->ops.release(hw); | 2134 | nvm->ops.release(hw); |
2137 | return 0; | 2135 | return 0; |
2138 | } | 2136 | } |