aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/intel/e1000e/nvm.c22
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)
359s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) 359s32 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);
419release:
420 nvm->ops.release(hw);
421
422 return ret_val; 422 return ret_val;
423} 423}
424 424