hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/drivers/net/wireless/realtek/rtlwifi/core.c
....@@ -1,27 +1,5 @@
1
-/******************************************************************************
2
- *
3
- * Copyright(c) 2009-2012 Realtek Corporation.
4
- *
5
- * This program is free software; you can redistribute it and/or modify it
6
- * under the terms of version 2 of the GNU General Public License as
7
- * published by the Free Software Foundation.
8
- *
9
- * This program is distributed in the hope that it will be useful, but WITHOUT
10
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
- * more details.
13
- *
14
- * The full GNU General Public License is included in this distribution in the
15
- * file called LICENSE.
16
- *
17
- * Contact Information:
18
- * wlanfae <wlanfae@realtek.com>
19
- * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20
- * Hsinchu 300, Taiwan.
21
- *
22
- * Larry Finger <Larry.Finger@lwfinger.net>
23
- *
24
- *****************************************************************************/
1
+// SPDX-License-Identifier: GPL-2.0
2
+/* Copyright(c) 2009-2012 Realtek Corporation.*/
253
264 #include "wifi.h"
275 #include "core.h"
....@@ -98,9 +76,8 @@
9876 struct rtl_priv *rtlpriv = rtl_priv(hw);
9977 int err;
10078
101
- RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
102
- "Firmware callback routine entered!\n");
103
- complete(&rtlpriv->firmware_loading_complete);
79
+ rtl_dbg(rtlpriv, COMP_ERR, DBG_LOUD,
80
+ "Firmware callback routine entered!\n");
10481 if (!firmware) {
10582 if (rtlpriv->cfg->alt_fw_name) {
10683 err = request_firmware(&firmware,
....@@ -113,13 +90,13 @@
11390 }
11491 pr_err("Selected firmware is not available\n");
11592 rtlpriv->max_fw_size = 0;
116
- return;
93
+ goto exit;
11794 }
11895 found_alt:
11996 if (firmware->size > rtlpriv->max_fw_size) {
12097 pr_err("Firmware is too big!\n");
12198 release_firmware(firmware);
122
- return;
99
+ goto exit;
123100 }
124101 if (!is_wow) {
125102 memcpy(rtlpriv->rtlhal.pfirmware, firmware->data,
....@@ -131,6 +108,9 @@
131108 rtlpriv->rtlhal.wowlan_fwsize = firmware->size;
132109 }
133110 release_firmware(firmware);
111
+
112
+exit:
113
+ complete(&rtlpriv->firmware_loading_complete);
134114 }
135115
136116 void rtl_fw_cb(const struct firmware *firmware, void *context)
....@@ -210,6 +190,7 @@
210190 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw));
211191 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
212192 struct rtl_tcb_desc tcb_desc;
193
+
213194 memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
214195
215196 if (unlikely(is_hal_stop(rtlhal) || ppsc->rfpwr_state != ERFON))
....@@ -235,8 +216,8 @@
235216 u8 retry_limit = 0x30;
236217
237218 if (mac->vif) {
238
- RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
239
- "vif has been set!! mac->vif = 0x%p\n", mac->vif);
219
+ rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING,
220
+ "vif has been set!! mac->vif = 0x%p\n", mac->vif);
240221 return -EOPNOTSUPP;
241222 }
242223
....@@ -248,19 +229,19 @@
248229 switch (ieee80211_vif_type_p2p(vif)) {
249230 case NL80211_IFTYPE_P2P_CLIENT:
250231 mac->p2p = P2P_ROLE_CLIENT;
251
- /*fall through*/
232
+ fallthrough;
252233 case NL80211_IFTYPE_STATION:
253234 if (mac->beacon_enabled == 1) {
254
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
255
- "NL80211_IFTYPE_STATION\n");
235
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
236
+ "NL80211_IFTYPE_STATION\n");
256237 mac->beacon_enabled = 0;
257238 rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
258239 rtlpriv->cfg->maps[RTL_IBSS_INT_MASKS]);
259240 }
260241 break;
261242 case NL80211_IFTYPE_ADHOC:
262
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
263
- "NL80211_IFTYPE_ADHOC\n");
243
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
244
+ "NL80211_IFTYPE_ADHOC\n");
264245
265246 mac->link_state = MAC80211_LINKED;
266247 rtlpriv->cfg->ops->set_bcn_reg(hw);
....@@ -275,10 +256,10 @@
275256 break;
276257 case NL80211_IFTYPE_P2P_GO:
277258 mac->p2p = P2P_ROLE_GO;
278
- /*fall through*/
259
+ fallthrough;
279260 case NL80211_IFTYPE_AP:
280
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
281
- "NL80211_IFTYPE_AP\n");
261
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
262
+ "NL80211_IFTYPE_AP\n");
282263
283264 mac->link_state = MAC80211_LINKED;
284265 rtlpriv->cfg->ops->set_bcn_reg(hw);
....@@ -292,8 +273,8 @@
292273 retry_limit = 0x07;
293274 break;
294275 case NL80211_IFTYPE_MESH_POINT:
295
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
296
- "NL80211_IFTYPE_MESH_POINT\n");
276
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
277
+ "NL80211_IFTYPE_MESH_POINT\n");
297278
298279 mac->link_state = MAC80211_LINKED;
299280 rtlpriv->cfg->ops->set_bcn_reg(hw);
....@@ -314,8 +295,8 @@
314295 }
315296
316297 if (mac->p2p) {
317
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
318
- "p2p role %x\n", vif->type);
298
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
299
+ "p2p role %x\n", vif->type);
319300 mac->basic_rates = 0xff0;/*disable cck rate for p2p*/
320301 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE,
321302 (u8 *)(&mac->basic_rates));
....@@ -368,19 +349,21 @@
368349
369350 mutex_unlock(&rtlpriv->locks.conf_mutex);
370351 }
352
+
371353 static int rtl_op_change_interface(struct ieee80211_hw *hw,
372354 struct ieee80211_vif *vif,
373355 enum nl80211_iftype new_type, bool p2p)
374356 {
375357 struct rtl_priv *rtlpriv = rtl_priv(hw);
376358 int ret;
359
+
377360 rtl_op_remove_interface(hw, vif);
378361
379362 vif->type = new_type;
380363 vif->p2p = p2p;
381364 ret = rtl_op_add_interface(hw, vif);
382
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
383
- "p2p %x\n", p2p);
365
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
366
+ "p2p %x\n", p2p);
384367 return ret;
385368 }
386369
....@@ -454,8 +437,8 @@
454437 memset(mask, 0, MAX_WOL_BIT_MASK_SIZE);
455438 if (patterns[i].pattern_len < 0 ||
456439 patterns[i].pattern_len > MAX_WOL_PATTERN_SIZE) {
457
- RT_TRACE(rtlpriv, COMP_POWER, DBG_WARNING,
458
- "Pattern[%d] is too long\n", i);
440
+ rtl_dbg(rtlpriv, COMP_POWER, DBG_WARNING,
441
+ "Pattern[%d] is too long\n", i);
459442 continue;
460443 }
461444 pattern_os = patterns[i].pattern;
....@@ -534,8 +517,8 @@
534517 "pattern to hw\n", content, len);
535518 /* 3. calculate crc */
536519 rtl_pattern.crc = _calculate_wol_pattern_crc(content, len);
537
- RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE,
538
- "CRC_Remainder = 0x%x\n", rtl_pattern.crc);
520
+ rtl_dbg(rtlpriv, COMP_POWER, DBG_TRACE,
521
+ "CRC_Remainder = 0x%x\n", rtl_pattern.crc);
539522
540523 /* 4. write crc & mask_for_hw to hw */
541524 rtlpriv->cfg->ops->add_wowlan_pattern(hw, &rtl_pattern, i);
....@@ -550,7 +533,7 @@
550533 struct rtl_hal *rtlhal = rtl_hal(rtlpriv);
551534 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw));
552535
553
- RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, "\n");
536
+ rtl_dbg(rtlpriv, COMP_POWER, DBG_DMESG, "\n");
554537 if (WARN_ON(!wow))
555538 return -EINVAL;
556539
....@@ -563,7 +546,7 @@
563546 rtlhal->driver_is_goingto_unload = true;
564547 rtlhal->enter_pnp_sleep = true;
565548
566
- rtl_lps_leave(hw);
549
+ rtl_lps_leave(hw, true);
567550 rtl_op_stop(hw);
568551 device_set_wakeup_enable(wiphy_dev(hw->wiphy), true);
569552 return 0;
....@@ -576,7 +559,7 @@
576559 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
577560 time64_t now;
578561
579
- RT_TRACE(rtlpriv, COMP_POWER, DBG_DMESG, "\n");
562
+ rtl_dbg(rtlpriv, COMP_POWER, DBG_DMESG, "\n");
580563 rtlhal->driver_is_goingto_unload = false;
581564 rtlhal->enter_pnp_sleep = false;
582565 rtlhal->wake_from_pnp_sleep = true;
....@@ -607,8 +590,8 @@
607590
608591 mutex_lock(&rtlpriv->locks.conf_mutex);
609592 if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) { /* BIT(2)*/
610
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
611
- "IEEE80211_CONF_CHANGE_LISTEN_INTERVAL\n");
593
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
594
+ "IEEE80211_CONF_CHANGE_LISTEN_INTERVAL\n");
612595 }
613596
614597 /*For IPS */
....@@ -651,9 +634,9 @@
651634 }
652635
653636 if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS) {
654
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
655
- "IEEE80211_CONF_CHANGE_RETRY_LIMITS %x\n",
656
- hw->conf.long_frame_max_tx_count);
637
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
638
+ "IEEE80211_CONF_CHANGE_RETRY_LIMITS %x\n",
639
+ hw->conf.long_frame_max_tx_count);
657640 /* brought up everything changes (changed == ~0) indicates first
658641 * open, so use our default value instead of that of wiphy.
659642 */
....@@ -828,13 +811,13 @@
828811 if (*new_flags & FIF_ALLMULTI) {
829812 mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AM] |
830813 rtlpriv->cfg->maps[MAC_RCR_AB];
831
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
832
- "Enable receive multicast frame\n");
814
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
815
+ "Enable receive multicast frame\n");
833816 } else {
834817 mac->rx_conf &= ~(rtlpriv->cfg->maps[MAC_RCR_AM] |
835818 rtlpriv->cfg->maps[MAC_RCR_AB]);
836
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
837
- "Disable receive multicast frame\n");
819
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
820
+ "Disable receive multicast frame\n");
838821 }
839822 update_rcr = true;
840823 }
....@@ -842,12 +825,12 @@
842825 if (changed_flags & FIF_FCSFAIL) {
843826 if (*new_flags & FIF_FCSFAIL) {
844827 mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACRC32];
845
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
846
- "Enable receive FCS error frame\n");
828
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
829
+ "Enable receive FCS error frame\n");
847830 } else {
848831 mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACRC32];
849
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
850
- "Disable receive FCS error frame\n");
832
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
833
+ "Disable receive FCS error frame\n");
851834 }
852835 if (!update_rcr)
853836 update_rcr = true;
....@@ -874,12 +857,12 @@
874857 if (*new_flags & FIF_CONTROL) {
875858 mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACF];
876859
877
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
878
- "Enable receive control frame.\n");
860
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
861
+ "Enable receive control frame.\n");
879862 } else {
880863 mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACF];
881
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
882
- "Disable receive control frame.\n");
864
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
865
+ "Disable receive control frame.\n");
883866 }
884867 if (!update_rcr)
885868 update_rcr = true;
....@@ -888,12 +871,12 @@
888871 if (changed_flags & FIF_OTHER_BSS) {
889872 if (*new_flags & FIF_OTHER_BSS) {
890873 mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AAP];
891
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
892
- "Enable receive other BSS's frame.\n");
874
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
875
+ "Enable receive other BSS's frame.\n");
893876 } else {
894877 mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_AAP];
895
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
896
- "Disable receive other BSS's frame.\n");
878
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
879
+ "Disable receive other BSS's frame.\n");
897880 }
898881 if (!update_rcr)
899882 update_rcr = true;
....@@ -903,6 +886,7 @@
903886 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR,
904887 (u8 *)(&mac->rx_conf));
905888 }
889
+
906890 static int rtl_op_sta_add(struct ieee80211_hw *hw,
907891 struct ieee80211_vif *vif,
908892 struct ieee80211_sta *sta)
....@@ -941,7 +925,7 @@
941925 sta->supp_rates[0] &= 0xfffffff0;
942926
943927 memcpy(sta_entry->mac_addr, sta->addr, ETH_ALEN);
944
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
928
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
945929 "Add sta addr is %pM\n", sta->addr);
946930 rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0, true);
947931 }
....@@ -955,9 +939,10 @@
955939 {
956940 struct rtl_priv *rtlpriv = rtl_priv(hw);
957941 struct rtl_sta_info *sta_entry;
942
+
958943 if (sta) {
959
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
960
- "Remove sta addr is %pM\n", sta->addr);
944
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
945
+ "Remove sta addr is %pM\n", sta->addr);
961946 sta_entry = (struct rtl_sta_info *)sta->drv_priv;
962947 sta_entry->wireless_mode = 0;
963948 sta_entry->ratr_index = 0;
....@@ -967,6 +952,7 @@
967952 }
968953 return 0;
969954 }
955
+
970956 static int _rtl_get_hal_qnum(u16 queue)
971957 {
972958 int qnum;
....@@ -1004,8 +990,8 @@
1004990 int aci;
1005991
1006992 if (queue >= AC_MAX) {
1007
- RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
1008
- "queue number %d is incorrect!\n", queue);
993
+ rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING,
994
+ "queue number %d is incorrect!\n", queue);
1009995 return -EINVAL;
1010996 }
1011997
....@@ -1050,8 +1036,8 @@
10501036 (changed & BSS_CHANGED_BEACON_ENABLED &&
10511037 bss_conf->enable_beacon)) {
10521038 if (mac->beacon_enabled == 0) {
1053
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1054
- "BSS_CHANGED_BEACON_ENABLED\n");
1039
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1040
+ "BSS_CHANGED_BEACON_ENABLED\n");
10551041
10561042 /*start hw beacon interrupt. */
10571043 /*rtlpriv->cfg->ops->set_bcn_reg(hw); */
....@@ -1068,8 +1054,8 @@
10681054 if ((changed & BSS_CHANGED_BEACON_ENABLED &&
10691055 !bss_conf->enable_beacon)) {
10701056 if (mac->beacon_enabled == 1) {
1071
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1072
- "ADHOC DISABLE BEACON\n");
1057
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1058
+ "ADHOC DISABLE BEACON\n");
10731059
10741060 mac->beacon_enabled = 0;
10751061 rtlpriv->cfg->ops->update_interrupt_mask(hw, 0,
....@@ -1078,8 +1064,8 @@
10781064 }
10791065 }
10801066 if (changed & BSS_CHANGED_BEACON_INT) {
1081
- RT_TRACE(rtlpriv, COMP_BEACON, DBG_TRACE,
1082
- "BSS_CHANGED_BEACON_INT\n");
1067
+ rtl_dbg(rtlpriv, COMP_BEACON, DBG_TRACE,
1068
+ "BSS_CHANGED_BEACON_INT\n");
10831069 mac->beacon_interval = bss_conf->beacon_int;
10841070 rtlpriv->cfg->ops->set_bcn_intv(hw);
10851071 }
....@@ -1088,6 +1074,7 @@
10881074 /*TODO: reference to enum ieee80211_bss_change */
10891075 if (changed & BSS_CHANGED_ASSOC) {
10901076 u8 mstatus;
1077
+
10911078 if (bss_conf->assoc) {
10921079 struct ieee80211_sta *sta = NULL;
10931080 u8 keep_alive = 10;
....@@ -1117,8 +1104,8 @@
11171104 rcu_read_unlock();
11181105 goto out;
11191106 }
1120
- RT_TRACE(rtlpriv, COMP_EASY_CONCURRENT, DBG_LOUD,
1121
- "send PS STATIC frame\n");
1107
+ rtl_dbg(rtlpriv, COMP_EASY_CONCURRENT, DBG_LOUD,
1108
+ "send PS STATIC frame\n");
11221109 if (rtlpriv->dm.supp_phymode_switch) {
11231110 if (sta->ht_cap.ht_supported)
11241111 rtl_send_smps_action(hw, sta,
....@@ -1158,15 +1145,15 @@
11581145 HW_VAR_KEEP_ALIVE,
11591146 (u8 *)(&keep_alive));
11601147
1161
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1162
- "BSS_CHANGED_ASSOC\n");
1148
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1149
+ "BSS_CHANGED_ASSOC\n");
11631150 } else {
11641151 struct cfg80211_bss *bss = NULL;
11651152
11661153 mstatus = RT_MEDIA_DISCONNECT;
11671154
11681155 if (mac->link_state == MAC80211_LINKED)
1169
- rtl_lps_leave(hw);
1156
+ rtl_lps_leave(hw, true);
11701157 if (ppsc->p2p_ps_info.p2p_ps_mode > P2P_PS_NONE)
11711158 rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE);
11721159 mac->link_state = MAC80211_NOLINK;
....@@ -1176,14 +1163,14 @@
11761163 IEEE80211_BSS_TYPE_ESS,
11771164 IEEE80211_PRIVACY_OFF);
11781165
1179
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1180
- "bssid = %pMF\n", mac->bssid);
1166
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1167
+ "bssid = %pMF\n", mac->bssid);
11811168
11821169 if (bss) {
11831170 cfg80211_unlink_bss(hw->wiphy, bss);
11841171 cfg80211_put_bss(hw->wiphy, bss);
1185
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1186
- "cfg80211_unlink !!\n");
1172
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1173
+ "cfg80211_unlink !!\n");
11871174 }
11881175
11891176 eth_zero_addr(mac->bssid);
....@@ -1194,8 +1181,8 @@
11941181 if (rtlpriv->cfg->ops->chk_switch_dmdp)
11951182 rtlpriv->cfg->ops->chk_switch_dmdp(hw);
11961183 }
1197
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1198
- "BSS_CHANGED_UN_ASSOC\n");
1184
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1185
+ "BSS_CHANGED_UN_ASSOC\n");
11991186 }
12001187 rtlpriv->cfg->ops->set_network_type(hw, vif->type);
12011188 /* For FW LPS:
....@@ -1213,14 +1200,14 @@
12131200 }
12141201
12151202 if (changed & BSS_CHANGED_ERP_CTS_PROT) {
1216
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1217
- "BSS_CHANGED_ERP_CTS_PROT\n");
1203
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1204
+ "BSS_CHANGED_ERP_CTS_PROT\n");
12181205 mac->use_cts_protect = bss_conf->use_cts_prot;
12191206 }
12201207
12211208 if (changed & BSS_CHANGED_ERP_PREAMBLE) {
1222
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
1223
- "BSS_CHANGED_ERP_PREAMBLE use short preamble:%x\n",
1209
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD,
1210
+ "BSS_CHANGED_ERP_PREAMBLE use short preamble:%x\n",
12241211 bss_conf->use_short_preamble);
12251212
12261213 mac->short_preamble = bss_conf->use_short_preamble;
....@@ -1229,8 +1216,8 @@
12291216 }
12301217
12311218 if (changed & BSS_CHANGED_ERP_SLOT) {
1232
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1233
- "BSS_CHANGED_ERP_SLOT\n");
1219
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1220
+ "BSS_CHANGED_ERP_SLOT\n");
12341221
12351222 if (bss_conf->use_short_slot)
12361223 mac->slot_time = RTL_SLOT_TIME_9;
....@@ -1244,8 +1231,8 @@
12441231 if (changed & BSS_CHANGED_HT) {
12451232 struct ieee80211_sta *sta = NULL;
12461233
1247
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1248
- "BSS_CHANGED_HT\n");
1234
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1235
+ "BSS_CHANGED_HT\n");
12491236
12501237 rcu_read_lock();
12511238 sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid);
....@@ -1276,8 +1263,8 @@
12761263 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BSSID,
12771264 (u8 *)bss_conf->bssid);
12781265
1279
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_DMESG,
1280
- "bssid: %pM\n", bss_conf->bssid);
1266
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_DMESG,
1267
+ "bssid: %pM\n", bss_conf->bssid);
12811268
12821269 mac->vendor = PEER_UNKNOWN;
12831270 memcpy(mac->bssid, bss_conf->bssid, ETH_ALEN);
....@@ -1316,6 +1303,7 @@
13161303 * set in sta_add, and will be NULL here */
13171304 if (vif->type == NL80211_IFTYPE_STATION) {
13181305 struct rtl_sta_info *sta_entry;
1306
+
13191307 sta_entry = (struct rtl_sta_info *)sta->drv_priv;
13201308 sta_entry->wireless_mode = mac->mode;
13211309 }
....@@ -1407,27 +1395,27 @@
14071395
14081396 switch (action) {
14091397 case IEEE80211_AMPDU_TX_START:
1410
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1411
- "IEEE80211_AMPDU_TX_START: TID:%d\n", tid);
1398
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1399
+ "IEEE80211_AMPDU_TX_START: TID:%d\n", tid);
14121400 return rtl_tx_agg_start(hw, vif, sta, tid, ssn);
14131401 case IEEE80211_AMPDU_TX_STOP_CONT:
14141402 case IEEE80211_AMPDU_TX_STOP_FLUSH:
14151403 case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT:
1416
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1417
- "IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid);
1404
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1405
+ "IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid);
14181406 return rtl_tx_agg_stop(hw, vif, sta, tid);
14191407 case IEEE80211_AMPDU_TX_OPERATIONAL:
1420
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1421
- "IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid);
1408
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1409
+ "IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid);
14221410 rtl_tx_agg_oper(hw, sta, tid);
14231411 break;
14241412 case IEEE80211_AMPDU_RX_START:
1425
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1426
- "IEEE80211_AMPDU_RX_START:TID:%d\n", tid);
1413
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1414
+ "IEEE80211_AMPDU_RX_START:TID:%d\n", tid);
14271415 return rtl_rx_agg_start(hw, sta, tid);
14281416 case IEEE80211_AMPDU_RX_STOP:
1429
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_TRACE,
1430
- "IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid);
1417
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_TRACE,
1418
+ "IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid);
14311419 return rtl_rx_agg_stop(hw, sta, tid);
14321420 default:
14331421 pr_err("IEEE80211_AMPDU_ERR!!!!:\n");
....@@ -1443,7 +1431,7 @@
14431431 struct rtl_priv *rtlpriv = rtl_priv(hw);
14441432 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
14451433
1446
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
1434
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
14471435 mac->act_scanning = true;
14481436 if (rtlpriv->link_info.higher_busytraffic) {
14491437 mac->skip_scan = true;
....@@ -1462,7 +1450,7 @@
14621450 }
14631451
14641452 if (mac->link_state == MAC80211_LINKED) {
1465
- rtl_lps_leave(hw);
1453
+ rtl_lps_leave(hw, true);
14661454 mac->link_state = MAC80211_LINKED_SCANNING;
14671455 } else {
14681456 rtl_ips_nic_on(hw);
....@@ -1481,7 +1469,7 @@
14811469 struct rtl_priv *rtlpriv = rtl_priv(hw);
14821470 struct rtl_mac *mac = rtl_mac(rtl_priv(hw));
14831471
1484
- RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
1472
+ rtl_dbg(rtlpriv, COMP_MAC80211, DBG_LOUD, "\n");
14851473 mac->act_scanning = false;
14861474 mac->skip_scan = false;
14871475
....@@ -1531,8 +1519,8 @@
15311519 rtlpriv->btcoexist.btc_info.in_4way = false;
15321520
15331521 if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) {
1534
- RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING,
1535
- "not open hw encryption\n");
1522
+ rtl_dbg(rtlpriv, COMP_ERR, DBG_WARNING,
1523
+ "not open hw encryption\n");
15361524 return -ENOSPC; /*User disabled HW-crypto */
15371525 }
15381526 /* To support IBSS, use sw-crypto for GTK */
....@@ -1540,10 +1528,10 @@
15401528 vif->type == NL80211_IFTYPE_MESH_POINT) &&
15411529 !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
15421530 return -ENOSPC;
1543
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1544
- "%s hardware based encryption for keyidx: %d, mac: %pM\n",
1545
- cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
1546
- sta ? sta->addr : bcast_addr);
1531
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1532
+ "%s hardware based encryption for keyidx: %d, mac: %pM\n",
1533
+ cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
1534
+ sta ? sta->addr : bcast_addr);
15471535 rtlpriv->sec.being_setkey = true;
15481536 rtl_ips_nic_on(hw);
15491537 mutex_lock(&rtlpriv->locks.conf_mutex);
....@@ -1552,28 +1540,28 @@
15521540 switch (key->cipher) {
15531541 case WLAN_CIPHER_SUITE_WEP40:
15541542 key_type = WEP40_ENCRYPTION;
1555
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP40\n");
1543
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP40\n");
15561544 break;
15571545 case WLAN_CIPHER_SUITE_WEP104:
1558
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP104\n");
1546
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG, "alg:WEP104\n");
15591547 key_type = WEP104_ENCRYPTION;
15601548 break;
15611549 case WLAN_CIPHER_SUITE_TKIP:
15621550 key_type = TKIP_ENCRYPTION;
1563
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:TKIP\n");
1551
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG, "alg:TKIP\n");
15641552 break;
15651553 case WLAN_CIPHER_SUITE_CCMP:
15661554 key_type = AESCCMP_ENCRYPTION;
1567
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CCMP\n");
1555
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CCMP\n");
15681556 break;
15691557 case WLAN_CIPHER_SUITE_AES_CMAC:
15701558 /* HW don't support CMAC encryption,
15711559 * use software CMAC encryption
15721560 */
15731561 key_type = AESCMAC_ENCRYPTION;
1574
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CMAC\n");
1575
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1576
- "HW don't support CMAC encryption, use software CMAC encryption\n");
1562
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CMAC\n");
1563
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1564
+ "HW don't support CMAC encryption, use software CMAC encryption\n");
15771565 err = -EOPNOTSUPP;
15781566 goto out_unlock;
15791567 default:
....@@ -1619,9 +1607,9 @@
16191607 key_type == WEP104_ENCRYPTION))
16201608 wep_only = true;
16211609 rtlpriv->sec.pairwise_enc_algorithm = key_type;
1622
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1623
- "set enable_hw_sec, key_type:%x(OPEN:0 WEP40:1 TKIP:2 AES:4 WEP104:5)\n",
1624
- key_type);
1610
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1611
+ "set enable_hw_sec, key_type:%x(OPEN:0 WEP40:1 TKIP:2 AES:4 WEP104:5)\n",
1612
+ key_type);
16251613 rtlpriv->cfg->ops->enable_hw_sec(hw);
16261614 }
16271615 }
....@@ -1629,8 +1617,8 @@
16291617 switch (cmd) {
16301618 case SET_KEY:
16311619 if (wep_only) {
1632
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1633
- "set WEP(group/pairwise) key\n");
1620
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1621
+ "set WEP(group/pairwise) key\n");
16341622 /* Pairwise key with an assigned MAC address. */
16351623 rtlpriv->sec.pairwise_enc_algorithm = key_type;
16361624 rtlpriv->sec.group_enc_algorithm = key_type;
....@@ -1640,8 +1628,8 @@
16401628 rtlpriv->sec.key_len[key_idx] = key->keylen;
16411629 eth_zero_addr(mac_addr);
16421630 } else if (group_key) { /* group key */
1643
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1644
- "set group key\n");
1631
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1632
+ "set group key\n");
16451633 /* group key */
16461634 rtlpriv->sec.group_enc_algorithm = key_type;
16471635 /*set local buf about group key. */
....@@ -1650,8 +1638,8 @@
16501638 rtlpriv->sec.key_len[key_idx] = key->keylen;
16511639 memcpy(mac_addr, bcast_addr, ETH_ALEN);
16521640 } else { /* pairwise key */
1653
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1654
- "set pairwise key\n");
1641
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1642
+ "set pairwise key\n");
16551643 if (!sta) {
16561644 WARN_ONCE(true,
16571645 "rtlwifi: pairwise key without mac_addr\n");
....@@ -1683,8 +1671,8 @@
16831671 key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX;
16841672 break;
16851673 case DISABLE_KEY:
1686
- RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
1687
- "disable key delete one entry\n");
1674
+ rtl_dbg(rtlpriv, COMP_SEC, DBG_DMESG,
1675
+ "disable key delete one entry\n");
16881676 /*set local buf about wep key. */
16891677 if (vif->type == NL80211_IFTYPE_AP ||
16901678 vif->type == NL80211_IFTYPE_MESH_POINT) {
....@@ -1732,11 +1720,11 @@
17321720 if (unlikely(radio_state != rtlpriv->rfkill.rfkill_state)) {
17331721 rtlpriv->rfkill.rfkill_state = radio_state;
17341722
1735
- RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG,
1736
- "wireless radio switch turned %s\n",
1737
- radio_state ? "on" : "off");
1723
+ rtl_dbg(rtlpriv, COMP_RF, DBG_DMESG,
1724
+ "wireless radio switch turned %s\n",
1725
+ radio_state ? "on" : "off");
17381726
1739
- blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1;
1727
+ blocked = !rtlpriv->rfkill.rfkill_state;
17401728 wiphy_rfkill_set_hw_state(hw->wiphy, blocked);
17411729 }
17421730 }
....@@ -1779,26 +1767,27 @@
17791767
17801768 do {
17811769 cfg_cmd = pwrcfgcmd[ary_idx];
1782
- RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
1783
- "rtl_hal_pwrseqcmdparsing(): offset(%#x),cut_msk(%#x), famsk(%#x), interface_msk(%#x), base(%#x), cmd(%#x), msk(%#x), value(%#x)\n",
1784
- GET_PWR_CFG_OFFSET(cfg_cmd),
1785
- GET_PWR_CFG_CUT_MASK(cfg_cmd),
1786
- GET_PWR_CFG_FAB_MASK(cfg_cmd),
1787
- GET_PWR_CFG_INTF_MASK(cfg_cmd),
1788
- GET_PWR_CFG_BASE(cfg_cmd), GET_PWR_CFG_CMD(cfg_cmd),
1789
- GET_PWR_CFG_MASK(cfg_cmd), GET_PWR_CFG_VALUE(cfg_cmd));
1770
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE,
1771
+ "%s: offset(%#x),cut_msk(%#x), famsk(%#x), interface_msk(%#x), base(%#x), cmd(%#x), msk(%#x), value(%#x)\n",
1772
+ __func__,
1773
+ GET_PWR_CFG_OFFSET(cfg_cmd),
1774
+ GET_PWR_CFG_CUT_MASK(cfg_cmd),
1775
+ GET_PWR_CFG_FAB_MASK(cfg_cmd),
1776
+ GET_PWR_CFG_INTF_MASK(cfg_cmd),
1777
+ GET_PWR_CFG_BASE(cfg_cmd), GET_PWR_CFG_CMD(cfg_cmd),
1778
+ GET_PWR_CFG_MASK(cfg_cmd), GET_PWR_CFG_VALUE(cfg_cmd));
17901779
17911780 if ((GET_PWR_CFG_FAB_MASK(cfg_cmd)&faversion) &&
17921781 (GET_PWR_CFG_CUT_MASK(cfg_cmd)&cut_version) &&
17931782 (GET_PWR_CFG_INTF_MASK(cfg_cmd)&interface_type)) {
17941783 switch (GET_PWR_CFG_CMD(cfg_cmd)) {
17951784 case PWR_CMD_READ:
1796
- RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
1785
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE,
17971786 "rtl_hal_pwrseqcmdparsing(): PWR_CMD_READ\n");
17981787 break;
17991788 case PWR_CMD_WRITE:
1800
- RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
1801
- "%s(): PWR_CMD_WRITE\n", __func__);
1789
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE,
1790
+ "%s(): PWR_CMD_WRITE\n", __func__);
18021791 offset = GET_PWR_CFG_OFFSET(cfg_cmd);
18031792
18041793 /*Read the value from system register*/
....@@ -1811,7 +1800,7 @@
18111800 rtl_write_byte(rtlpriv, offset, value);
18121801 break;
18131802 case PWR_CMD_POLLING:
1814
- RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
1803
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE,
18151804 "rtl_hal_pwrseqcmdparsing(): PWR_CMD_POLLING\n");
18161805 polling_bit = false;
18171806 offset = GET_PWR_CFG_OFFSET(cfg_cmd);
....@@ -1832,8 +1821,8 @@
18321821 } while (!polling_bit);
18331822 break;
18341823 case PWR_CMD_DELAY:
1835
- RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
1836
- "rtl_hal_pwrseqcmdparsing(): PWR_CMD_DELAY\n");
1824
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE,
1825
+ "%s: PWR_CMD_DELAY\n", __func__);
18371826 if (GET_PWR_CFG_VALUE(cfg_cmd) ==
18381827 PWRSEQ_DELAY_US)
18391828 udelay(GET_PWR_CFG_OFFSET(cfg_cmd));
....@@ -1841,8 +1830,8 @@
18411830 mdelay(GET_PWR_CFG_OFFSET(cfg_cmd));
18421831 break;
18431832 case PWR_CMD_END:
1844
- RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE,
1845
- "rtl_hal_pwrseqcmdparsing(): PWR_CMD_END\n");
1833
+ rtl_dbg(rtlpriv, COMP_INIT, DBG_TRACE,
1834
+ "%s: PWR_CMD_END\n", __func__);
18461835 return true;
18471836 default:
18481837 WARN_ONCE(true,
....@@ -1957,5 +1946,7 @@
19571946 dm_digtable->bt30_cur_igi = 0x32;
19581947 dm_digtable->pre_cck_pd_state = CCK_PD_STAGE_MAX;
19591948 dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_LOWRSSI;
1949
+ dm_digtable->pre_cck_fa_state = 0;
1950
+ dm_digtable->cur_cck_fa_state = 0;
19601951 }
19611952 EXPORT_SYMBOL(rtl_dm_diginit);