From c0218a837b8c3ccf17065cf765943e904198cda1 Mon Sep 17 00:00:00 2001 From: Bruce Allan Date: Wed, 5 Dec 2012 06:25:47 +0000 Subject: [PATCH] --- yaml --- r: 351401 b: refs/heads/master c: 635ab56439e21cbea6be346ac71222f9c4ac6463 h: refs/heads/master i: 351399: 481277bcaca5a99fa2d365ed553a28e46b83de3b v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/intel/e1000e/nvm.c | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 74079d444f6f..9a626d26f450 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1241f29fa3c6fa95f20e3e77452f8d6d60deae7a +refs/heads/master: 635ab56439e21cbea6be346ac71222f9c4ac6463 diff --git a/trunk/drivers/net/ethernet/intel/e1000e/nvm.c b/trunk/drivers/net/ethernet/intel/e1000e/nvm.c index b6468804cb2e..71938ed2d3c3 100644 --- a/trunk/drivers/net/ethernet/intel/e1000e/nvm.c +++ b/trunk/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) s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) { struct e1000_nvm_info *nvm = &hw->nvm; - s32 ret_val; + s32 ret_val = -E1000_ERR_NVM; u16 widx = 0; /* 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) return -E1000_ERR_NVM; } - ret_val = nvm->ops.acquire(hw); - if (ret_val) - return ret_val; - while (widx < words) { u8 write_opcode = NVM_WRITE_OPCODE_SPI; - ret_val = e1000_ready_nvm_eeprom(hw); + ret_val = nvm->ops.acquire(hw); if (ret_val) - goto release; + return ret_val; + + ret_val = e1000_ready_nvm_eeprom(hw); + if (ret_val) { + nvm->ops.release(hw); + return ret_val; + } e1000_standby_nvm(hw); @@ -413,12 +415,10 @@ s32 e1000e_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) break; } } + usleep_range(10000, 20000); + nvm->ops.release(hw); } - usleep_range(10000, 20000); -release: - nvm->ops.release(hw); - return ret_val; }