aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rtlwifi
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2015-04-01 14:27:28 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-01 14:27:28 -0400
commit45eb5168873c93b4f1c3c3867fea65aad4c6abd6 (patch)
tree4949e1083f214ce51565d41614df912cba017219 /drivers/net/wireless/rtlwifi
parentb9600d2d0901cd0f91cb372e72bd53d22f49638d (diff)
parent9374e7d2fdcad3c36dafc8d3effd554bc702c4b6 (diff)
Merge tag 'wireless-drivers-next-for-davem-2015-04-01' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
Kalle Valo says: ==================== Major changes: ath9k: * add Active Interference Cancellation, a method implemented in the HW to counter WLAN RX > sensitivity degradation when BT is transmitting at the same time. This feature is supported by cards like WB222 based on AR9462. iwlwifi: * Location Aware Regulatory was added by Arik * 8000 device family work * update to the BT Coex firmware API brmcfmac: * add new BCM43455 and BCM43457 SDIO device support * add new BCM43430 SDIO device support wil6210: * take care of AP bridging * fix NAPI behavior * found approach to achieve 4*n+2 alignment of Rx frames rt2x00: * add new rt2800usb device DWA 130 rtlwifi: * add USB ID for D-Link DWA-131 * add USB ID ASUS N10 WiFi dongle mwifiex: * throughput enhancements ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless/rtlwifi')
-rw-r--r--drivers/net/wireless/rtlwifi/base.h1
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8188ee/hw.c5
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/hw.c7
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/mac.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192cu/sw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192de/hw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192ee/hw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8192se/hw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723ae/hw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8723be/hw.c2
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8821ae/hw.c4
-rw-r--r--drivers/net/wireless/rtlwifi/rtl8821ae/trx.c16
-rw-r--r--drivers/net/wireless/rtlwifi/stats.c24
-rw-r--r--drivers/net/wireless/rtlwifi/stats.h1
14 files changed, 32 insertions, 40 deletions
diff --git a/drivers/net/wireless/rtlwifi/base.h b/drivers/net/wireless/rtlwifi/base.h
index dee4ac2f27e2..ff9a4bfd4515 100644
--- a/drivers/net/wireless/rtlwifi/base.h
+++ b/drivers/net/wireless/rtlwifi/base.h
@@ -123,7 +123,6 @@ bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb);
123u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); 123u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx);
124 124
125void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb); 125void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb);
126void rtl_watch_dog_timer_callback(unsigned long data);
127int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 126int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
128 struct ieee80211_sta *sta, u16 tid, u16 *ssn); 127 struct ieee80211_sta *sta, u16 tid, u16 *ssn);
129int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 128int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
diff --git a/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c
index edc2cbb6253c..86ce5b1930e6 100644
--- a/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c
@@ -30,6 +30,7 @@
30#include "../cam.h" 30#include "../cam.h"
31#include "../ps.h" 31#include "../ps.h"
32#include "../pci.h" 32#include "../pci.h"
33#include "../pwrseqcmd.h"
33#include "reg.h" 34#include "reg.h"
34#include "def.h" 35#include "def.h"
35#include "phy.h" 36#include "phy.h"
@@ -885,7 +886,7 @@ static bool _rtl88ee_init_mac(struct ieee80211_hw *hw)
885 886
886 rtl_write_word(rtlpriv, REG_CR, 0x2ff); 887 rtl_write_word(rtlpriv, REG_CR, 0x2ff);
887 rtl_write_byte(rtlpriv, REG_CR+1, 0x06); 888 rtl_write_byte(rtlpriv, REG_CR+1, 0x06);
888 rtl_write_byte(rtlpriv, REG_CR+2, 0x00); 889 rtl_write_byte(rtlpriv, MSR, 0x00);
889 890
890 if (!rtlhal->mac_func_enable) { 891 if (!rtlhal->mac_func_enable) {
891 if (_rtl88ee_llt_table_init(hw) == false) { 892 if (_rtl88ee_llt_table_init(hw) == false) {
@@ -1277,7 +1278,7 @@ static int _rtl88ee_set_media_status(struct ieee80211_hw *hw,
1277 mode); 1278 mode);
1278 } 1279 }
1279 1280
1280 rtl_write_byte(rtlpriv, (MSR), bt_msr | mode); 1281 rtl_write_byte(rtlpriv, MSR, bt_msr | mode);
1281 rtlpriv->cfg->ops->led_control(hw, ledaction); 1282 rtlpriv->cfg->ops->led_control(hw, ledaction);
1282 if (mode == MSR_AP) 1283 if (mode == MSR_AP)
1283 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 1284 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
index 0c20dd74d6ec..d310d55d800e 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c
@@ -1364,7 +1364,7 @@ static int _rtl92cu_set_media_status(struct ieee80211_hw *hw,
1364 "Network type %d not supported!\n", type); 1364 "Network type %d not supported!\n", type);
1365 goto error_out; 1365 goto error_out;
1366 } 1366 }
1367 rtl_write_byte(rtlpriv, (MSR), bt_msr); 1367 rtl_write_byte(rtlpriv, MSR, bt_msr);
1368 rtlpriv->cfg->ops->led_control(hw, ledaction); 1368 rtlpriv->cfg->ops->led_control(hw, ledaction);
1369 if ((bt_msr & MSR_MASK) == MSR_AP) 1369 if ((bt_msr & MSR_MASK) == MSR_AP)
1370 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 1370 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
@@ -1471,8 +1471,7 @@ static void _InitBeaconParameters(struct ieee80211_hw *hw)
1471 rtl_write_word(rtlpriv, REG_BCNTCFG, 0x66FF); 1471 rtl_write_word(rtlpriv, REG_BCNTCFG, 0x66FF);
1472} 1472}
1473 1473
1474static void _beacon_function_enable(struct ieee80211_hw *hw, bool Enable, 1474static void _beacon_function_enable(struct ieee80211_hw *hw)
1475 bool Linked)
1476{ 1475{
1477 struct rtl_priv *rtlpriv = rtl_priv(hw); 1476 struct rtl_priv *rtlpriv = rtl_priv(hw);
1478 1477
@@ -1517,7 +1516,7 @@ void rtl92cu_set_beacon_related_registers(struct ieee80211_hw *hw)
1517 rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_CCK, 0x50); 1516 rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_CCK, 0x50);
1518 rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_OFDM, 0x50); 1517 rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_OFDM, 0x50);
1519 } 1518 }
1520 _beacon_function_enable(hw, true, true); 1519 _beacon_function_enable(hw);
1521} 1520}
1522 1521
1523void rtl92cu_set_beacon_interval(struct ieee80211_hw *hw) 1522void rtl92cu_set_beacon_interval(struct ieee80211_hw *hw)
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c b/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
index 133e395b7401..adb810794eef 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c
@@ -497,7 +497,7 @@ int rtl92c_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type)
497 "Network type %d not supported!\n", type); 497 "Network type %d not supported!\n", type);
498 return -EOPNOTSUPP; 498 return -EOPNOTSUPP;
499 } 499 }
500 rtl_write_byte(rtlpriv, (REG_CR + 2), value); 500 rtl_write_byte(rtlpriv, MSR, value);
501 return 0; 501 return 0;
502} 502}
503 503
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
index 90a714c189a8..23806c243a53 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
@@ -321,6 +321,7 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
321 {RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/ 321 {RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/
322 {RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/ 322 {RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/
323 {RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/ 323 {RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/
324 {RTL_USB_DEVICE(0x0b05, 0x17ba, rtl92cu_hal_cfg)}, /*ASUS-Edimax*/
324 {RTL_USB_DEVICE(0x0bda, 0x5088, rtl92cu_hal_cfg)}, /*Thinkware-CC&C*/ 325 {RTL_USB_DEVICE(0x0bda, 0x5088, rtl92cu_hal_cfg)}, /*Thinkware-CC&C*/
325 {RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ 326 {RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
326 {RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ 327 {RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
@@ -377,6 +378,7 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
377 {RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/ 378 {RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/
378 {RTL_USB_DEVICE(0x2001, 0x3309, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/ 379 {RTL_USB_DEVICE(0x2001, 0x3309, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/
379 {RTL_USB_DEVICE(0x2001, 0x330a, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/ 380 {RTL_USB_DEVICE(0x2001, 0x330a, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/
381 {RTL_USB_DEVICE(0x2001, 0x330d, rtl92cu_hal_cfg)}, /*D-Link DWA-131 */
380 {RTL_USB_DEVICE(0x2019, 0xab2b, rtl92cu_hal_cfg)}, /*Planex -Abocom*/ 382 {RTL_USB_DEVICE(0x2019, 0xab2b, rtl92cu_hal_cfg)}, /*Planex -Abocom*/
381 {RTL_USB_DEVICE(0x20f4, 0x624d, rtl92cu_hal_cfg)}, /*TRENDNet*/ 383 {RTL_USB_DEVICE(0x20f4, 0x624d, rtl92cu_hal_cfg)}, /*TRENDNet*/
382 {RTL_USB_DEVICE(0x2357, 0x0100, rtl92cu_hal_cfg)}, /*TP-Link WN8200ND*/ 384 {RTL_USB_DEVICE(0x2357, 0x0100, rtl92cu_hal_cfg)}, /*TP-Link WN8200ND*/
diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
index 01bcc2d218dc..f49b60d31450 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192de/hw.c
@@ -1126,7 +1126,7 @@ static int _rtl92de_set_media_status(struct ieee80211_hw *hw,
1126 break; 1126 break;
1127 1127
1128 } 1128 }
1129 rtl_write_byte(rtlpriv, REG_CR + 2, bt_msr); 1129 rtl_write_byte(rtlpriv, MSR, bt_msr);
1130 rtlpriv->cfg->ops->led_control(hw, ledaction); 1130 rtlpriv->cfg->ops->led_control(hw, ledaction);
1131 if ((bt_msr & MSR_MASK) == MSR_AP) 1131 if ((bt_msr & MSR_MASK) == MSR_AP)
1132 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 1132 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c
index db230a3f0137..da0a6125f314 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ee/hw.c
@@ -1510,7 +1510,7 @@ static int _rtl92ee_set_media_status(struct ieee80211_hw *hw,
1510 mode); 1510 mode);
1511 } 1511 }
1512 1512
1513 rtl_write_byte(rtlpriv, (MSR), bt_msr | mode); 1513 rtl_write_byte(rtlpriv, MSR, bt_msr | mode);
1514 rtlpriv->cfg->ops->led_control(hw, ledaction); 1514 rtlpriv->cfg->ops->led_control(hw, ledaction);
1515 if (mode == MSR_AP) 1515 if (mode == MSR_AP)
1516 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 1516 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
index dee88a80bee1..12b0978ba4fa 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192se/hw.c
@@ -1204,7 +1204,7 @@ static int _rtl92se_set_media_status(struct ieee80211_hw *hw,
1204 if (type != NL80211_IFTYPE_AP && 1204 if (type != NL80211_IFTYPE_AP &&
1205 rtlpriv->mac80211.link_state < MAC80211_LINKED) 1205 rtlpriv->mac80211.link_state < MAC80211_LINKED)
1206 bt_msr = rtl_read_byte(rtlpriv, MSR) & ~MSR_LINK_MASK; 1206 bt_msr = rtl_read_byte(rtlpriv, MSR) & ~MSR_LINK_MASK;
1207 rtl_write_byte(rtlpriv, (MSR), bt_msr); 1207 rtl_write_byte(rtlpriv, MSR, bt_msr);
1208 1208
1209 temp = rtl_read_dword(rtlpriv, TCR); 1209 temp = rtl_read_dword(rtlpriv, TCR);
1210 rtl_write_dword(rtlpriv, TCR, temp & (~BIT(8))); 1210 rtl_write_dword(rtlpriv, TCR, temp & (~BIT(8)));
diff --git a/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c
index b3b094759f6d..67bb47d77b68 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c
@@ -1183,7 +1183,7 @@ static int _rtl8723e_set_media_status(struct ieee80211_hw *hw,
1183 mode); 1183 mode);
1184 } 1184 }
1185 1185
1186 rtl_write_byte(rtlpriv, (MSR), bt_msr | mode); 1186 rtl_write_byte(rtlpriv, MSR, bt_msr | mode);
1187 rtlpriv->cfg->ops->led_control(hw, ledaction); 1187 rtlpriv->cfg->ops->led_control(hw, ledaction);
1188 if (mode == MSR_AP) 1188 if (mode == MSR_AP)
1189 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 1189 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
diff --git a/drivers/net/wireless/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/rtlwifi/rtl8723be/hw.c
index b46998341c40..b681af3c7a35 100644
--- a/drivers/net/wireless/rtlwifi/rtl8723be/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8723be/hw.c
@@ -1558,7 +1558,7 @@ static int _rtl8723be_set_media_status(struct ieee80211_hw *hw,
1558 mode); 1558 mode);
1559 } 1559 }
1560 1560
1561 rtl_write_byte(rtlpriv, (MSR), bt_msr | mode); 1561 rtl_write_byte(rtlpriv, MSR, bt_msr | mode);
1562 rtlpriv->cfg->ops->led_control(hw, ledaction); 1562 rtlpriv->cfg->ops->led_control(hw, ledaction);
1563 if (mode == MSR_AP) 1563 if (mode == MSR_AP)
1564 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 1564 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
index 2a0a71bac00c..8704eee9f3a4 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
@@ -423,7 +423,7 @@ void rtl8821ae_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
423 *((u16 *)(val+4)) = rtl_read_word(rtlpriv, REG_BSSID+4); 423 *((u16 *)(val+4)) = rtl_read_word(rtlpriv, REG_BSSID+4);
424 break; 424 break;
425 case HW_VAR_MEDIA_STATUS: 425 case HW_VAR_MEDIA_STATUS:
426 val[0] = rtl_read_byte(rtlpriv, REG_CR+2) & 0x3; 426 val[0] = rtl_read_byte(rtlpriv, MSR) & 0x3;
427 break; 427 break;
428 case HW_VAR_SLOT_TIME: 428 case HW_VAR_SLOT_TIME:
429 *((u8 *)(val)) = mac->slot_time; 429 *((u8 *)(val)) = mac->slot_time;
@@ -2178,7 +2178,7 @@ static int _rtl8821ae_set_media_status(struct ieee80211_hw *hw,
2178 return 1; 2178 return 1;
2179 } 2179 }
2180 2180
2181 rtl_write_byte(rtlpriv, (MSR), bt_msr); 2181 rtl_write_byte(rtlpriv, MSR, bt_msr);
2182 rtlpriv->cfg->ops->led_control(hw, ledaction); 2182 rtlpriv->cfg->ops->led_control(hw, ledaction);
2183 if ((bt_msr & 0xfc) == MSR_AP) 2183 if ((bt_msr & 0xfc) == MSR_AP)
2184 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); 2184 rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00);
diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/trx.c b/drivers/net/wireless/rtlwifi/rtl8821ae/trx.c
index 72af4b9ee32b..174743aef943 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/trx.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/trx.c
@@ -64,6 +64,20 @@ static u16 odm_cfo(char value)
64 return ret_val; 64 return ret_val;
65} 65}
66 66
67static u8 _rtl8821ae_evm_dbm_jaguar(char value)
68{
69 char ret_val = value;
70
71 /* -33dB~0dB to 33dB ~ 0dB*/
72 if (ret_val == -128)
73 ret_val = 127;
74 else if (ret_val < 0)
75 ret_val = 0 - ret_val;
76
77 ret_val = ret_val >> 1;
78 return ret_val;
79}
80
67static void query_rxphystatus(struct ieee80211_hw *hw, 81static void query_rxphystatus(struct ieee80211_hw *hw,
68 struct rtl_stats *pstatus, u8 *pdesc, 82 struct rtl_stats *pstatus, u8 *pdesc,
69 struct rx_fwinfo_8821ae *p_drvinfo, 83 struct rx_fwinfo_8821ae *p_drvinfo,
@@ -246,7 +260,7 @@ static void query_rxphystatus(struct ieee80211_hw *hw,
246 260
247 for (i = 0; i < max_spatial_stream; i++) { 261 for (i = 0; i < max_spatial_stream; i++) {
248 evm = rtl_evm_db_to_percentage(p_phystrpt->rxevm[i]); 262 evm = rtl_evm_db_to_percentage(p_phystrpt->rxevm[i]);
249 evmdbm = rtl_evm_dbm_jaguar(p_phystrpt->rxevm[i]); 263 evmdbm = _rtl8821ae_evm_dbm_jaguar(p_phystrpt->rxevm[i]);
250 264
251 if (bpacket_match_bssid) { 265 if (bpacket_match_bssid) {
252 /* Fill value in RFD, Get the first 266 /* Fill value in RFD, Get the first
diff --git a/drivers/net/wireless/rtlwifi/stats.c b/drivers/net/wireless/rtlwifi/stats.c
index 2d0736a09fc0..d8b30690b00d 100644
--- a/drivers/net/wireless/rtlwifi/stats.c
+++ b/drivers/net/wireless/rtlwifi/stats.c
@@ -39,15 +39,8 @@ EXPORT_SYMBOL(rtl_query_rxpwrpercentage);
39 39
40u8 rtl_evm_db_to_percentage(char value) 40u8 rtl_evm_db_to_percentage(char value)
41{ 41{
42 char ret_val; 42 char ret_val = clamp(-value, 0, 33) * 3;
43 ret_val = value;
44 43
45 if (ret_val >= 0)
46 ret_val = 0;
47 if (ret_val <= -33)
48 ret_val = -33;
49 ret_val = 0 - ret_val;
50 ret_val *= 3;
51 if (ret_val == 99) 44 if (ret_val == 99)
52 ret_val = 100; 45 ret_val = 100;
53 46
@@ -55,21 +48,6 @@ u8 rtl_evm_db_to_percentage(char value)
55} 48}
56EXPORT_SYMBOL(rtl_evm_db_to_percentage); 49EXPORT_SYMBOL(rtl_evm_db_to_percentage);
57 50
58u8 rtl_evm_dbm_jaguar(char value)
59{
60 char ret_val = value;
61
62 /* -33dB~0dB to 33dB ~ 0dB*/
63 if (ret_val == -128)
64 ret_val = 127;
65 else if (ret_val < 0)
66 ret_val = 0 - ret_val;
67
68 ret_val = ret_val >> 1;
69 return ret_val;
70}
71EXPORT_SYMBOL(rtl_evm_dbm_jaguar);
72
73static long rtl_translate_todbm(struct ieee80211_hw *hw, 51static long rtl_translate_todbm(struct ieee80211_hw *hw,
74 u8 signal_strength_index) 52 u8 signal_strength_index)
75{ 53{
diff --git a/drivers/net/wireless/rtlwifi/stats.h b/drivers/net/wireless/rtlwifi/stats.h
index aa4eec80ccf7..2b57dffef572 100644
--- a/drivers/net/wireless/rtlwifi/stats.h
+++ b/drivers/net/wireless/rtlwifi/stats.h
@@ -35,7 +35,6 @@
35 35
36u8 rtl_query_rxpwrpercentage(char antpower); 36u8 rtl_query_rxpwrpercentage(char antpower);
37u8 rtl_evm_db_to_percentage(char value); 37u8 rtl_evm_db_to_percentage(char value);
38u8 rtl_evm_dbm_jaguar(char value);
39long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig); 38long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig);
40void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer, 39void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer,
41 struct rtl_stats *pstatus); 40 struct rtl_stats *pstatus);