diff options
author | David S. Miller <davem@davemloft.net> | 2015-04-01 14:27:28 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-04-01 14:27:28 -0400 |
commit | 45eb5168873c93b4f1c3c3867fea65aad4c6abd6 (patch) | |
tree | 4949e1083f214ce51565d41614df912cba017219 /drivers/net/wireless/rtlwifi | |
parent | b9600d2d0901cd0f91cb372e72bd53d22f49638d (diff) | |
parent | 9374e7d2fdcad3c36dafc8d3effd554bc702c4b6 (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.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8188ee/hw.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192cu/hw.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192cu/sw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192de/hw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192ee/hw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192se/hw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8723ae/hw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8723be/hw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8821ae/trx.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/stats.c | 24 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/stats.h | 1 |
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); | |||
123 | u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); | 123 | u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); |
124 | 124 | ||
125 | void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb); | 125 | void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb); |
126 | void rtl_watch_dog_timer_callback(unsigned long data); | ||
127 | int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 126 | int 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); |
129 | int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif, | 128 | int 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 | ||
1474 | static void _beacon_function_enable(struct ieee80211_hw *hw, bool Enable, | 1474 | static 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 | ||
1523 | void rtl92cu_set_beacon_interval(struct ieee80211_hw *hw) | 1522 | void 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 | ||
67 | static 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 | |||
67 | static void query_rxphystatus(struct ieee80211_hw *hw, | 81 | static 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 | ||
40 | u8 rtl_evm_db_to_percentage(char value) | 40 | u8 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 | } |
56 | EXPORT_SYMBOL(rtl_evm_db_to_percentage); | 49 | EXPORT_SYMBOL(rtl_evm_db_to_percentage); |
57 | 50 | ||
58 | u8 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 | } | ||
71 | EXPORT_SYMBOL(rtl_evm_dbm_jaguar); | ||
72 | |||
73 | static long rtl_translate_todbm(struct ieee80211_hw *hw, | 51 | static 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 | ||
36 | u8 rtl_query_rxpwrpercentage(char antpower); | 36 | u8 rtl_query_rxpwrpercentage(char antpower); |
37 | u8 rtl_evm_db_to_percentage(char value); | 37 | u8 rtl_evm_db_to_percentage(char value); |
38 | u8 rtl_evm_dbm_jaguar(char value); | ||
39 | long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig); | 38 | long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig); |
40 | void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer, | 39 | void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer, |
41 | struct rtl_stats *pstatus); | 40 | struct rtl_stats *pstatus); |