diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/efuse.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/efuse.c | 18 |
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 | ||
1204 | static u16 efuse_get_current_size(struct ieee80211_hw *hw) | 1204 | static 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; |