diff options
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/nvm.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/nvm.c b/drivers/net/ethernet/intel/e1000e/nvm.c index b6468804cb2e..71938ed2d3c3 100644 --- a/drivers/net/ethernet/intel/e1000e/nvm.c +++ b/drivers/net/ethernet/intel/e1000e/nvm.c | |||
@@ -359,7 +359,7 @@ s32 e1000e_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) | |||
359 | s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) | 359 | s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) |
360 | { | 360 | { |
361 | struct e1000_nvm_info *nvm = &hw->nvm; | 361 | struct e1000_nvm_info *nvm = &hw->nvm; |
362 | s32 ret_val; | 362 | s32 ret_val = -E1000_ERR_NVM; |
363 | u16 widx = 0; | 363 | u16 widx = 0; |
364 | 364 | ||
365 | /* A check for invalid values: offset too large, too many words, | 365 | /* A check for invalid values: offset too large, too many words, |
@@ -371,16 +371,18 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) | |||
371 | return -E1000_ERR_NVM; | 371 | return -E1000_ERR_NVM; |
372 | } | 372 | } |
373 | 373 | ||
374 | ret_val = nvm->ops.acquire(hw); | ||
375 | if (ret_val) | ||
376 | return ret_val; | ||
377 | |||
378 | while (widx < words) { | 374 | while (widx < words) { |
379 | u8 write_opcode = NVM_WRITE_OPCODE_SPI; | 375 | u8 write_opcode = NVM_WRITE_OPCODE_SPI; |
380 | 376 | ||
381 | ret_val = e1000_ready_nvm_eeprom(hw); | 377 | ret_val = nvm->ops.acquire(hw); |
382 | if (ret_val) | 378 | if (ret_val) |
383 | goto release; | 379 | return ret_val; |
380 | |||
381 | ret_val = e1000_ready_nvm_eeprom(hw); | ||
382 | if (ret_val) { | ||
383 | nvm->ops.release(hw); | ||
384 | return ret_val; | ||
385 | } | ||
384 | 386 | ||
385 | e1000_standby_nvm(hw); | 387 | e1000_standby_nvm(hw); |
386 | 388 | ||
@@ -413,12 +415,10 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) | |||
413 | break; | 415 | break; |
414 | } | 416 | } |
415 | } | 417 | } |
418 | usleep_range(10000, 20000); | ||
419 | nvm->ops.release(hw); | ||
416 | } | 420 | } |
417 | 421 | ||
418 | usleep_range(10000, 20000); | ||
419 | release: | ||
420 | nvm->ops.release(hw); | ||
421 | |||
422 | return ret_val; | 422 | return ret_val; |
423 | } | 423 | } |
424 | 424 | ||