aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi/efuse.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rtlwifi/efuse.c')
-rw-r--r--drivers/net/wireless/rtlwifi/efuse.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/drivers/net/wireless/rtlwifi/efuse.c b/drivers/net/wireless/rtlwifi/efuse.c
index 838a1ed3f194..ae13fb94b2e8 100644
--- a/drivers/net/wireless/rtlwifi/efuse.c
+++ b/drivers/net/wireless/rtlwifi/efuse.c
@@ -1203,20 +1203,18 @@ static void efuse_power_switch(struct ieee80211_hw *hw, u8 write, u8 pwrstate)
1203 1203
1204static u16 efuse_get_current_size(struct ieee80211_hw *hw) 1204static u16 efuse_get_current_size(struct ieee80211_hw *hw)
1205{ 1205{
1206 int continual = true;
1207 u16 efuse_addr = 0; 1206 u16 efuse_addr = 0;
1208 u8 hworden; 1207 u8 hworden;
1209 u8 efuse_data, word_cnts; 1208 u8 efuse_data, word_cnts;
1210 1209
1211 while (continual && efuse_one_byte_read(hw, efuse_addr, &efuse_data) 1210 while (efuse_one_byte_read(hw, efuse_addr, &efuse_data) &&
1212 && (efuse_addr < EFUSE_MAX_SIZE)) { 1211 efuse_addr < EFUSE_MAX_SIZE) {
1213 if (efuse_data != 0xFF) { 1212 if (efuse_data == 0xFF)
1214 hworden = efuse_data & 0x0F; 1213 break;
1215 word_cnts = efuse_calculate_word_cnts(hworden); 1214
1216 efuse_addr = efuse_addr + (word_cnts * 2) + 1; 1215 hworden = efuse_data & 0x0F;
1217 } else { 1216 word_cnts = efuse_calculate_word_cnts(hworden);
1218 continual = false; 1217 efuse_addr = efuse_addr + (word_cnts * 2) + 1;
1219 }
1220 } 1218 }
1221 1219
1222 return efuse_addr; 1220 return efuse_addr;