diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi')
-rw-r--r-- | drivers/net/wireless/rtlwifi/Kconfig | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/base.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c | 156 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192de/phy.c | 187 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192se/fw.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192se/phy.c | 40 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192se/sw.c | 3 |
7 files changed, 113 insertions, 284 deletions
diff --git a/drivers/net/wireless/rtlwifi/Kconfig b/drivers/net/wireless/rtlwifi/Kconfig index 44b9c0a5770..cefac6a4360 100644 --- a/drivers/net/wireless/rtlwifi/Kconfig +++ b/drivers/net/wireless/rtlwifi/Kconfig | |||
@@ -50,7 +50,7 @@ config RTLWIFI | |||
50 | default m | 50 | default m |
51 | 51 | ||
52 | config RTLWIFI_DEBUG | 52 | config RTLWIFI_DEBUG |
53 | tristate "Additional debugging output" | 53 | bool "Additional debugging output" |
54 | depends on RTL8192CE || RTL8192CU || RTL8192SE || RTL8192DE | 54 | depends on RTL8192CE || RTL8192CU || RTL8192SE || RTL8192DE |
55 | default y | 55 | default y |
56 | 56 | ||
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c index df5655cc55c..510023554e5 100644 --- a/drivers/net/wireless/rtlwifi/base.c +++ b/drivers/net/wireless/rtlwifi/base.c | |||
@@ -39,10 +39,10 @@ | |||
39 | #include <linux/module.h> | 39 | #include <linux/module.h> |
40 | 40 | ||
41 | /* | 41 | /* |
42 | *NOTICE!!!: This file will be very big, we hsould | 42 | *NOTICE!!!: This file will be very big, we should |
43 | *keep it clear under follwing roles: | 43 | *keep it clear under following roles: |
44 | * | 44 | * |
45 | *This file include follwing part, so, if you add new | 45 | *This file include following parts, so, if you add new |
46 | *functions into this file, please check which part it | 46 | *functions into this file, please check which part it |
47 | *should includes. or check if you should add new part | 47 | *should includes. or check if you should add new part |
48 | *for this file: | 48 | *for this file: |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c index bfff5fe8623..1eec3a06d1f 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c +++ b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c | |||
@@ -177,7 +177,7 @@ u32 _rtl92c_phy_calculate_bit_shift(u32 bitmask) | |||
177 | u32 i; | 177 | u32 i; |
178 | 178 | ||
179 | for (i = 0; i <= 31; i++) { | 179 | for (i = 0; i <= 31; i++) { |
180 | if (((bitmask >> i) & 0x1) == 1) | 180 | if ((bitmask >> i) & 0x1) |
181 | break; | 181 | break; |
182 | } | 182 | } |
183 | return i; | 183 | return i; |
@@ -253,121 +253,51 @@ void _rtl92c_store_pwrIndex_diffrate_offset(struct ieee80211_hw *hw, | |||
253 | { | 253 | { |
254 | struct rtl_priv *rtlpriv = rtl_priv(hw); | 254 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
255 | struct rtl_phy *rtlphy = &(rtlpriv->phy); | 255 | struct rtl_phy *rtlphy = &(rtlpriv->phy); |
256 | int index; | ||
257 | |||
258 | if (regaddr == RTXAGC_A_RATE18_06) | ||
259 | index = 0; | ||
260 | else if (regaddr == RTXAGC_A_RATE54_24) | ||
261 | index = 1; | ||
262 | else if (regaddr == RTXAGC_A_CCK1_MCS32) | ||
263 | index = 6; | ||
264 | else if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0xffffff00) | ||
265 | index = 7; | ||
266 | else if (regaddr == RTXAGC_A_MCS03_MCS00) | ||
267 | index = 2; | ||
268 | else if (regaddr == RTXAGC_A_MCS07_MCS04) | ||
269 | index = 3; | ||
270 | else if (regaddr == RTXAGC_A_MCS11_MCS08) | ||
271 | index = 4; | ||
272 | else if (regaddr == RTXAGC_A_MCS15_MCS12) | ||
273 | index = 5; | ||
274 | else if (regaddr == RTXAGC_B_RATE18_06) | ||
275 | index = 8; | ||
276 | else if (regaddr == RTXAGC_B_RATE54_24) | ||
277 | index = 9; | ||
278 | else if (regaddr == RTXAGC_B_CCK1_55_MCS32) | ||
279 | index = 14; | ||
280 | else if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0x000000ff) | ||
281 | index = 15; | ||
282 | else if (regaddr == RTXAGC_B_MCS03_MCS00) | ||
283 | index = 10; | ||
284 | else if (regaddr == RTXAGC_B_MCS07_MCS04) | ||
285 | index = 11; | ||
286 | else if (regaddr == RTXAGC_B_MCS11_MCS08) | ||
287 | index = 12; | ||
288 | else if (regaddr == RTXAGC_B_MCS15_MCS12) | ||
289 | index = 13; | ||
290 | else | ||
291 | return; | ||
256 | 292 | ||
257 | if (regaddr == RTXAGC_A_RATE18_06) { | 293 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][index] = data; |
258 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][0] = data; | 294 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, |
259 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | 295 | "MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n", |
260 | "MCSTxPowerLevelOriginalOffset[%d][0] = 0x%x\n", | 296 | rtlphy->pwrgroup_cnt, index, |
261 | rtlphy->pwrgroup_cnt, | 297 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][index]); |
262 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][0]); | ||
263 | } | ||
264 | if (regaddr == RTXAGC_A_RATE54_24) { | ||
265 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][1] = data; | ||
266 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
267 | "MCSTxPowerLevelOriginalOffset[%d][1] = 0x%x\n", | ||
268 | rtlphy->pwrgroup_cnt, | ||
269 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][1]); | ||
270 | } | ||
271 | if (regaddr == RTXAGC_A_CCK1_MCS32) { | ||
272 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][6] = data; | ||
273 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
274 | "MCSTxPowerLevelOriginalOffset[%d][6] = 0x%x\n", | ||
275 | rtlphy->pwrgroup_cnt, | ||
276 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][6]); | ||
277 | } | ||
278 | if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0xffffff00) { | ||
279 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][7] = data; | ||
280 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
281 | "MCSTxPowerLevelOriginalOffset[%d][7] = 0x%x\n", | ||
282 | rtlphy->pwrgroup_cnt, | ||
283 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][7]); | ||
284 | } | ||
285 | if (regaddr == RTXAGC_A_MCS03_MCS00) { | ||
286 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][2] = data; | ||
287 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
288 | "MCSTxPowerLevelOriginalOffset[%d][2] = 0x%x\n", | ||
289 | rtlphy->pwrgroup_cnt, | ||
290 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][2]); | ||
291 | } | ||
292 | if (regaddr == RTXAGC_A_MCS07_MCS04) { | ||
293 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][3] = data; | ||
294 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
295 | "MCSTxPowerLevelOriginalOffset[%d][3] = 0x%x\n", | ||
296 | rtlphy->pwrgroup_cnt, | ||
297 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][3]); | ||
298 | } | ||
299 | if (regaddr == RTXAGC_A_MCS11_MCS08) { | ||
300 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][4] = data; | ||
301 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
302 | "MCSTxPowerLevelOriginalOffset[%d][4] = 0x%x\n", | ||
303 | rtlphy->pwrgroup_cnt, | ||
304 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][4]); | ||
305 | } | ||
306 | if (regaddr == RTXAGC_A_MCS15_MCS12) { | ||
307 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][5] = data; | ||
308 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
309 | "MCSTxPowerLevelOriginalOffset[%d][5] = 0x%x\n", | ||
310 | rtlphy->pwrgroup_cnt, | ||
311 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][5]); | ||
312 | } | ||
313 | if (regaddr == RTXAGC_B_RATE18_06) { | ||
314 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][8] = data; | ||
315 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
316 | "MCSTxPowerLevelOriginalOffset[%d][8] = 0x%x\n", | ||
317 | rtlphy->pwrgroup_cnt, | ||
318 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][8]); | ||
319 | } | ||
320 | if (regaddr == RTXAGC_B_RATE54_24) { | ||
321 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][9] = data; | ||
322 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
323 | "MCSTxPowerLevelOriginalOffset[%d][9] = 0x%x\n", | ||
324 | rtlphy->pwrgroup_cnt, | ||
325 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][9]); | ||
326 | } | ||
327 | if (regaddr == RTXAGC_B_CCK1_55_MCS32) { | ||
328 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][14] = data; | ||
329 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
330 | "MCSTxPowerLevelOriginalOffset[%d][14] = 0x%x\n", | ||
331 | rtlphy->pwrgroup_cnt, | ||
332 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][14]); | ||
333 | } | ||
334 | if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0x000000ff) { | ||
335 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][15] = data; | ||
336 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
337 | "MCSTxPowerLevelOriginalOffset[%d][15] = 0x%x\n", | ||
338 | rtlphy->pwrgroup_cnt, | ||
339 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][15]); | ||
340 | } | ||
341 | if (regaddr == RTXAGC_B_MCS03_MCS00) { | ||
342 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][10] = data; | ||
343 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
344 | "MCSTxPowerLevelOriginalOffset[%d][10] = 0x%x\n", | ||
345 | rtlphy->pwrgroup_cnt, | ||
346 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][10]); | ||
347 | } | ||
348 | if (regaddr == RTXAGC_B_MCS07_MCS04) { | ||
349 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][11] = data; | ||
350 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
351 | "MCSTxPowerLevelOriginalOffset[%d][11] = 0x%x\n", | ||
352 | rtlphy->pwrgroup_cnt, | ||
353 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][11]); | ||
354 | } | ||
355 | if (regaddr == RTXAGC_B_MCS11_MCS08) { | ||
356 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][12] = data; | ||
357 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
358 | "MCSTxPowerLevelOriginalOffset[%d][12] = 0x%x\n", | ||
359 | rtlphy->pwrgroup_cnt, | ||
360 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][12]); | ||
361 | } | ||
362 | if (regaddr == RTXAGC_B_MCS15_MCS12) { | ||
363 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][13] = data; | ||
364 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
365 | "MCSTxPowerLevelOriginalOffset[%d][13] = 0x%x\n", | ||
366 | rtlphy->pwrgroup_cnt, | ||
367 | rtlphy->MCS_TXPWR[rtlphy->pwrgroup_cnt][13]); | ||
368 | 298 | ||
299 | if (index == 13) | ||
369 | rtlphy->pwrgroup_cnt++; | 300 | rtlphy->pwrgroup_cnt++; |
370 | } | ||
371 | } | 301 | } |
372 | EXPORT_SYMBOL(_rtl92c_store_pwrIndex_diffrate_offset); | 302 | EXPORT_SYMBOL(_rtl92c_store_pwrIndex_diffrate_offset); |
373 | 303 | ||
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c index 93eecbd8940..34591eeb837 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c +++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c | |||
@@ -665,152 +665,51 @@ static void _rtl92d_store_pwrindex_diffrate_offset(struct ieee80211_hw *hw, | |||
665 | { | 665 | { |
666 | struct rtl_priv *rtlpriv = rtl_priv(hw); | 666 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
667 | struct rtl_phy *rtlphy = &(rtlpriv->phy); | 667 | struct rtl_phy *rtlphy = &(rtlpriv->phy); |
668 | int index; | ||
669 | |||
670 | if (regaddr == RTXAGC_A_RATE18_06) | ||
671 | index = 0; | ||
672 | else if (regaddr == RTXAGC_A_RATE54_24) | ||
673 | index = 1; | ||
674 | else if (regaddr == RTXAGC_A_CCK1_MCS32) | ||
675 | index = 6; | ||
676 | else if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0xffffff00) | ||
677 | index = 7; | ||
678 | else if (regaddr == RTXAGC_A_MCS03_MCS00) | ||
679 | index = 2; | ||
680 | else if (regaddr == RTXAGC_A_MCS07_MCS04) | ||
681 | index = 3; | ||
682 | else if (regaddr == RTXAGC_A_MCS11_MCS08) | ||
683 | index = 4; | ||
684 | else if (regaddr == RTXAGC_A_MCS15_MCS12) | ||
685 | index = 5; | ||
686 | else if (regaddr == RTXAGC_B_RATE18_06) | ||
687 | index = 8; | ||
688 | else if (regaddr == RTXAGC_B_RATE54_24) | ||
689 | index = 9; | ||
690 | else if (regaddr == RTXAGC_B_CCK1_55_MCS32) | ||
691 | index = 14; | ||
692 | else if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0x000000ff) | ||
693 | index = 15; | ||
694 | else if (regaddr == RTXAGC_B_MCS03_MCS00) | ||
695 | index = 10; | ||
696 | else if (regaddr == RTXAGC_B_MCS07_MCS04) | ||
697 | index = 11; | ||
698 | else if (regaddr == RTXAGC_B_MCS11_MCS08) | ||
699 | index = 12; | ||
700 | else if (regaddr == RTXAGC_B_MCS15_MCS12) | ||
701 | index = 13; | ||
702 | else | ||
703 | return; | ||
668 | 704 | ||
669 | if (regaddr == RTXAGC_A_RATE18_06) { | 705 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][index] = data; |
670 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][0] = | 706 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, |
671 | data; | 707 | "MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%ulx\n", |
672 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | 708 | rtlphy->pwrgroup_cnt, index, |
673 | "MCSTxPowerLevelOriginalOffset[%d][0] = 0x%ulx\n", | 709 | rtlphy->mcs_txpwrlevel_origoffset |
674 | rtlphy->pwrgroup_cnt, | 710 | [rtlphy->pwrgroup_cnt][index]); |
675 | rtlphy->mcs_txpwrlevel_origoffset | 711 | if (index == 13) |
676 | [rtlphy->pwrgroup_cnt][0]); | ||
677 | } | ||
678 | if (regaddr == RTXAGC_A_RATE54_24) { | ||
679 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][1] = | ||
680 | data; | ||
681 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
682 | "MCSTxPowerLevelOriginalOffset[%d][1] = 0x%ulx\n", | ||
683 | rtlphy->pwrgroup_cnt, | ||
684 | rtlphy->mcs_txpwrlevel_origoffset | ||
685 | [rtlphy->pwrgroup_cnt][1]); | ||
686 | } | ||
687 | if (regaddr == RTXAGC_A_CCK1_MCS32) { | ||
688 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][6] = | ||
689 | data; | ||
690 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
691 | "MCSTxPowerLevelOriginalOffset[%d][6] = 0x%ulx\n", | ||
692 | rtlphy->pwrgroup_cnt, | ||
693 | rtlphy->mcs_txpwrlevel_origoffset | ||
694 | [rtlphy->pwrgroup_cnt][6]); | ||
695 | } | ||
696 | if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0xffffff00) { | ||
697 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][7] = | ||
698 | data; | ||
699 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
700 | "MCSTxPowerLevelOriginalOffset[%d][7] = 0x%ulx\n", | ||
701 | rtlphy->pwrgroup_cnt, | ||
702 | rtlphy->mcs_txpwrlevel_origoffset | ||
703 | [rtlphy->pwrgroup_cnt][7]); | ||
704 | } | ||
705 | if (regaddr == RTXAGC_A_MCS03_MCS00) { | ||
706 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][2] = | ||
707 | data; | ||
708 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
709 | "MCSTxPowerLevelOriginalOffset[%d][2] = 0x%ulx\n", | ||
710 | rtlphy->pwrgroup_cnt, | ||
711 | rtlphy->mcs_txpwrlevel_origoffset | ||
712 | [rtlphy->pwrgroup_cnt][2]); | ||
713 | } | ||
714 | if (regaddr == RTXAGC_A_MCS07_MCS04) { | ||
715 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][3] = | ||
716 | data; | ||
717 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
718 | "MCSTxPowerLevelOriginalOffset[%d][3] = 0x%ulx\n", | ||
719 | rtlphy->pwrgroup_cnt, | ||
720 | rtlphy->mcs_txpwrlevel_origoffset | ||
721 | [rtlphy->pwrgroup_cnt][3]); | ||
722 | } | ||
723 | if (regaddr == RTXAGC_A_MCS11_MCS08) { | ||
724 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][4] = | ||
725 | data; | ||
726 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
727 | "MCSTxPowerLevelOriginalOffset[%d][4] = 0x%ulx\n", | ||
728 | rtlphy->pwrgroup_cnt, | ||
729 | rtlphy->mcs_txpwrlevel_origoffset | ||
730 | [rtlphy->pwrgroup_cnt][4]); | ||
731 | } | ||
732 | if (regaddr == RTXAGC_A_MCS15_MCS12) { | ||
733 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][5] = | ||
734 | data; | ||
735 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
736 | "MCSTxPowerLevelOriginalOffset[%d][5] = 0x%ulx\n", | ||
737 | rtlphy->pwrgroup_cnt, | ||
738 | rtlphy->mcs_txpwrlevel_origoffset | ||
739 | [rtlphy->pwrgroup_cnt][5]); | ||
740 | } | ||
741 | if (regaddr == RTXAGC_B_RATE18_06) { | ||
742 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][8] = | ||
743 | data; | ||
744 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
745 | "MCSTxPowerLevelOriginalOffset[%d][8] = 0x%ulx\n", | ||
746 | rtlphy->pwrgroup_cnt, | ||
747 | rtlphy->mcs_txpwrlevel_origoffset | ||
748 | [rtlphy->pwrgroup_cnt][8]); | ||
749 | } | ||
750 | if (regaddr == RTXAGC_B_RATE54_24) { | ||
751 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][9] = | ||
752 | data; | ||
753 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
754 | "MCSTxPowerLevelOriginalOffset[%d][9] = 0x%ulx\n", | ||
755 | rtlphy->pwrgroup_cnt, | ||
756 | rtlphy->mcs_txpwrlevel_origoffset | ||
757 | [rtlphy->pwrgroup_cnt][9]); | ||
758 | } | ||
759 | if (regaddr == RTXAGC_B_CCK1_55_MCS32) { | ||
760 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][14] = | ||
761 | data; | ||
762 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
763 | "MCSTxPowerLevelOriginalOffset[%d][14] = 0x%ulx\n", | ||
764 | rtlphy->pwrgroup_cnt, | ||
765 | rtlphy->mcs_txpwrlevel_origoffset | ||
766 | [rtlphy->pwrgroup_cnt][14]); | ||
767 | } | ||
768 | if (regaddr == RTXAGC_B_CCK11_A_CCK2_11 && bitmask == 0x000000ff) { | ||
769 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][15] = | ||
770 | data; | ||
771 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
772 | "MCSTxPowerLevelOriginalOffset[%d][15] = 0x%ulx\n", | ||
773 | rtlphy->pwrgroup_cnt, | ||
774 | rtlphy->mcs_txpwrlevel_origoffset | ||
775 | [rtlphy->pwrgroup_cnt][15]); | ||
776 | } | ||
777 | if (regaddr == RTXAGC_B_MCS03_MCS00) { | ||
778 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][10] = | ||
779 | data; | ||
780 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
781 | "MCSTxPowerLevelOriginalOffset[%d][10] = 0x%ulx\n", | ||
782 | rtlphy->pwrgroup_cnt, | ||
783 | rtlphy->mcs_txpwrlevel_origoffset | ||
784 | [rtlphy->pwrgroup_cnt][10]); | ||
785 | } | ||
786 | if (regaddr == RTXAGC_B_MCS07_MCS04) { | ||
787 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][11] = | ||
788 | data; | ||
789 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
790 | "MCSTxPowerLevelOriginalOffset[%d][11] = 0x%ulx\n", | ||
791 | rtlphy->pwrgroup_cnt, | ||
792 | rtlphy->mcs_txpwrlevel_origoffset | ||
793 | [rtlphy->pwrgroup_cnt][11]); | ||
794 | } | ||
795 | if (regaddr == RTXAGC_B_MCS11_MCS08) { | ||
796 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][12] = | ||
797 | data; | ||
798 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
799 | "MCSTxPowerLevelOriginalOffset[%d][12] = 0x%ulx\n", | ||
800 | rtlphy->pwrgroup_cnt, | ||
801 | rtlphy->mcs_txpwrlevel_origoffset | ||
802 | [rtlphy->pwrgroup_cnt][12]); | ||
803 | } | ||
804 | if (regaddr == RTXAGC_B_MCS15_MCS12) { | ||
805 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][13] = | ||
806 | data; | ||
807 | RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, | ||
808 | "MCSTxPowerLevelOriginalOffset[%d][13] = 0x%ulx\n", | ||
809 | rtlphy->pwrgroup_cnt, | ||
810 | rtlphy->mcs_txpwrlevel_origoffset | ||
811 | [rtlphy->pwrgroup_cnt][13]); | ||
812 | rtlphy->pwrgroup_cnt++; | 712 | rtlphy->pwrgroup_cnt++; |
813 | } | ||
814 | } | 713 | } |
815 | 714 | ||
816 | static bool _rtl92d_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, | 715 | static bool _rtl92d_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/fw.h b/drivers/net/wireless/rtlwifi/rtl8192se/fw.h index babe85d4b69..b4afff62643 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192se/fw.h +++ b/drivers/net/wireless/rtlwifi/rtl8192se/fw.h | |||
@@ -30,6 +30,7 @@ | |||
30 | #define __REALTEK_FIRMWARE92S_H__ | 30 | #define __REALTEK_FIRMWARE92S_H__ |
31 | 31 | ||
32 | #define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000 | 32 | #define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000 |
33 | #define RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE 90000 | ||
33 | #define RTL8190_CPU_START_OFFSET 0x80 | 34 | #define RTL8190_CPU_START_OFFSET 0x80 |
34 | /* Firmware Local buffer size. 64k */ | 35 | /* Firmware Local buffer size. 64k */ |
35 | #define MAX_FIRMWARE_CODE_SIZE 0xFF00 | 36 | #define MAX_FIRMWARE_CODE_SIZE 0xFF00 |
@@ -217,7 +218,7 @@ struct rt_firmware { | |||
217 | u8 fw_emem[RTL8190_MAX_FIRMWARE_CODE_SIZE]; | 218 | u8 fw_emem[RTL8190_MAX_FIRMWARE_CODE_SIZE]; |
218 | u32 fw_imem_len; | 219 | u32 fw_imem_len; |
219 | u32 fw_emem_len; | 220 | u32 fw_emem_len; |
220 | u8 sz_fw_tmpbuffer[164000]; | 221 | u8 sz_fw_tmpbuffer[RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE]; |
221 | u32 sz_fw_tmpbufferlen; | 222 | u32 sz_fw_tmpbufferlen; |
222 | u16 cmdpacket_fragthresold; | 223 | u16 cmdpacket_fragthresold; |
223 | }; | 224 | }; |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/phy.c b/drivers/net/wireless/rtlwifi/rtl8192se/phy.c index 3bfc411f13b..4a499928e4c 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192se/phy.c +++ b/drivers/net/wireless/rtlwifi/rtl8192se/phy.c | |||
@@ -677,30 +677,28 @@ static void _rtl92s_store_pwrindex_diffrate_offset(struct ieee80211_hw *hw, | |||
677 | { | 677 | { |
678 | struct rtl_priv *rtlpriv = rtl_priv(hw); | 678 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
679 | struct rtl_phy *rtlphy = &(rtlpriv->phy); | 679 | struct rtl_phy *rtlphy = &(rtlpriv->phy); |
680 | int index; | ||
680 | 681 | ||
681 | if (reg_addr == RTXAGC_RATE18_06) | 682 | if (reg_addr == RTXAGC_RATE18_06) |
682 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][0] = | 683 | index = 0; |
683 | data; | 684 | else if (reg_addr == RTXAGC_RATE54_24) |
684 | if (reg_addr == RTXAGC_RATE54_24) | 685 | index = 1; |
685 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][1] = | 686 | else if (reg_addr == RTXAGC_CCK_MCS32) |
686 | data; | 687 | index = 6; |
687 | if (reg_addr == RTXAGC_CCK_MCS32) | 688 | else if (reg_addr == RTXAGC_MCS03_MCS00) |
688 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][6] = | 689 | index = 2; |
689 | data; | 690 | else if (reg_addr == RTXAGC_MCS07_MCS04) |
690 | if (reg_addr == RTXAGC_MCS03_MCS00) | 691 | index = 3; |
691 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][2] = | 692 | else if (reg_addr == RTXAGC_MCS11_MCS08) |
692 | data; | 693 | index = 4; |
693 | if (reg_addr == RTXAGC_MCS07_MCS04) | 694 | else if (reg_addr == RTXAGC_MCS15_MCS12) |
694 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][3] = | 695 | index = 5; |
695 | data; | 696 | else |
696 | if (reg_addr == RTXAGC_MCS11_MCS08) | 697 | return; |
697 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][4] = | 698 | |
698 | data; | 699 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][index] = data; |
699 | if (reg_addr == RTXAGC_MCS15_MCS12) { | 700 | if (index == 5) |
700 | rtlphy->mcs_txpwrlevel_origoffset[rtlphy->pwrgroup_cnt][5] = | ||
701 | data; | ||
702 | rtlphy->pwrgroup_cnt++; | 701 | rtlphy->pwrgroup_cnt++; |
703 | } | ||
704 | } | 702 | } |
705 | 703 | ||
706 | static void _rtl92s_phy_init_register_definition(struct ieee80211_hw *hw) | 704 | static void _rtl92s_phy_init_register_definition(struct ieee80211_hw *hw) |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c index eda30b9d0f1..f1b36005c6a 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192se/sw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192se/sw.c | |||
@@ -108,6 +108,7 @@ static void rtl92se_fw_cb(const struct firmware *firmware, void *context) | |||
108 | if (firmware->size > rtlpriv->max_fw_size) { | 108 | if (firmware->size > rtlpriv->max_fw_size) { |
109 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, | 109 | RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, |
110 | "Firmware is too big!\n"); | 110 | "Firmware is too big!\n"); |
111 | rtlpriv->max_fw_size = 0; | ||
111 | release_firmware(firmware); | 112 | release_firmware(firmware); |
112 | return; | 113 | return; |
113 | } | 114 | } |
@@ -229,7 +230,7 @@ static int rtl92s_init_sw_vars(struct ieee80211_hw *hw) | |||
229 | if (!rtlpriv->rtlhal.pfirmware) | 230 | if (!rtlpriv->rtlhal.pfirmware) |
230 | return 1; | 231 | return 1; |
231 | 232 | ||
232 | rtlpriv->max_fw_size = sizeof(struct rt_firmware); | 233 | rtlpriv->max_fw_size = RTL8190_MAX_RAW_FIRMWARE_CODE_SIZE; |
233 | 234 | ||
234 | pr_info("Driver for Realtek RTL8192SE/RTL8191SE\n" | 235 | pr_info("Driver for Realtek RTL8192SE/RTL8191SE\n" |
235 | "Loading firmware %s\n", rtlpriv->cfg->fw_name); | 236 | "Loading firmware %s\n", rtlpriv->cfg->fw_name); |