.. | .. |
---|
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.*/ |
---|
25 | 3 | |
---|
26 | 4 | #include "../wifi.h" |
---|
27 | 5 | #include "../base.h" |
---|
.. | .. |
---|
35 | 13 | #include "fw.h" |
---|
36 | 14 | #include "hal_btc.h" |
---|
37 | 15 | |
---|
38 | | -static const u32 ofdmswing_table[OFDM_TABLE_SIZE] = { |
---|
39 | | - 0x7f8001fe, |
---|
40 | | - 0x788001e2, |
---|
41 | | - 0x71c001c7, |
---|
42 | | - 0x6b8001ae, |
---|
43 | | - 0x65400195, |
---|
44 | | - 0x5fc0017f, |
---|
45 | | - 0x5a400169, |
---|
46 | | - 0x55400155, |
---|
47 | | - 0x50800142, |
---|
48 | | - 0x4c000130, |
---|
49 | | - 0x47c0011f, |
---|
50 | | - 0x43c0010f, |
---|
51 | | - 0x40000100, |
---|
52 | | - 0x3c8000f2, |
---|
53 | | - 0x390000e4, |
---|
54 | | - 0x35c000d7, |
---|
55 | | - 0x32c000cb, |
---|
56 | | - 0x300000c0, |
---|
57 | | - 0x2d4000b5, |
---|
58 | | - 0x2ac000ab, |
---|
59 | | - 0x288000a2, |
---|
60 | | - 0x26000098, |
---|
61 | | - 0x24000090, |
---|
62 | | - 0x22000088, |
---|
63 | | - 0x20000080, |
---|
64 | | - 0x1e400079, |
---|
65 | | - 0x1c800072, |
---|
66 | | - 0x1b00006c, |
---|
67 | | - 0x19800066, |
---|
68 | | - 0x18000060, |
---|
69 | | - 0x16c0005b, |
---|
70 | | - 0x15800056, |
---|
71 | | - 0x14400051, |
---|
72 | | - 0x1300004c, |
---|
73 | | - 0x12000048, |
---|
74 | | - 0x11000044, |
---|
75 | | - 0x10000040, |
---|
76 | | -}; |
---|
77 | | - |
---|
78 | | -static const u8 cckswing_table_ch1ch13[CCK_TABLE_SIZE][8] = { |
---|
79 | | - {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}, |
---|
80 | | - {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, |
---|
81 | | - {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, |
---|
82 | | - {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03}, |
---|
83 | | - {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, |
---|
84 | | - {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03}, |
---|
85 | | - {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, |
---|
86 | | - {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03}, |
---|
87 | | - {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, |
---|
88 | | - {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02}, |
---|
89 | | - {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, |
---|
90 | | - {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02}, |
---|
91 | | - {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02}, |
---|
92 | | - {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02}, |
---|
93 | | - {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, |
---|
94 | | - {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02}, |
---|
95 | | - {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, |
---|
96 | | - {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02}, |
---|
97 | | - {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, |
---|
98 | | - {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, |
---|
99 | | - {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, |
---|
100 | | - {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01}, |
---|
101 | | - {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}, |
---|
102 | | - {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01}, |
---|
103 | | - {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01}, |
---|
104 | | - {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01}, |
---|
105 | | - {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01}, |
---|
106 | | - {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01}, |
---|
107 | | - {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01}, |
---|
108 | | - {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01}, |
---|
109 | | - {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, |
---|
110 | | - {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, |
---|
111 | | - {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01} |
---|
112 | | -}; |
---|
113 | | - |
---|
114 | | -static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = { |
---|
115 | | - {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}, |
---|
116 | | - {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, |
---|
117 | | - {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, |
---|
118 | | - {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00}, |
---|
119 | | - {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, |
---|
120 | | - {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00}, |
---|
121 | | - {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, |
---|
122 | | - {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00}, |
---|
123 | | - {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, |
---|
124 | | - {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00}, |
---|
125 | | - {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, |
---|
126 | | - {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00}, |
---|
127 | | - {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00}, |
---|
128 | | - {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00}, |
---|
129 | | - {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, |
---|
130 | | - {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00}, |
---|
131 | | - {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, |
---|
132 | | - {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00}, |
---|
133 | | - {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, |
---|
134 | | - {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, |
---|
135 | | - {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, |
---|
136 | | - {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00}, |
---|
137 | | - {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}, |
---|
138 | | - {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, |
---|
139 | | - {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, |
---|
140 | | - {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00}, |
---|
141 | | - {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, |
---|
142 | | - {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, |
---|
143 | | - {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, |
---|
144 | | - {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, |
---|
145 | | - {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, |
---|
146 | | - {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, |
---|
147 | | - {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} |
---|
148 | | -}; |
---|
149 | | - |
---|
150 | 16 | static u8 rtl8723e_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw) |
---|
151 | 17 | { |
---|
152 | 18 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
---|
153 | 19 | struct dig_t *dm_digtable = &rtlpriv->dm_digtable; |
---|
| 20 | + struct rtl_mac *mac = rtl_mac(rtlpriv); |
---|
154 | 21 | long rssi_val_min = 0; |
---|
| 22 | + |
---|
| 23 | + if (mac->link_state == MAC80211_LINKED && |
---|
| 24 | + mac->opmode == NL80211_IFTYPE_STATION && |
---|
| 25 | + rtlpriv->link_info.bcn_rx_inperiod == 0) |
---|
| 26 | + return 0; |
---|
155 | 27 | |
---|
156 | 28 | if ((dm_digtable->curmultista_cstate == DIG_MULTISTA_CONNECT) && |
---|
157 | 29 | (dm_digtable->cursta_cstate == DIG_STA_CONNECT)) { |
---|
.. | .. |
---|
210 | 82 | rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, 0x0000c000, 0); |
---|
211 | 83 | rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, 0x0000c000, 2); |
---|
212 | 84 | |
---|
213 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
214 | | - "cnt_parity_fail = %d, cnt_rate_illegal = %d, cnt_crc8_fail = %d, cnt_mcs_fail = %d\n", |
---|
215 | | - falsealm_cnt->cnt_parity_fail, |
---|
216 | | - falsealm_cnt->cnt_rate_illegal, |
---|
217 | | - falsealm_cnt->cnt_crc8_fail, falsealm_cnt->cnt_mcs_fail); |
---|
| 85 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
| 86 | + "cnt_parity_fail = %d, cnt_rate_illegal = %d, cnt_crc8_fail = %d, cnt_mcs_fail = %d\n", |
---|
| 87 | + falsealm_cnt->cnt_parity_fail, |
---|
| 88 | + falsealm_cnt->cnt_rate_illegal, |
---|
| 89 | + falsealm_cnt->cnt_crc8_fail, falsealm_cnt->cnt_mcs_fail); |
---|
218 | 90 | |
---|
219 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
220 | | - "cnt_ofdm_fail = %x, cnt_cck_fail = %x, cnt_all = %x\n", |
---|
221 | | - falsealm_cnt->cnt_ofdm_fail, |
---|
222 | | - falsealm_cnt->cnt_cck_fail, falsealm_cnt->cnt_all); |
---|
| 91 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
| 92 | + "cnt_ofdm_fail = %x, cnt_cck_fail = %x, cnt_all = %x\n", |
---|
| 93 | + falsealm_cnt->cnt_ofdm_fail, |
---|
| 94 | + falsealm_cnt->cnt_cck_fail, falsealm_cnt->cnt_all); |
---|
223 | 95 | } |
---|
224 | 96 | |
---|
225 | 97 | static void rtl92c_dm_ctrl_initgain_by_fa(struct ieee80211_hw *hw) |
---|
.. | .. |
---|
278 | 150 | dm_digtable->cur_igvalue = dm_digtable->rssi_val_min + 10 - |
---|
279 | 151 | dm_digtable->back_val; |
---|
280 | 152 | |
---|
281 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
282 | | - "rssi_val_min = %x back_val %x\n", |
---|
283 | | - dm_digtable->rssi_val_min, dm_digtable->back_val); |
---|
| 153 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
| 154 | + "rssi_val_min = %x back_val %x\n", |
---|
| 155 | + dm_digtable->rssi_val_min, dm_digtable->back_val); |
---|
284 | 156 | |
---|
285 | 157 | rtl8723e_dm_write_dig(hw); |
---|
286 | 158 | } |
---|
.. | .. |
---|
329 | 201 | rtl8723e_dm_write_dig(hw); |
---|
330 | 202 | } |
---|
331 | 203 | |
---|
332 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
333 | | - "curmultista_cstate = %x dig_ext_port_stage %x\n", |
---|
334 | | - dm_digtable->curmultista_cstate, |
---|
335 | | - dm_digtable->dig_ext_port_stage); |
---|
| 204 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
| 205 | + "curmultista_cstate = %x dig_ext_port_stage %x\n", |
---|
| 206 | + dm_digtable->curmultista_cstate, |
---|
| 207 | + dm_digtable->dig_ext_port_stage); |
---|
336 | 208 | } |
---|
337 | 209 | |
---|
338 | 210 | static void rtl8723e_dm_initial_gain_sta(struct ieee80211_hw *hw) |
---|
.. | .. |
---|
340 | 212 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
---|
341 | 213 | struct dig_t *dm_digtable = &rtlpriv->dm_digtable; |
---|
342 | 214 | |
---|
343 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
344 | | - "presta_cstate = %x, cursta_cstate = %x\n", |
---|
345 | | - dm_digtable->presta_cstate, |
---|
346 | | - dm_digtable->cursta_cstate); |
---|
| 215 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
| 216 | + "presta_cstate = %x, cursta_cstate = %x\n", |
---|
| 217 | + dm_digtable->presta_cstate, |
---|
| 218 | + dm_digtable->cursta_cstate); |
---|
347 | 219 | |
---|
348 | 220 | if (dm_digtable->presta_cstate == dm_digtable->cursta_cstate || |
---|
349 | 221 | dm_digtable->cursta_cstate == DIG_STA_BEFORE_CONNECT || |
---|
.. | .. |
---|
417 | 289 | } else { |
---|
418 | 290 | rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, 0xcd); |
---|
419 | 291 | rtl_set_bbreg(hw, RCCK0_SYSTEM, MASKBYTE1, 0x47); |
---|
| 292 | + dm_digtable->pre_cck_fa_state = 0; |
---|
| 293 | + dm_digtable->cur_cck_fa_state = 0; |
---|
420 | 294 | |
---|
421 | 295 | } |
---|
422 | 296 | dm_digtable->pre_cck_pd_state = dm_digtable->cur_cck_pd_state; |
---|
423 | 297 | } |
---|
424 | 298 | |
---|
425 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
426 | | - "CCKPDStage=%x\n", dm_digtable->cur_cck_pd_state); |
---|
| 299 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_TRACE, |
---|
| 300 | + "CCKPDStage=%x\n", dm_digtable->cur_cck_pd_state); |
---|
427 | 301 | |
---|
428 | 302 | } |
---|
429 | 303 | |
---|
.. | .. |
---|
480 | 354 | |
---|
481 | 355 | if ((mac->link_state < MAC80211_LINKED) && |
---|
482 | 356 | (rtlpriv->dm.entry_min_undec_sm_pwdb == 0)) { |
---|
483 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE, |
---|
484 | | - "Not connected to any\n"); |
---|
| 357 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_TRACE, |
---|
| 358 | + "Not connected to any\n"); |
---|
485 | 359 | |
---|
486 | 360 | rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL; |
---|
487 | 361 | |
---|
.. | .. |
---|
493 | 367 | if (mac->opmode == NL80211_IFTYPE_ADHOC) { |
---|
494 | 368 | undec_sm_pwdb = |
---|
495 | 369 | rtlpriv->dm.entry_min_undec_sm_pwdb; |
---|
496 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
497 | | - "AP Client PWDB = 0x%lx\n", |
---|
498 | | - undec_sm_pwdb); |
---|
| 370 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 371 | + "AP Client PWDB = 0x%lx\n", |
---|
| 372 | + undec_sm_pwdb); |
---|
499 | 373 | } else { |
---|
500 | 374 | undec_sm_pwdb = |
---|
501 | 375 | rtlpriv->dm.undec_sm_pwdb; |
---|
502 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
503 | | - "STA Default Port PWDB = 0x%lx\n", |
---|
504 | | - undec_sm_pwdb); |
---|
| 376 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 377 | + "STA Default Port PWDB = 0x%lx\n", |
---|
| 378 | + undec_sm_pwdb); |
---|
505 | 379 | } |
---|
506 | 380 | } else { |
---|
507 | 381 | undec_sm_pwdb = |
---|
508 | 382 | rtlpriv->dm.entry_min_undec_sm_pwdb; |
---|
509 | 383 | |
---|
510 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
511 | | - "AP Ext Port PWDB = 0x%lx\n", |
---|
512 | | - undec_sm_pwdb); |
---|
| 384 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 385 | + "AP Ext Port PWDB = 0x%lx\n", |
---|
| 386 | + undec_sm_pwdb); |
---|
513 | 387 | } |
---|
514 | 388 | |
---|
515 | 389 | if (undec_sm_pwdb >= TX_POWER_NEAR_FIELD_THRESH_LVL2) { |
---|
516 | 390 | rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1; |
---|
517 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
518 | | - "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"); |
---|
| 391 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 392 | + "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"); |
---|
519 | 393 | } else if ((undec_sm_pwdb < |
---|
520 | 394 | (TX_POWER_NEAR_FIELD_THRESH_LVL2 - 3)) && |
---|
521 | 395 | (undec_sm_pwdb >= |
---|
522 | 396 | TX_POWER_NEAR_FIELD_THRESH_LVL1)) { |
---|
523 | 397 | rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1; |
---|
524 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
525 | | - "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n"); |
---|
| 398 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 399 | + "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x10)\n"); |
---|
526 | 400 | } else if (undec_sm_pwdb < |
---|
527 | 401 | (TX_POWER_NEAR_FIELD_THRESH_LVL1 - 5)) { |
---|
528 | 402 | rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL; |
---|
529 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
530 | | - "TXHIGHPWRLEVEL_NORMAL\n"); |
---|
| 403 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 404 | + "TXHIGHPWRLEVEL_NORMAL\n"); |
---|
531 | 405 | } |
---|
532 | 406 | |
---|
533 | 407 | if (rtlpriv->dm.dynamic_txhighpower_lvl != rtlpriv->dm.last_dtp_lvl) { |
---|
534 | | - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
535 | | - "PHY_SetTxPowerLevel8192S() Channel = %d\n", |
---|
536 | | - rtlphy->current_channel); |
---|
| 408 | + rtl_dbg(rtlpriv, COMP_POWER, DBG_LOUD, |
---|
| 409 | + "PHY_SetTxPowerLevel8192S() Channel = %d\n", |
---|
| 410 | + rtlphy->current_channel); |
---|
537 | 411 | rtl8723e_phy_set_txpower_level(hw, rtlphy->current_channel); |
---|
538 | 412 | } |
---|
539 | 413 | |
---|
.. | .. |
---|
545 | 419 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
---|
546 | 420 | struct dig_t *dm_digtable = &rtlpriv->dm_digtable; |
---|
547 | 421 | |
---|
548 | | - RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, |
---|
549 | | - "cur_igvalue = 0x%x, pre_igvalue = 0x%x, back_val = %d\n", |
---|
550 | | - dm_digtable->cur_igvalue, dm_digtable->pre_igvalue, |
---|
551 | | - dm_digtable->back_val); |
---|
| 422 | + rtl_dbg(rtlpriv, COMP_DIG, DBG_LOUD, |
---|
| 423 | + "cur_igvalue = 0x%x, pre_igvalue = 0x%x, back_val = %d\n", |
---|
| 424 | + dm_digtable->cur_igvalue, dm_digtable->pre_igvalue, |
---|
| 425 | + dm_digtable->back_val); |
---|
552 | 426 | |
---|
553 | 427 | if (dm_digtable->pre_igvalue != dm_digtable->cur_igvalue) { |
---|
554 | 428 | rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f, |
---|
.. | .. |
---|
647 | 521 | rtlpriv->dm.txpower_tracking = true; |
---|
648 | 522 | rtlpriv->dm.txpower_trackinginit = false; |
---|
649 | 523 | |
---|
650 | | - RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, |
---|
651 | | - "pMgntInfo->txpower_tracking = %d\n", |
---|
652 | | - rtlpriv->dm.txpower_tracking); |
---|
| 524 | + rtl_dbg(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, |
---|
| 525 | + "pMgntInfo->txpower_tracking = %d\n", |
---|
| 526 | + rtlpriv->dm.txpower_tracking); |
---|
653 | 527 | } |
---|
654 | 528 | |
---|
655 | 529 | static void rtl8723e_dm_initialize_txpower_tracking(struct ieee80211_hw *hw) |
---|
.. | .. |
---|
665 | 539 | void rtl8723e_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw) |
---|
666 | 540 | { |
---|
667 | 541 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
---|
668 | | - struct rate_adaptive *p_ra = &(rtlpriv->ra); |
---|
| 542 | + struct rate_adaptive *p_ra = &rtlpriv->ra; |
---|
669 | 543 | |
---|
670 | 544 | p_ra->ratr_state = DM_RATR_STA_INIT; |
---|
671 | 545 | p_ra->pre_ratr_state = DM_RATR_STA_INIT; |
---|
.. | .. |
---|
675 | 549 | else |
---|
676 | 550 | rtlpriv->dm.useramask = false; |
---|
677 | 551 | |
---|
| 552 | +} |
---|
| 553 | + |
---|
| 554 | +static void rtl8723e_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw) |
---|
| 555 | +{ |
---|
| 556 | + struct rtl_priv *rtlpriv = rtl_priv(hw); |
---|
| 557 | + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); |
---|
| 558 | + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); |
---|
| 559 | + struct rate_adaptive *p_ra = &rtlpriv->ra; |
---|
| 560 | + u32 low_rssithresh_for_ra, high_rssithresh_for_ra; |
---|
| 561 | + struct ieee80211_sta *sta = NULL; |
---|
| 562 | + |
---|
| 563 | + if (is_hal_stop(rtlhal)) { |
---|
| 564 | + rtl_dbg(rtlpriv, COMP_RATE, DBG_LOUD, |
---|
| 565 | + " driver is going to unload\n"); |
---|
| 566 | + return; |
---|
| 567 | + } |
---|
| 568 | + |
---|
| 569 | + if (!rtlpriv->dm.useramask) { |
---|
| 570 | + rtl_dbg(rtlpriv, COMP_RATE, DBG_LOUD, |
---|
| 571 | + " driver does not control rate adaptive mask\n"); |
---|
| 572 | + return; |
---|
| 573 | + } |
---|
| 574 | + |
---|
| 575 | + if (mac->link_state == MAC80211_LINKED && |
---|
| 576 | + mac->opmode == NL80211_IFTYPE_STATION) { |
---|
| 577 | + switch (p_ra->pre_ratr_state) { |
---|
| 578 | + case DM_RATR_STA_HIGH: |
---|
| 579 | + high_rssithresh_for_ra = 50; |
---|
| 580 | + low_rssithresh_for_ra = 20; |
---|
| 581 | + break; |
---|
| 582 | + case DM_RATR_STA_MIDDLE: |
---|
| 583 | + high_rssithresh_for_ra = 55; |
---|
| 584 | + low_rssithresh_for_ra = 20; |
---|
| 585 | + break; |
---|
| 586 | + case DM_RATR_STA_LOW: |
---|
| 587 | + high_rssithresh_for_ra = 60; |
---|
| 588 | + low_rssithresh_for_ra = 25; |
---|
| 589 | + break; |
---|
| 590 | + default: |
---|
| 591 | + high_rssithresh_for_ra = 50; |
---|
| 592 | + low_rssithresh_for_ra = 20; |
---|
| 593 | + break; |
---|
| 594 | + } |
---|
| 595 | + |
---|
| 596 | + if (rtlpriv->link_info.bcn_rx_inperiod == 0) |
---|
| 597 | + switch (p_ra->pre_ratr_state) { |
---|
| 598 | + case DM_RATR_STA_HIGH: |
---|
| 599 | + default: |
---|
| 600 | + p_ra->ratr_state = DM_RATR_STA_MIDDLE; |
---|
| 601 | + break; |
---|
| 602 | + case DM_RATR_STA_MIDDLE: |
---|
| 603 | + case DM_RATR_STA_LOW: |
---|
| 604 | + p_ra->ratr_state = DM_RATR_STA_LOW; |
---|
| 605 | + break; |
---|
| 606 | + } |
---|
| 607 | + else if (rtlpriv->dm.undec_sm_pwdb > high_rssithresh_for_ra) |
---|
| 608 | + p_ra->ratr_state = DM_RATR_STA_HIGH; |
---|
| 609 | + else if (rtlpriv->dm.undec_sm_pwdb > low_rssithresh_for_ra) |
---|
| 610 | + p_ra->ratr_state = DM_RATR_STA_MIDDLE; |
---|
| 611 | + else |
---|
| 612 | + p_ra->ratr_state = DM_RATR_STA_LOW; |
---|
| 613 | + |
---|
| 614 | + if (p_ra->pre_ratr_state != p_ra->ratr_state) { |
---|
| 615 | + rtl_dbg(rtlpriv, COMP_RATE, DBG_LOUD, |
---|
| 616 | + "RSSI = %ld\n", |
---|
| 617 | + rtlpriv->dm.undec_sm_pwdb); |
---|
| 618 | + rtl_dbg(rtlpriv, COMP_RATE, DBG_LOUD, |
---|
| 619 | + "RSSI_LEVEL = %d\n", p_ra->ratr_state); |
---|
| 620 | + rtl_dbg(rtlpriv, COMP_RATE, DBG_LOUD, |
---|
| 621 | + "PreState = %d, CurState = %d\n", |
---|
| 622 | + p_ra->pre_ratr_state, p_ra->ratr_state); |
---|
| 623 | + |
---|
| 624 | + rcu_read_lock(); |
---|
| 625 | + sta = rtl_find_sta(hw, mac->bssid); |
---|
| 626 | + if (sta) |
---|
| 627 | + rtlpriv->cfg->ops->update_rate_tbl(hw, sta, |
---|
| 628 | + p_ra->ratr_state, |
---|
| 629 | + true); |
---|
| 630 | + rcu_read_unlock(); |
---|
| 631 | + |
---|
| 632 | + p_ra->pre_ratr_state = p_ra->ratr_state; |
---|
| 633 | + } |
---|
| 634 | + } |
---|
678 | 635 | } |
---|
679 | 636 | |
---|
680 | 637 | void rtl8723e_dm_rf_saving(struct ieee80211_hw *hw, u8 bforce_in_normal) |
---|
.. | .. |
---|
759 | 716 | if (((mac->link_state == MAC80211_NOLINK)) && |
---|
760 | 717 | (rtlpriv->dm.entry_min_undec_sm_pwdb == 0)) { |
---|
761 | 718 | dm_pstable->rssi_val_min = 0; |
---|
762 | | - RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
763 | | - "Not connected to any\n"); |
---|
| 719 | + rtl_dbg(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
| 720 | + "Not connected to any\n"); |
---|
764 | 721 | } |
---|
765 | 722 | |
---|
766 | 723 | if (mac->link_state == MAC80211_LINKED) { |
---|
767 | 724 | if (mac->opmode == NL80211_IFTYPE_ADHOC) { |
---|
768 | 725 | dm_pstable->rssi_val_min = |
---|
769 | 726 | rtlpriv->dm.entry_min_undec_sm_pwdb; |
---|
770 | | - RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
771 | | - "AP Client PWDB = 0x%lx\n", |
---|
772 | | - dm_pstable->rssi_val_min); |
---|
| 727 | + rtl_dbg(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
| 728 | + "AP Client PWDB = 0x%lx\n", |
---|
| 729 | + dm_pstable->rssi_val_min); |
---|
773 | 730 | } else { |
---|
774 | 731 | dm_pstable->rssi_val_min = |
---|
775 | 732 | rtlpriv->dm.undec_sm_pwdb; |
---|
776 | | - RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
777 | | - "STA Default Port PWDB = 0x%lx\n", |
---|
778 | | - dm_pstable->rssi_val_min); |
---|
| 733 | + rtl_dbg(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
| 734 | + "STA Default Port PWDB = 0x%lx\n", |
---|
| 735 | + dm_pstable->rssi_val_min); |
---|
779 | 736 | } |
---|
780 | 737 | } else { |
---|
781 | 738 | dm_pstable->rssi_val_min = |
---|
782 | 739 | rtlpriv->dm.entry_min_undec_sm_pwdb; |
---|
783 | 740 | |
---|
784 | | - RT_TRACE(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
785 | | - "AP Ext Port PWDB = 0x%lx\n", |
---|
786 | | - dm_pstable->rssi_val_min); |
---|
| 741 | + rtl_dbg(rtlpriv, DBG_LOUD, DBG_LOUD, |
---|
| 742 | + "AP Ext Port PWDB = 0x%lx\n", |
---|
| 743 | + dm_pstable->rssi_val_min); |
---|
787 | 744 | } |
---|
788 | 745 | |
---|
789 | 746 | rtl8723e_dm_rf_saving(hw, false); |
---|
.. | .. |
---|
826 | 783 | rtl8723e_dm_dynamic_bb_powersaving(hw); |
---|
827 | 784 | rtl8723e_dm_dynamic_txpower(hw); |
---|
828 | 785 | rtl8723e_dm_check_txpower_tracking(hw); |
---|
829 | | - /* rtl92c_dm_refresh_rate_adaptive_mask(hw); */ |
---|
| 786 | + rtl8723e_dm_refresh_rate_adaptive_mask(hw); |
---|
830 | 787 | rtl8723e_dm_bt_coexist(hw); |
---|
831 | 788 | rtl8723e_dm_check_edca_turbo(hw); |
---|
832 | 789 | } |
---|
.. | .. |
---|
863 | 820 | struct rtl_priv *rtlpriv = rtl_priv(hw); |
---|
864 | 821 | u8 tmp_byte = 0; |
---|
865 | 822 | if (!rtlpriv->btcoexist.bt_coexistence) { |
---|
866 | | - RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, |
---|
867 | | - "[DM]{BT], BT not exist!!\n"); |
---|
| 823 | + rtl_dbg(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, |
---|
| 824 | + "[DM]{BT], BT not exist!!\n"); |
---|
868 | 825 | return; |
---|
869 | 826 | } |
---|
870 | 827 | |
---|
871 | 828 | if (!rtlpriv->btcoexist.init_set) { |
---|
872 | | - RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, |
---|
873 | | - "[DM][BT], rtl8723e_dm_bt_coexist()\n"); |
---|
| 829 | + rtl_dbg(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, |
---|
| 830 | + "[DM][BT], %s\n", __func__); |
---|
874 | 831 | rtl8723e_dm_init_bt_coexist(hw); |
---|
875 | 832 | } |
---|
876 | 833 | |
---|
877 | 834 | tmp_byte = rtl_read_byte(rtlpriv, 0x40); |
---|
878 | | - RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, |
---|
879 | | - "[DM][BT], 0x40 is 0x%x\n", tmp_byte); |
---|
880 | | - RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_DMESG, |
---|
881 | | - "[DM][BT], bt_dm_coexist start\n"); |
---|
| 835 | + rtl_dbg(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, |
---|
| 836 | + "[DM][BT], 0x40 is 0x%x\n", tmp_byte); |
---|
| 837 | + rtl_dbg(rtlpriv, COMP_BT_COEXIST, DBG_DMESG, |
---|
| 838 | + "[DM][BT], bt_dm_coexist start\n"); |
---|
882 | 839 | rtl8723e_dm_bt_coexist_8723(hw); |
---|
883 | 840 | } |
---|