net: wireless: rockchip_wlan: add rtl8723ds support
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / rtl8723ds / hal / phydm / phydm_powertracking_ap.c
1 /******************************************************************************\r
2  *\r
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.\r
4  *                                        \r
5  * This program is free software; you can redistribute it and/or modify it\r
6  * under the terms of version 2 of the GNU General Public License as\r
7  * published by the Free Software Foundation.\r
8  *\r
9  * This program is distributed in the hope that it will be useful, but WITHOUT\r
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
11  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
12  * more details.\r
13  *\r
14  * You should have received a copy of the GNU General Public License along with\r
15  * this program; if not, write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA\r
17  *\r
18  *\r
19  ******************************************************************************/\r
20 \r
21 //============================================================\r
22 // include files\r
23 //============================================================\r
24 #include "mp_precomp.h"\r
25 #include "phydm_precomp.h"\r
26 \r
27 #if !defined(_OUTSRC_COEXIST)\r
28 //============================================================\r
29 // Global var\r
30 //============================================================\r
31 \r
32 \r
33 u4Byte OFDMSwingTable_New[OFDM_TABLE_SIZE_92D] = {\r
34         0x0b40002d, // 0,  -15.0dB      \r
35         0x0c000030, // 1,  -14.5dB\r
36         0x0cc00033, // 2,  -14.0dB\r
37         0x0d800036, // 3,  -13.5dB\r
38         0x0e400039, // 4,  -13.0dB    \r
39         0x0f00003c, // 5,  -12.5dB\r
40         0x10000040, // 6,  -12.0dB\r
41         0x11000044, // 7,  -11.5dB\r
42         0x12000048, // 8,  -11.0dB\r
43         0x1300004c, // 9,  -10.5dB\r
44         0x14400051, // 10, -10.0dB\r
45         0x15800056, // 11, -9.5dB\r
46         0x16c0005b, // 12, -9.0dB\r
47         0x18000060, // 13, -8.5dB\r
48         0x19800066, // 14, -8.0dB\r
49         0x1b00006c, // 15, -7.5dB\r
50         0x1c800072, // 16, -7.0dB\r
51         0x1e400079, // 17, -6.5dB\r
52         0x20000080, // 18, -6.0dB\r
53         0x22000088, // 19, -5.5dB\r
54         0x24000090, // 20, -5.0dB\r
55         0x26000098, // 21, -4.5dB\r
56         0x288000a2, // 22, -4.0dB\r
57         0x2ac000ab, // 23, -3.5dB\r
58         0x2d4000b5, // 24, -3.0dB\r
59         0x300000c0, // 25, -2.5dB\r
60         0x32c000cb, // 26, -2.0dB\r
61         0x35c000d7, // 27, -1.5dB\r
62         0x390000e4, // 28, -1.0dB\r
63         0x3c8000f2, // 29, -0.5dB\r
64         0x40000100, // 30, +0dB\r
65         0x43c0010f, // 31, +0.5dB\r
66         0x47c0011f, // 32, +1.0dB\r
67         0x4c000130, // 33, +1.5dB\r
68         0x50800142, // 34, +2.0dB\r
69         0x55400155, // 35, +2.5dB\r
70         0x5a400169, // 36, +3.0dB\r
71         0x5fc0017f, // 37, +3.5dB\r
72         0x65400195, // 38, +4.0dB\r
73         0x6b8001ae, // 39, +4.5dB\r
74         0x71c001c7, // 40, +5.0dB\r
75         0x788001e2, // 41, +5.5dB\r
76         0x7f8001fe  // 42, +6.0dB\r
77 };               \r
78 \r
79 u1Byte CCKSwingTable_Ch1_Ch13_New[CCK_TABLE_SIZE][8] = {\r
80         {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01},       //  0, -16.0dB\r
81         {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01},       //  1, -15.5dB\r
82         {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01},       //  2, -15.0dB\r
83         {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01},       //  3, -14.5dB\r
84         {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01},       //  4, -14.0dB\r
85         {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01},       //  5, -13.5dB\r
86         {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01},       //  6, -13.0dB\r
87         {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01},       //  7, -12.5dB\r
88         {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01},       //  8, -12.0dB\r
89         {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01},       //  9, -11.5dB\r
90         {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01},       // 10, -11.0dB\r
91         {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01},       // 11, -10.5dB\r
92         {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},       // 12, -10.0dB\r
93         {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},       // 13, -9.5dB\r
94         {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01},       // 14, -9.0dB \r
95         {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02},       // 15, -8.5dB\r
96         {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01},       // 16, -8.0dB \r
97         {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02},       // 17, -7.5dB\r
98         {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02},       // 18, -7.0dB \r
99         {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02},       // 19, -6.5dB\r
100         {0x1c, 0x1a, 0x18, 0x12, 0x0e, 0x08, 0x04, 0x02},       // 20, -6.0dB \r
101         {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02},       // 21, -5.5dB\r
102         {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02},       // 22, -5.0dB \r
103         {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02},       // 23, -4.5dB\r
104         {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02},       // 24, -4.0dB \r
105         {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03},       // 25, -3.5dB\r
106         {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03},       // 26, -3.0dB\r
107         {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03},       // 27, -2.5dB\r
108         {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03},       // 28, -2.0dB \r
109         {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03},       // 29, -1.5dB\r
110         {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03},       // 30, -1.0dB\r
111         {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04},       // 31, -0.5dB\r
112         {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}        // 32, +0dB\r
113 };                                                                  \r
114 \r
115 \r
116 u1Byte CCKSwingTable_Ch14_New[CCK_TABLE_SIZE][8]= {\r
117         {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00},       //  0, -16.0dB\r
118         {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00},       //  1, -15.5dB\r
119         {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00},       //  2, -15.0dB\r
120         {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00},       //  3, -14.5dB\r
121         {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00},       //  4, -14.0dB\r
122         {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00},       //  5, -13.5dB\r
123         {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00},       //  6, -13.0dB\r
124         {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00},       //  7, -12.5dB\r
125         {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00},       //  8, -12.0dB\r
126         {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00},       //  9, -11.5dB\r
127         {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00},       // 10, -11.0dB\r
128         {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00},       // 11, -10.5dB\r
129         {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},       // 12, -10.0dB\r
130         {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},       // 13, -9.5dB\r
131         {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00},       // 14, -9.0dB  \r
132         {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00},       // 15, -8.5dB\r
133         {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00},       // 16, -8.0dB  \r
134         {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00},       // 17, -7.5dB\r
135         {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00},       // 18, -7.0dB  \r
136         {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00},       // 19, -6.5dB \r
137         {0x1c, 0x1a, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00},       // 20, -6.0dB  \r
138         {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00},       // 21, -5.5dB\r
139         {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00},       // 22, -5.0dB  \r
140         {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00},       // 23, -4.5dB\r
141         {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00},       // 24, -4.0dB  \r
142         {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00},       // 25, -3.5dB  \r
143         {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00},       // 26, -3.0dB  \r
144         {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00},       // 27, -2.5dB\r
145         {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00},       // 28, -2.0dB  \r
146         {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00},       // 29, -1.5dB\r
147         {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00},       // 30, -1.0dB  \r
148         {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00},       // 31, -0.5dB \r
149         {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}        // 32, +0dB     \r
150 };\r
151 \r
152 u4Byte OFDMSwingTable[OFDM_TABLE_SIZE_92D] = {\r
153         0x0b40002d, // 0,  -15.0dB      \r
154         0x0c000030, // 1,  -14.5dB\r
155         0x0cc00033, // 2,  -14.0dB\r
156         0x0d800036, // 3,  -13.5dB\r
157         0x0e400039, // 4,  -13.0dB    \r
158         0x0f00003c, // 5,  -12.5dB\r
159         0x10000040, // 6,  -12.0dB\r
160         0x11000044, // 7,  -11.5dB\r
161         0x12000048, // 8,  -11.0dB\r
162         0x1300004c, // 9,  -10.5dB\r
163         0x14400051, // 10, -10.0dB\r
164         0x15800056, // 11, -9.5dB\r
165         0x16c0005b, // 12, -9.0dB\r
166         0x18000060, // 13, -8.5dB\r
167         0x19800066, // 14, -8.0dB\r
168         0x1b00006c, // 15, -7.5dB\r
169         0x1c800072, // 16, -7.0dB\r
170         0x1e400079, // 17, -6.5dB\r
171         0x20000080, // 18, -6.0dB\r
172         0x22000088, // 19, -5.5dB\r
173         0x24000090, // 20, -5.0dB\r
174         0x26000098, // 21, -4.5dB\r
175         0x288000a2, // 22, -4.0dB\r
176         0x2ac000ab, // 23, -3.5dB\r
177         0x2d4000b5, // 24, -3.0dB\r
178         0x300000c0, // 25, -2.5dB\r
179         0x32c000cb, // 26, -2.0dB\r
180         0x35c000d7, // 27, -1.5dB\r
181         0x390000e4, // 28, -1.0dB\r
182         0x3c8000f2, // 29, -0.5dB\r
183         0x40000100, // 30, +0dB\r
184         0x43c0010f, // 31, +0.5dB\r
185         0x47c0011f, // 32, +1.0dB\r
186         0x4c000130, // 33, +1.5dB\r
187         0x50800142, // 34, +2.0dB\r
188         0x55400155, // 35, +2.5dB\r
189         0x5a400169, // 36, +3.0dB\r
190         0x5fc0017f, // 37, +3.5dB\r
191         0x65400195, // 38, +4.0dB\r
192         0x6b8001ae, // 39, +4.5dB\r
193         0x71c001c7, // 40, +5.0dB\r
194         0x788001e2, // 41, +5.5dB\r
195         0x7f8001fe  // 42, +6.0dB\r
196 };               \r
197 \r
198 \r
199 u1Byte CCKSwingTable_Ch1_Ch13[CCK_TABLE_SIZE][8] = {\r
200         {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01},       //  0, -16.0dB\r
201         {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01},       //  1, -15.5dB\r
202         {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01},       //  2, -15.0dB\r
203         {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01},       //  3, -14.5dB\r
204         {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01},       //  4, -14.0dB\r
205         {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01},       //  5, -13.5dB\r
206         {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01},       //  6, -13.0dB\r
207         {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01},       //  7, -12.5dB\r
208         {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01},       //  8, -12.0dB\r
209         {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01},       //  9, -11.5dB\r
210         {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01},       // 10, -11.0dB\r
211         {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01},       // 11, -10.5dB\r
212         {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},       // 12, -10.0dB\r
213         {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},       // 13, -9.5dB\r
214         {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01},       // 14, -9.0dB \r
215         {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02},       // 15, -8.5dB\r
216         {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01},       // 16, -8.0dB \r
217         {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02},       // 17, -7.5dB\r
218         {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02},       // 18, -7.0dB \r
219         {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02},       // 19, -6.5dB\r
220         {0x1c, 0x1a, 0x18, 0x12, 0x0e, 0x08, 0x04, 0x02},       // 20, -6.0dB \r
221         {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02},       // 21, -5.5dB\r
222         {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02},       // 22, -5.0dB \r
223         {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02},       // 23, -4.5dB\r
224         {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02},       // 24, -4.0dB \r
225         {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03},       // 25, -3.5dB\r
226         {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03},       // 26, -3.0dB\r
227         {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03},       // 27, -2.5dB\r
228         {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03},       // 28, -2.0dB \r
229         {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03},       // 29, -1.5dB\r
230         {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03},       // 30, -1.0dB\r
231         {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04},       // 31, -0.5dB\r
232         {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04}        // 32, +0dB\r
233 };                                                                  \r
234 \r
235 \r
236 u1Byte CCKSwingTable_Ch14 [CCK_TABLE_SIZE][8]= {\r
237         {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00},       //  0, -16.0dB\r
238         {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00},       //  1, -15.5dB\r
239         {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00},       //  2, -15.0dB\r
240         {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00},       //  3, -14.5dB\r
241         {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00},       //  4, -14.0dB\r
242         {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00},       //  5, -13.5dB\r
243         {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00},       //  6, -13.0dB\r
244         {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00},       //  7, -12.5dB\r
245         {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00},       //  8, -12.0dB\r
246         {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00},       //  9, -11.5dB\r
247         {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00},       // 10, -11.0dB\r
248         {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00},       // 11, -10.5dB\r
249         {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},       // 12, -10.0dB\r
250         {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},       // 13, -9.5dB\r
251         {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00},       // 14, -9.0dB  \r
252         {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00},       // 15, -8.5dB\r
253         {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00},       // 16, -8.0dB  \r
254         {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00},       // 17, -7.5dB\r
255         {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00},       // 18, -7.0dB  \r
256         {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00},       // 19, -6.5dB \r
257         {0x1c, 0x1a, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00},       // 20, -6.0dB  \r
258         {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00},       // 21, -5.5dB\r
259         {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00},       // 22, -5.0dB  \r
260         {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00},       // 23, -4.5dB\r
261         {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00},       // 24, -4.0dB  \r
262         {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00},       // 25, -3.5dB  \r
263         {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00},       // 26, -3.0dB  \r
264         {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00},       // 27, -2.5dB\r
265         {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00},       // 28, -2.0dB  \r
266         {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00},       // 29, -1.5dB\r
267         {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00},       // 30, -1.0dB  \r
268         {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00},       // 31, -0.5dB \r
269         {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00}        // 32, +0dB     \r
270 };\r
271 \r
272 u1Byte CCKSwingTable_Ch1_Ch14_88F[CCK_TABLE_SIZE_88F][16] = {\r
273 {0x16, 0x15, 0x13, 0x10, 0xD, 0x9, 0x6, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 0  -16dB */\r
274 {0x18, 0x17, 0x15, 0x12, 0xE, 0xA, 0x7, 0x4, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 1  -15.5dB */\r
275 {0x1B, 0x1A, 0x18, 0x14, 0x10, 0xB, 0x7, 0x4, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 2  -15dB */\r
276 {0x1F, 0x1E, 0x1B, 0x17, 0x12, 0xD, 0x8, 0x5, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 3  -14.5dB */\r
277 {0x22, 0x21, 0x1E, 0x19, 0x14, 0xE, 0x9, 0x5, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 4  -14dB */\r
278 {0x26, 0x25, 0x22, 0x1C, 0x16, 0x10, 0xA, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 5  -13.5dB */\r
279 {0x2B, 0x2A, 0x26, 0x20, 0x19, 0x12, 0xC, 0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 6  -13dB */\r
280 {0x30, 0x2F, 0x2A, 0x24, 0x1C, 0x14, 0xD, 0x8, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 7  -12.5dB */\r
281 {0x36, 0x34, 0x2F, 0x28, 0x1F, 0x17, 0xF, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 8  -12dB */\r
282 {0x3D, 0x3B, 0x35, 0x2D, 0x23, 0x19, 0x11, 0xA, 0x5, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 9  -11.5dB */\r
283 {0x44, 0x42, 0x3C, 0x33, 0x28, 0x1C, 0x13, 0xB, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 10  -11dB */\r
284 {0x4D, 0x4A, 0x43, 0x39, 0x2C, 0x20, 0x15, 0xC, 0x6, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 11  -10.5dB */\r
285 {0x56, 0x53, 0x4B, 0x40, 0x32, 0x24, 0x17, 0xE, 0x6, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 12  -10dB */\r
286 {0x60, 0x5D, 0x54, 0x47, 0x38, 0x28, 0x1A, 0xF, 0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 13  -9.5dB */\r
287 {0x6C, 0x69, 0x5F, 0x50, 0x3F, 0x2D, 0x1E, 0x11, 0x8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 14  -9dB */\r
288 {0x79, 0x76, 0x6A, 0x5A, 0x46, 0x33, 0x21, 0x13, 0x9, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 15  -8.5dB */\r
289 {0x88, 0x84, 0x77, 0x65, 0x4F, 0x39, 0x25, 0x15, 0xA, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 16  -8dB */\r
290 {0x99, 0x94, 0x86, 0x71, 0x58, 0x40, 0x2A, 0x18, 0xB, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 17  -7.5dB */\r
291 {0xAC, 0xA6, 0x96, 0x7F, 0x63, 0x47, 0x2F, 0x1B, 0xD, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 18  -7dB */\r
292 {0xC1, 0xBA, 0xA8, 0x8F, 0x6F, 0x50, 0x35, 0x1E, 0xE, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 19  -6.5dB */\r
293 {0xD8, 0xD1, 0xBD, 0xA0, 0x7D, 0x5A, 0x3B, 0x22, 0x10, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}      /* 20  -6dB */\r
294 };\r
295 \r
296 \r
297 u1Byte CCKSwingTable_Ch1_Ch13_88F[CCK_TABLE_SIZE_88F][16] = {\r
298 {0x16, 0x15, 0x13, 0x10, 0xD, 0x9, 0x6, 0x3, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 0  -16dB */\r
299 {0x18, 0x17, 0x15, 0x12, 0xE, 0xA, 0x7, 0x4, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 1  -15.5dB */\r
300 {0x1B, 0x1A, 0x18, 0x14, 0x10, 0xB, 0x7, 0x4, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 2  -15dB */\r
301 {0x1F, 0x1E, 0x1B, 0x17, 0x12, 0xD, 0x8, 0x5, 0x2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 3  -14.5dB */\r
302 {0x22, 0x21, 0x1E, 0x19, 0x14, 0xE, 0x9, 0x5, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 4  -14dB */\r
303 {0x26, 0x25, 0x22, 0x1C, 0x16, 0x10, 0xA, 0x6, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 5  -13.5dB */\r
304 {0x2B, 0x2A, 0x26, 0x20, 0x19, 0x12, 0xC, 0x7, 0x3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 6  -13dB */\r
305 {0x30, 0x2F, 0x2A, 0x24, 0x1C, 0x14, 0xD, 0x8, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 7  -12.5dB */\r
306 {0x36, 0x34, 0x2F, 0x28, 0x1F, 0x17, 0xF, 0x9, 0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 8  -12dB */\r
307 {0x3D, 0x3B, 0x35, 0x2D, 0x23, 0x19, 0x11, 0xA, 0x5, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 9  -11.5dB */\r
308 {0x44, 0x42, 0x3C, 0x33, 0x28, 0x1C, 0x13, 0xB, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 10  -11dB */\r
309 {0x4D, 0x4A, 0x43, 0x39, 0x2C, 0x20, 0x15, 0xC, 0x6, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 11  -10.5dB */\r
310 {0x56, 0x53, 0x4B, 0x40, 0x32, 0x24, 0x17, 0xE, 0x6, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 12  -10dB */\r
311 {0x60, 0x5D, 0x54, 0x47, 0x38, 0x28, 0x1A, 0xF, 0x7, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 13  -9.5dB */\r
312 {0x6C, 0x69, 0x5F, 0x50, 0x3F, 0x2D, 0x1E, 0x11, 0x8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 14  -9dB */\r
313 {0x79, 0x76, 0x6A, 0x5A, 0x46, 0x33, 0x21, 0x13, 0x9, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 15  -8.5dB */\r
314 {0x88, 0x84, 0x77, 0x65, 0x4F, 0x39, 0x25, 0x15, 0xA, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 16  -8dB */\r
315 {0x99, 0x94, 0x86, 0x71, 0x58, 0x40, 0x2A, 0x18, 0xB, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 17  -7.5dB */\r
316 {0xAC, 0xA6, 0x96, 0x7F, 0x63, 0x47, 0x2F, 0x1B, 0xD, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 18  -7dB */\r
317 {0xC1, 0xBA, 0xA8, 0x8F, 0x6F, 0x50, 0x35, 0x1E, 0xE, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},        /* 19  -6.5dB */\r
318 {0xD8, 0xD1, 0xBD, 0xA0, 0x7D, 0x5A, 0x3B, 0x22, 0x10, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}      /* 20  -6dB */\r
319 };\r
320 \r
321 \r
322 u1Byte CCKSwingTable_Ch14_88F[CCK_TABLE_SIZE_88F][16] = {\r
323 {0x44,   0x42, 0x3C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-16dB*/\r
324 {0x48, 0x46, 0x3F, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-15.5dB*/\r
325 {0x4D, 0x4A, 0x43, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-15dB*/\r
326 {0x51, 0x4F, 0x47, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},           /*-14.5dB*/\r
327 {0x56, 0x53, 0x4B, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-14dB*/\r
328 {0x5B, 0x58, 0x50, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-13.5dB*/\r
329 {0x60, 0x5D, 0x54, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-13dB*/\r
330 {0x66, 0x63, 0x59, 0x3B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-12.5dB*/\r
331 {0x6C, 0x69, 0x5F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-12dB*/\r
332 {0x73, 0x6F, 0x64, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-11.5dB*/\r
333 {0x79, 0x76, 0x6A, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-11dB*/\r
334 {0x81, 0x7C, 0x71, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-10.5dB*/\r
335 {0x88, 0x84, 0x77, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-10dB*/\r
336 {0x90, 0x8C, 0x7E, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-9.5dB*/\r
337 {0x99, 0x94, 0x86, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-9dB*/\r
338 {0xA2, 0x9D, 0x8E, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-8.5dB*/\r
339 {0xAC, 0xA6, 0x96, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-8dB*/\r
340 {0xB6, 0xB0, 0x9F, 0x69, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-7.5dB*/\r
341 {0xC1, 0xBA, 0xA8, 0x6F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-7dB*/\r
342 {0xCC, 0xC5, 0xB2, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},    /*-6.5dB*/\r
343 {0xD8, 0xD1, 0xBD, 0x7D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}     /*-6dB*/\r
344 };\r
345 \r
346 \r
347 \r
348 #if 0\r
349 u4Byte OFDMSwingTable_92E[OFDM_TABLE_SIZE_92E] = {\r
350         /* Index0   6  dB */ 0x7fc001ff,\r
351         /* Index1   5.7dB */ 0x7b4001ed,\r
352         /* Index2   5.4dB */ 0x774001dd,\r
353         /* Index3   5.1dB */ 0x734001cd,\r
354         /* Index4   4.8dB */ 0x6f4001bd,\r
355         /* Index5   4.5dB */ 0x6b8001ae,\r
356         /* Index6   4.2dB */ 0x67c0019f,\r
357         /* Index7   3.9dB */ 0x64400191,\r
358         /* Index8   3.6dB */ 0x60c00183,\r
359         /* Index9   3.3dB */ 0x5d800176,\r
360         /* Index10  3  dB */ 0x5a80016a,\r
361         /* Index11  2.7dB */ 0x5740015d,\r
362         /* Index12  2.4dB */ 0x54400151,\r
363         /* Index13  2.1dB */ 0x51800146,\r
364         /* Index14  1.8dB */ 0x4ec0013b,\r
365         /* Index15  1.5dB */ 0x4c000130,\r
366         /* Index16  1.2dB */ 0x49800126,\r
367         /* Index17  0.9dB */ 0x4700011c,\r
368         /* Index18  0.6dB */ 0x44800112,\r
369         /* Index19  0.3dB */ 0x42000108,\r
370         /* Index20  0  dB */ 0x40000100, // 20 This is OFDM base index\r
371         /* Index21 -0.3dB */ 0x3dc000f7,\r
372         /* Index22 -0.6dB */ 0x3bc000ef,\r
373         /* Index23 -0.9dB */ 0x39c000e7,\r
374         /* Index24 -1.2dB */ 0x37c000df,\r
375         /* Index25 -1.5dB */ 0x35c000d7,\r
376         /* Index26 -1.8dB */ 0x340000d0,\r
377         /* Index27 -2.1dB */ 0x324000c9,\r
378         /* Index28 -2.4dB */ 0x308000c2,\r
379         /* Index29 -2.7dB */ 0x2f0000bc,\r
380         /* Index30 -3  dB */ 0x2d4000b5,\r
381         /* Index31 -3.3dB */ 0x2bc000af,\r
382         /* Index32 -3.6dB */ 0x2a4000a9,\r
383         /* Index33 -3.9dB */ 0x28c000a3,\r
384         /* Index34 -4.2dB */ 0x2780009e,\r
385         /* Index35 -4.5dB */ 0x26000098,\r
386         /* Index36 -4.8dB */ 0x24c00093,\r
387         /* Index37 -5.1dB */ 0x2380008e,\r
388         /* Index38 -5.4dB */ 0x22400089,\r
389         /* Index39 -5.7dB */ 0x21400085,\r
390         /* Index40 -6  dB */ 0x20000080,\r
391         /* Index41 -6.3dB */ 0x1f00007c,\r
392         /* Index42 -6.6dB */ 0x1e000078,\r
393         /* Index43 -6.9dB */ 0x1d000074,\r
394         /* Index44 -7.2dB */ 0x1c000070,\r
395         /* Index45 -7.5dB */ 0x1b00006c,\r
396         /* Index46 -7.8dB */ 0x1a000068,\r
397         /* Index47 -8.1dB */ 0x19400065,\r
398         /* Index48 -8.4dB */ 0x18400061,\r
399         /* Index49 -8.7dB */ 0x1780005e,\r
400         /* Index50 -9  dB */ 0x16c0005b,\r
401         /* Index51 -9.3dB */ 0x16000058,\r
402         /* Index52 -9.6dB */ 0x15400055,\r
403         /* Index53 -9.9dB */ 0x14800052\r
404 };\r
405 u1Byte CCKSwingTable_Ch1_Ch13_92E[CCK_TABLE_SIZE_92E][8] = {\r
406         /* Index0    0  dB */    {0x36, 0x34 , 0x2E , 0x26 , 0x1C , 0x12 , 0x08 , 0x04},\r
407         /* Index1   -0.3dB */    {0x34, 0x32 , 0x2C , 0x25 , 0x1B , 0x11 , 0x08 , 0x04},\r
408         /* Index2   -0.6dB */    {0x32, 0x30 , 0x2B , 0x23 , 0x1A , 0x11 , 0x07 , 0x04},\r
409         /* Index3   -0.9dB */    {0x31, 0x2F , 0x29 , 0x22 , 0x19 , 0x10 , 0x07 , 0x04},\r
410         /* Index4   -1.2dB */    {0x2F, 0x2D , 0x28 , 0x21 , 0x18 , 0x10 , 0x07 , 0x03},\r
411         /* Index5   -1.5dB */    {0x2D, 0x2C , 0x27 , 0x20 , 0x18 , 0x0F , 0x07 , 0x03},\r
412         /* Index6   -1.8dB */    {0x2C, 0x2A , 0x25 , 0x1F , 0x17 , 0x0F , 0x06 , 0x03},\r
413         /* Index7   -2.1dB */    {0x2A, 0x29 , 0x24 , 0x1E , 0x16 , 0x0E , 0x06 , 0x03},\r
414         /* Index8   -2.4dB */    {0x29, 0x27 , 0x23 , 0x1D , 0x15 , 0x0E , 0x06 , 0x03},\r
415         /* Index9   -2.7dB */    {0x27, 0x26 , 0x22 , 0x1C , 0x14 , 0x0D , 0x06 , 0x03},\r
416         /* Index10  -3  dB */    {0x26, 0x25 , 0x20 , 0x1B , 0x14 , 0x0D , 0x06 , 0x03},\r
417         /* Index11  -3.3dB */    {0x25, 0x23 , 0x1F , 0x1A , 0x13 , 0x0C , 0x05 , 0x03},\r
418         /* Index12  -3.6dB */    {0x24, 0x22 , 0x1E , 0x19 , 0x12 , 0x0C , 0x05 , 0x03},\r
419         /* Index13  -3.9dB */    {0x22, 0x21 , 0x1D , 0x18 , 0x12 , 0x0B , 0x05 , 0x03},\r
420         /* Index14  -4.2dB */    {0x21, 0x20 , 0x1C , 0x17 , 0x11 , 0x0B , 0x05 , 0x02},\r
421         /* Index15  -4.5dB */    {0x20, 0x1F , 0x1B , 0x17 , 0x11 , 0x0B , 0x05 , 0x02},\r
422         /* Index16  -4.8dB */    {0x1F, 0x1E , 0x1A , 0x16 , 0x10 , 0x0A , 0x05 , 0x02},\r
423         /* Index17  -5.1dB */    {0x1E, 0x1D , 0x1A , 0x15 , 0x10 , 0x0A , 0x04 , 0x02},\r
424         /* Index18  -5.4dB */    {0x1D, 0x1C , 0x19 , 0x14 , 0x0F , 0x0A , 0x04 , 0x02},\r
425         /* Index19  -5.7dB */    {0x1C, 0x1B , 0x18 , 0x14 , 0x0E , 0x09 , 0x04 , 0x02},\r
426         /* Index20  -6.0dB */    {0x1B, 0x1A , 0x17 , 0x13 , 0x0E , 0x09 , 0x04 , 0x02}, // 20 This is CCK base index\r
427         /* Index21  -6.3dB */    {0x1A, 0x19 , 0x16 , 0x12 , 0x0E , 0x09 , 0x04 , 0x02},\r
428         /* Index22  -6.6dB */    {0x19, 0x18 , 0x15 , 0x12 , 0x0D , 0x08 , 0x04 , 0x02},\r
429         /* Index23  -6.9dB */    {0x18, 0x17 , 0x15 , 0x11 , 0x0D , 0x08 , 0x04 , 0x02},\r
430         /* Index24  -7.2dB */    {0x18, 0x17 , 0x14 , 0x11 , 0x0C , 0x08 , 0x03 , 0x02},\r
431         /* Index25  -7.5dB */    {0x17, 0x16 , 0x13 , 0x10 , 0x0C , 0x08 , 0x03 , 0x02},\r
432         /* Index26  -7.8dB */    {0x16, 0x15 , 0x13 , 0x0F , 0x0B , 0x07 , 0x03 , 0x02},\r
433         /* Index27  -8.1dB */    {0x15, 0x14 , 0x12 , 0x0F , 0x0B , 0x07 , 0x03 , 0x02},\r
434         /* Index28  -8.4dB */    {0x14, 0x14 , 0x11 , 0x0E , 0x0B , 0x07 , 0x03 , 0x02},\r
435         /* Index29  -8.7dB */    {0x14, 0x13 , 0x11 , 0x0E , 0x0A , 0x07 , 0x03 , 0x01},\r
436         /* Index30  -9.0dB */    {0x13, 0x12 , 0x10 , 0x0D , 0x0A , 0x06 , 0x03 , 0x01}, // 30 This is hp CCK base index\r
437         /* Index31  -9.3dB */    {0x12, 0x12 , 0x0F , 0x0D , 0x0A , 0x06 , 0x03 , 0x01},\r
438         /* Index32  -9.6dB */    {0x12, 0x11 , 0x0F , 0x0D , 0x09 , 0x06 , 0x03 , 0x01},\r
439         /* Index33  -9.9dB */    {0x11, 0x11 , 0x0F , 0x0C , 0x09 , 0x06 , 0x03 , 0x01},\r
440         /* Index34 -10.2dB */    {0x11, 0x11 , 0x0E , 0x0C , 0x09 , 0x06 , 0x02 , 0x01},\r
441         /* Index35 -10.5dB */    {0x10, 0x0F , 0x0E , 0x0B , 0x08 , 0x05 , 0x02 , 0x01},\r
442         /* Index36 -10.8dB */    {0x10, 0x0F , 0x0D , 0x0B , 0x08 , 0x05 , 0x02 , 0x01},\r
443         /* Index37 -11.1dB */    {0x0F, 0x0E , 0x0D , 0x0A , 0x08 , 0x05 , 0x02 , 0x01},\r
444         /* Index38 -11.4dB */    {0x0E, 0x0E , 0x0C , 0x0A , 0x07 , 0x05 , 0x02 , 0x01},\r
445         /* Index39 -11.7dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x07 , 0x05 , 0x02 , 0x01},\r
446         /* Index40 -12  dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x07 , 0x05 , 0x02 , 0x01},\r
447         /* Index41 -12.3dB */    {0x0D, 0x0D , 0x0B , 0x09 , 0x07 , 0x04 , 0x02 , 0x01},\r
448         /* Index42 -12.6dB */    {0x0D, 0x0C , 0x0B , 0x09 , 0x07 , 0x04 , 0x02 , 0x01},\r
449         /* Index43 -12.9dB */    {0x0C, 0x0C , 0x0A , 0x09 , 0x06 , 0x04 , 0x02 , 0x01},\r
450         /* Index44 -13.2dB */    {0x0C, 0x0B , 0x0A , 0x08 , 0x06 , 0x04 , 0x02 , 0x01},\r
451         /* Index45 -13.5dB */    {0x0B, 0x0B , 0x0A , 0x08 , 0x06 , 0x04 , 0x02 , 0x01},\r
452         /* Index46 -13.8dB */    {0x0B, 0x0B , 0x09 , 0x08 , 0x06 , 0x04 , 0x02 , 0x01},\r
453         /* Index47 -14.1dB */    {0x0B, 0x0A , 0x09 , 0x07 , 0x06 , 0x04 , 0x02 , 0x01},\r
454         /* Index48 -14.4dB */    {0x0A, 0x0A , 0x09 , 0x07 , 0x05 , 0x03 , 0x02 , 0x01},\r
455         /* Index49 -14.7dB */    {0x0A, 0x0A , 0x08 , 0x07 , 0x05 , 0x03 , 0x01 , 0x01},\r
456         /* Index50 -15  dB */    {0x0A, 0x09 , 0x08 , 0x07 , 0x05 , 0x03 , 0x01 , 0x01},\r
457         /* Index51 -15.3dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x05 , 0x03 , 0x01 , 0x01},\r
458         /* Index52 -15.6dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x05 , 0x03 , 0x01 , 0x01},\r
459         /* Index53 -15.9dB */    {0x09, 0x08 , 0x07 , 0x06 , 0x04 , 0x03 , 0x01 , 0x01}\r
460 };\r
461 u1Byte CCKSwingTable_Ch14_92E[CCK_TABLE_SIZE_92E][8] = {\r
462         /* Index0    0  dB */    {0x36, 0x34 , 0x2E , 0x26 , 0x00 , 0x00 , 0x00 , 0x00},\r
463         /* Index1   -0.3dB */    {0x34, 0x32 , 0x2C , 0x25 , 0x00 , 0x00 , 0x00 , 0x00},\r
464         /* Index2   -0.6dB */    {0x32, 0x30 , 0x2B , 0x23 , 0x00 , 0x00 , 0x00 , 0x00},\r
465         /* Index3   -0.9dB */    {0x31, 0x2F , 0x29 , 0x22 , 0x00 , 0x00 , 0x00 , 0x00},\r
466         /* Index4   -1.2dB */    {0x2F, 0x2D , 0x28 , 0x21 , 0x00 , 0x00 , 0x00 , 0x00},\r
467         /* Index5   -1.5dB */    {0x2D, 0x2C , 0x27 , 0x20 , 0x00 , 0x00 , 0x00 , 0x00},\r
468         /* Index6   -1.8dB */    {0x2C, 0x2A , 0x25 , 0x1F , 0x00 , 0x00 , 0x00 , 0x00},\r
469         /* Index7   -2.1dB */    {0x2A, 0x29 , 0x24 , 0x1E , 0x00 , 0x00 , 0x00 , 0x00},\r
470         /* Index8   -2.4dB */    {0x29, 0x27 , 0x23 , 0x1D , 0x00 , 0x00 , 0x00 , 0x00},\r
471         /* Index9   -2.7dB */    {0x27, 0x26 , 0x22 , 0x1C , 0x00 , 0x00 , 0x00 , 0x00},\r
472         /* Index10  -3  dB */    {0x26, 0x25 , 0x20 , 0x1B , 0x00 , 0x00 , 0x00 , 0x00},\r
473         /* Index11  -3.3dB */    {0x25, 0x23 , 0x1F , 0x1A , 0x00 , 0x00 , 0x00 , 0x00},\r
474         /* Index12  -3.6dB */    {0x24, 0x22 , 0x1E , 0x19 , 0x00 , 0x00 , 0x00 , 0x00},\r
475         /* Index13  -3.9dB */    {0x22, 0x21 , 0x1D , 0x18 , 0x00 , 0x00 , 0x00 , 0x00},\r
476         /* Index14  -4.2dB */    {0x21, 0x20 , 0x1C , 0x17 , 0x00 , 0x00 , 0x00 , 0x00},\r
477         /* Index15  -4.5dB */    {0x20, 0x1F , 0x1B , 0x17 , 0x00 , 0x00 , 0x00 , 0x00},\r
478         /* Index16  -4.8dB */    {0x1F, 0x1E , 0x1A , 0x16 , 0x00 , 0x00 , 0x00 , 0x00},\r
479         /* Index17  -5.1dB */    {0x1E, 0x1D , 0x1A , 0x15 , 0x00 , 0x00 , 0x00 , 0x00},\r
480         /* Index18  -5.4dB */    {0x1D, 0x1C , 0x19 , 0x14 , 0x00 , 0x00 , 0x00 , 0x00},\r
481         /* Index19  -5.7dB */    {0x1C, 0x1B , 0x18 , 0x14 , 0x00 , 0x00 , 0x00 , 0x00},\r
482         /* Index20  -6  dB */     {0x1B, 0x1A , 0x17 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00},\r
483         /* Index21  -6.3dB */    {0x1A, 0x19 , 0x16 , 0x12 , 0x00 , 0x00 , 0x00 , 0x00},\r
484         /* Index22  -6.6dB */    {0x19, 0x18 , 0x15 , 0x12 , 0x00 , 0x00 , 0x00 , 0x00},\r
485         /* Index23  -6.9dB */    {0x18, 0x17 , 0x15 , 0x11 , 0x00 , 0x00 , 0x00 , 0x00},\r
486         /* Index24  -7.2dB */    {0x18, 0x17 , 0x14 , 0x11 , 0x00 , 0x00 , 0x00 , 0x00},\r
487         /* Index25  -7.5dB */    {0x17, 0x16 , 0x13 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00},\r
488         /* Index26  -7.8dB */    {0x16, 0x15 , 0x13 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00},\r
489         /* Index27  -8.1dB */    {0x15, 0x14 , 0x12 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00},\r
490         /* Index28  -8.4dB */    {0x14, 0x14 , 0x11 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00},\r
491         /* Index29  -8.7dB */    {0x14, 0x13 , 0x11 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00},\r
492         /* Index30  -9  dB */    {0x13, 0x12 , 0x10 , 0x0D , 0x00 , 0x00 , 0x00 , 0x00},\r
493         /* Index31  -9.3dB */    {0x12, 0x12 , 0x0F , 0x0D , 0x00 , 0x00 , 0x00 , 0x00},\r
494         /* Index32  -9.6dB */    {0x12, 0x11 , 0x0F , 0x0D , 0x00 , 0x00 , 0x00 , 0x00},\r
495         /* Index33  -9.9dB */    {0x11, 0x11 , 0x0F , 0x0C , 0x00 , 0x00 , 0x00 , 0x00},\r
496         /* Index34 -10.2dB */    {0x11, 0x11 , 0x0E , 0x0C , 0x00 , 0x00 , 0x00 , 0x00},\r
497         /* Index35 -10.5dB */    {0x10, 0x0F , 0x0E , 0x0B , 0x00 , 0x00 , 0x00 , 0x00},\r
498         /* Index36 -10.8dB */    {0x10, 0x0F , 0x0D , 0x0B , 0x00 , 0x00 , 0x00 , 0x00},\r
499         /* Index37 -11.1dB */    {0x0F, 0x0E , 0x0D , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
500         /* Index38 -11.4dB */    {0x0E, 0x0E , 0x0C , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
501         /* Index39 -11.7dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
502         /* Index40 -12  dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
503         /* Index41 -12.3dB */    {0x0D, 0x0D , 0x0B , 0x09 , 0x00 , 0x00 , 0x00 , 0x00},\r
504         /* Index42 -12.6dB */    {0x0D, 0x0C , 0x0B , 0x09 , 0x00 , 0x00 , 0x00 , 0x00},\r
505         /* Index43 -12.9dB */    {0x0C, 0x0C , 0x0A , 0x09 , 0x00 , 0x00 , 0x00 , 0x00},\r
506         /* Index44 -13.2dB */    {0x0C, 0x0B , 0x0A , 0x08 , 0x00 , 0x00 , 0x00 , 0x00},\r
507         /* Index45 -13.5dB */    {0x0B, 0x0B , 0x0A , 0x08 , 0x00 , 0x00 , 0x00 , 0x00},\r
508         /* Index46 -13.8dB */    {0x0B, 0x0B , 0x09 , 0x08 , 0x00 , 0x00 , 0x00 , 0x00},\r
509         /* Index47 -14.1dB */    {0x0B, 0x0A , 0x09 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
510         /* Index48 -14.4dB */    {0x0A, 0x0A , 0x09 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
511         /* Index49 -14.7dB */    {0x0A, 0x0A , 0x08 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
512         /* Index50 -15  dB */    {0x0A, 0x09 , 0x08 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
513         /* Index51 -15.3dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x00 , 0x00 , 0x00 , 0x00},\r
514         /* Index52 -15.6dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x00 , 0x00 , 0x00 , 0x00},\r
515         /* Index53 -15.9dB */    {0x09, 0x08 , 0x07 , 0x06 , 0x00 , 0x00 , 0x00 , 0x00}\r
516 };\r
517 #endif\r
518 \r
519 #ifdef AP_BUILD_WORKAROUND\r
520 \r
521 unsigned int TxPwrTrk_OFDM_SwingTbl[TxPwrTrk_OFDM_SwingTbl_Len] = {\r
522         /*  +6.0dB */ 0x7f8001fe,\r
523         /*  +5.5dB */ 0x788001e2,\r
524         /*  +5.0dB */ 0x71c001c7,\r
525         /*  +4.5dB */ 0x6b8001ae,\r
526         /*  +4.0dB */ 0x65400195,\r
527         /*  +3.5dB */ 0x5fc0017f,\r
528         /*  +3.0dB */ 0x5a400169,\r
529         /*  +2.5dB */ 0x55400155,\r
530         /*  +2.0dB */ 0x50800142,\r
531         /*  +1.5dB */ 0x4c000130,\r
532         /*  +1.0dB */ 0x47c0011f,\r
533         /*  +0.5dB */ 0x43c0010f,\r
534         /*   0.0dB */ 0x40000100,\r
535         /*  -0.5dB */ 0x3c8000f2,\r
536         /*  -1.0dB */ 0x390000e4,\r
537         /*  -1.5dB */ 0x35c000d7,\r
538         /*  -2.0dB */ 0x32c000cb,\r
539         /*  -2.5dB */ 0x300000c0,\r
540         /*  -3.0dB */ 0x2d4000b5,\r
541         /*  -3.5dB */ 0x2ac000ab,\r
542         /*  -4.0dB */ 0x288000a2,\r
543         /*  -4.5dB */ 0x26000098,\r
544         /*  -5.0dB */ 0x24000090,\r
545         /*  -5.5dB */ 0x22000088,\r
546         /*  -6.0dB */ 0x20000080,\r
547         /*  -6.5dB */ 0x1a00006c,\r
548         /*  -7.0dB */ 0x1c800072,\r
549         /*  -7.5dB */ 0x18000060,\r
550         /*  -8.0dB */ 0x19800066,\r
551         /*  -8.5dB */ 0x15800056,\r
552         /*  -9.0dB */ 0x26c0005b,\r
553         /*  -9.5dB */ 0x14400051,\r
554         /* -10.0dB */ 0x24400051,\r
555         /* -10.5dB */ 0x1300004c,\r
556         /* -11.0dB */ 0x12000048,\r
557         /* -11.5dB */ 0x11000044,\r
558         /* -12.0dB */ 0x10000040\r
559 };\r
560 #endif\r
561 \r
562 #endif\r
563 \r
564 \r
565 u1Byte DeltaSwingTableIdx_2GA_P_DEFAULT[DELTA_SWINGIDX_SIZE] = {0, 0, 0, 0, 1, 1, 2, 2, 3, 3\r
566 , 4, 4, 4,  4,  4,  4,  4,  4,  5,  5,  7,  7,  8,  8,  8,  9,  9,  9,  9,  9};\r
567 u1Byte DeltaSwingTableIdx_2GA_N_DEFAULT[DELTA_SWINGIDX_SIZE] = {0, 0, 0, 2, 2, 3, 3, 4, 4, 4\r
568 , 4, 5, 5,  6,  6,  7,  7,  7,  7,  8,  8,  9,  9, 10, 10, 10, 11, 11, 11, 11}; \r
569 \r
570 \r
571 #ifdef CONFIG_WLAN_HAL_8192EE\r
572 u4Byte OFDMSwingTable_92E[OFDM_TABLE_SIZE_92E] = {\r
573         /* Index0   6  dB */ 0x7fc001ff,\r
574         /* Index1   5.7dB */ 0x7b4001ed,\r
575         /* Index2   5.4dB */ 0x774001dd,\r
576         /* Index3   5.1dB */ 0x734001cd,\r
577         /* Index4   4.8dB */ 0x6f4001bd,\r
578         /* Index5   4.5dB */ 0x6b8001ae,\r
579         /* Index6   4.2dB */ 0x67c0019f,\r
580         /* Index7   3.9dB */ 0x64400191,\r
581         /* Index8   3.6dB */ 0x60c00183,\r
582         /* Index9   3.3dB */ 0x5d800176,\r
583         /* Index10  3  dB */ 0x5a80016a,\r
584         /* Index11  2.7dB */ 0x5740015d,\r
585         /* Index12  2.4dB */ 0x54400151,\r
586         /* Index13  2.1dB */ 0x51800146,\r
587         /* Index14  1.8dB */ 0x4ec0013b,\r
588         /* Index15  1.5dB */ 0x4c000130,\r
589         /* Index16  1.2dB */ 0x49800126,\r
590         /* Index17  0.9dB */ 0x4700011c,\r
591         /* Index18  0.6dB */ 0x44800112,\r
592         /* Index19  0.3dB */ 0x42000108,\r
593         /* Index20  0  dB */ 0x40000100, // 20 This is OFDM base index\r
594         /* Index21 -0.3dB */ 0x3dc000f7,\r
595         /* Index22 -0.6dB */ 0x3bc000ef,\r
596         /* Index23 -0.9dB */ 0x39c000e7,\r
597         /* Index24 -1.2dB */ 0x37c000df,\r
598         /* Index25 -1.5dB */ 0x35c000d7,\r
599         /* Index26 -1.8dB */ 0x340000d0,\r
600         /* Index27 -2.1dB */ 0x324000c9,\r
601         /* Index28 -2.4dB */ 0x308000c2,\r
602         /* Index29 -2.7dB */ 0x2f0000bc,\r
603         /* Index30 -3  dB */ 0x2d4000b5,\r
604         /* Index31 -3.3dB */ 0x2bc000af,\r
605         /* Index32 -3.6dB */ 0x2a4000a9,\r
606         /* Index33 -3.9dB */ 0x28c000a3,\r
607         /* Index34 -4.2dB */ 0x2780009e,\r
608         /* Index35 -4.5dB */ 0x26000098,\r
609         /* Index36 -4.8dB */ 0x24c00093,\r
610         /* Index37 -5.1dB */ 0x2380008e,\r
611         /* Index38 -5.4dB */ 0x22400089,\r
612         /* Index39 -5.7dB */ 0x21400085,\r
613         /* Index40 -6  dB */ 0x20000080,\r
614         /* Index41 -6.3dB */ 0x1f00007c,\r
615         /* Index42 -6.6dB */ 0x1e000078,\r
616         /* Index43 -6.9dB */ 0x1d000074,\r
617         /* Index44 -7.2dB */ 0x1c000070,\r
618         /* Index45 -7.5dB */ 0x1b00006c,\r
619         /* Index46 -7.8dB */ 0x1a000068,\r
620         /* Index47 -8.1dB */ 0x19400065,\r
621         /* Index48 -8.4dB */ 0x18400061,\r
622         /* Index49 -8.7dB */ 0x1780005e,\r
623         /* Index50 -9  dB */ 0x16c0005b,\r
624         /* Index51 -9.3dB */ 0x16000058,\r
625         /* Index52 -9.6dB */ 0x15400055,\r
626         /* Index53 -9.9dB */ 0x14800052\r
627 };\r
628 u1Byte CCKSwingTable_Ch1_Ch13_92E[CCK_TABLE_SIZE_92E][8] = {\r
629         /* Index0    0  dB */    {0x36, 0x34 , 0x2E , 0x26 , 0x1C , 0x12 , 0x08 , 0x04},\r
630         /* Index1   -0.3dB */    {0x34, 0x32 , 0x2C , 0x25 , 0x1B , 0x11 , 0x08 , 0x04},\r
631         /* Index2   -0.6dB */    {0x32, 0x30 , 0x2B , 0x23 , 0x1A , 0x11 , 0x07 , 0x04},\r
632         /* Index3   -0.9dB */    {0x31, 0x2F , 0x29 , 0x22 , 0x19 , 0x10 , 0x07 , 0x04},\r
633         /* Index4   -1.2dB */    {0x2F, 0x2D , 0x28 , 0x21 , 0x18 , 0x10 , 0x07 , 0x03},\r
634         /* Index5   -1.5dB */    {0x2D, 0x2C , 0x27 , 0x20 , 0x18 , 0x0F , 0x07 , 0x03},\r
635         /* Index6   -1.8dB */    {0x2C, 0x2A , 0x25 , 0x1F , 0x17 , 0x0F , 0x06 , 0x03},\r
636         /* Index7   -2.1dB */    {0x2A, 0x29 , 0x24 , 0x1E , 0x16 , 0x0E , 0x06 , 0x03},\r
637         /* Index8   -2.4dB */    {0x29, 0x27 , 0x23 , 0x1D , 0x15 , 0x0E , 0x06 , 0x03},\r
638         /* Index9   -2.7dB */    {0x27, 0x26 , 0x22 , 0x1C , 0x14 , 0x0D , 0x06 , 0x03},\r
639         /* Index10  -3  dB */    {0x26, 0x25 , 0x20 , 0x1B , 0x14 , 0x0D , 0x06 , 0x03},\r
640         /* Index11  -3.3dB */    {0x25, 0x23 , 0x1F , 0x1A , 0x13 , 0x0C , 0x05 , 0x03},\r
641         /* Index12  -3.6dB */    {0x24, 0x22 , 0x1E , 0x19 , 0x12 , 0x0C , 0x05 , 0x03},\r
642         /* Index13  -3.9dB */    {0x22, 0x21 , 0x1D , 0x18 , 0x12 , 0x0B , 0x05 , 0x03},\r
643         /* Index14  -4.2dB */    {0x21, 0x20 , 0x1C , 0x17 , 0x11 , 0x0B , 0x05 , 0x02},\r
644         /* Index15  -4.5dB */    {0x20, 0x1F , 0x1B , 0x17 , 0x11 , 0x0B , 0x05 , 0x02},\r
645         /* Index16  -4.8dB */    {0x1F, 0x1E , 0x1A , 0x16 , 0x10 , 0x0A , 0x05 , 0x02},\r
646         /* Index17  -5.1dB */    {0x1E, 0x1D , 0x1A , 0x15 , 0x10 , 0x0A , 0x04 , 0x02},\r
647         /* Index18  -5.4dB */    {0x1D, 0x1C , 0x19 , 0x14 , 0x0F , 0x0A , 0x04 , 0x02},\r
648         /* Index19  -5.7dB */    {0x1C, 0x1B , 0x18 , 0x14 , 0x0E , 0x09 , 0x04 , 0x02},\r
649         /* Index20  -6.0dB */    {0x1B, 0x1A , 0x17 , 0x13 , 0x0E , 0x09 , 0x04 , 0x02}, // 20 This is CCK base index\r
650         /* Index21  -6.3dB */    {0x1A, 0x19 , 0x16 , 0x12 , 0x0E , 0x09 , 0x04 , 0x02},\r
651         /* Index22  -6.6dB */    {0x19, 0x18 , 0x15 , 0x12 , 0x0D , 0x08 , 0x04 , 0x02},\r
652         /* Index23  -6.9dB */    {0x18, 0x17 , 0x15 , 0x11 , 0x0D , 0x08 , 0x04 , 0x02},\r
653         /* Index24  -7.2dB */    {0x18, 0x17 , 0x14 , 0x11 , 0x0C , 0x08 , 0x03 , 0x02},\r
654         /* Index25  -7.5dB */    {0x17, 0x16 , 0x13 , 0x10 , 0x0C , 0x08 , 0x03 , 0x02},\r
655         /* Index26  -7.8dB */    {0x16, 0x15 , 0x13 , 0x0F , 0x0B , 0x07 , 0x03 , 0x02},\r
656         /* Index27  -8.1dB */    {0x15, 0x14 , 0x12 , 0x0F , 0x0B , 0x07 , 0x03 , 0x02},\r
657         /* Index28  -8.4dB */    {0x14, 0x14 , 0x11 , 0x0E , 0x0B , 0x07 , 0x03 , 0x02},\r
658         /* Index29  -8.7dB */    {0x14, 0x13 , 0x11 , 0x0E , 0x0A , 0x07 , 0x03 , 0x01},\r
659         /* Index30  -9.0dB */    {0x13, 0x12 , 0x10 , 0x0D , 0x0A , 0x06 , 0x03 , 0x01}, // 30 This is hp CCK base index\r
660         /* Index31  -9.3dB */    {0x12, 0x12 , 0x0F , 0x0D , 0x0A , 0x06 , 0x03 , 0x01},\r
661         /* Index32  -9.6dB */    {0x12, 0x11 , 0x0F , 0x0D , 0x09 , 0x06 , 0x03 , 0x01},\r
662         /* Index33  -9.9dB */    {0x11, 0x11 , 0x0F , 0x0C , 0x09 , 0x06 , 0x03 , 0x01},\r
663         /* Index34 -10.2dB */    {0x11, 0x11 , 0x0E , 0x0C , 0x09 , 0x06 , 0x02 , 0x01},\r
664         /* Index35 -10.5dB */    {0x10, 0x0F , 0x0E , 0x0B , 0x08 , 0x05 , 0x02 , 0x01},\r
665         /* Index36 -10.8dB */    {0x10, 0x0F , 0x0D , 0x0B , 0x08 , 0x05 , 0x02 , 0x01},\r
666         /* Index37 -11.1dB */    {0x0F, 0x0E , 0x0D , 0x0A , 0x08 , 0x05 , 0x02 , 0x01},\r
667         /* Index38 -11.4dB */    {0x0E, 0x0E , 0x0C , 0x0A , 0x07 , 0x05 , 0x02 , 0x01},\r
668         /* Index39 -11.7dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x07 , 0x05 , 0x02 , 0x01},\r
669         /* Index40 -12  dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x07 , 0x05 , 0x02 , 0x01},\r
670         /* Index41 -12.3dB */    {0x0D, 0x0D , 0x0B , 0x09 , 0x07 , 0x04 , 0x02 , 0x01},\r
671         /* Index42 -12.6dB */    {0x0D, 0x0C , 0x0B , 0x09 , 0x07 , 0x04 , 0x02 , 0x01},\r
672         /* Index43 -12.9dB */    {0x0C, 0x0C , 0x0A , 0x09 , 0x06 , 0x04 , 0x02 , 0x01},\r
673         /* Index44 -13.2dB */    {0x0C, 0x0B , 0x0A , 0x08 , 0x06 , 0x04 , 0x02 , 0x01},\r
674         /* Index45 -13.5dB */    {0x0B, 0x0B , 0x0A , 0x08 , 0x06 , 0x04 , 0x02 , 0x01},\r
675         /* Index46 -13.8dB */    {0x0B, 0x0B , 0x09 , 0x08 , 0x06 , 0x04 , 0x02 , 0x01},\r
676         /* Index47 -14.1dB */    {0x0B, 0x0A , 0x09 , 0x07 , 0x06 , 0x04 , 0x02 , 0x01},\r
677         /* Index48 -14.4dB */    {0x0A, 0x0A , 0x09 , 0x07 , 0x05 , 0x03 , 0x02 , 0x01},\r
678         /* Index49 -14.7dB */    {0x0A, 0x0A , 0x08 , 0x07 , 0x05 , 0x03 , 0x01 , 0x01},\r
679         /* Index50 -15  dB */    {0x0A, 0x09 , 0x08 , 0x07 , 0x05 , 0x03 , 0x01 , 0x01},\r
680         /* Index51 -15.3dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x05 , 0x03 , 0x01 , 0x01},\r
681         /* Index52 -15.6dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x05 , 0x03 , 0x01 , 0x01},\r
682         /* Index53 -15.9dB */    {0x09, 0x08 , 0x07 , 0x06 , 0x04 , 0x03 , 0x01 , 0x01}\r
683 };\r
684 u1Byte CCKSwingTable_Ch14_92E[CCK_TABLE_SIZE_92E][8] = {\r
685         /* Index0    0  dB */    {0x36, 0x34 , 0x2E , 0x26 , 0x00 , 0x00 , 0x00 , 0x00},\r
686         /* Index1   -0.3dB */    {0x34, 0x32 , 0x2C , 0x25 , 0x00 , 0x00 , 0x00 , 0x00},\r
687         /* Index2   -0.6dB */    {0x32, 0x30 , 0x2B , 0x23 , 0x00 , 0x00 , 0x00 , 0x00},\r
688         /* Index3   -0.9dB */    {0x31, 0x2F , 0x29 , 0x22 , 0x00 , 0x00 , 0x00 , 0x00},\r
689         /* Index4   -1.2dB */    {0x2F, 0x2D , 0x28 , 0x21 , 0x00 , 0x00 , 0x00 , 0x00},\r
690         /* Index5   -1.5dB */    {0x2D, 0x2C , 0x27 , 0x20 , 0x00 , 0x00 , 0x00 , 0x00},\r
691         /* Index6   -1.8dB */    {0x2C, 0x2A , 0x25 , 0x1F , 0x00 , 0x00 , 0x00 , 0x00},\r
692         /* Index7   -2.1dB */    {0x2A, 0x29 , 0x24 , 0x1E , 0x00 , 0x00 , 0x00 , 0x00},\r
693         /* Index8   -2.4dB */    {0x29, 0x27 , 0x23 , 0x1D , 0x00 , 0x00 , 0x00 , 0x00},\r
694         /* Index9   -2.7dB */    {0x27, 0x26 , 0x22 , 0x1C , 0x00 , 0x00 , 0x00 , 0x00},\r
695         /* Index10  -3  dB */    {0x26, 0x25 , 0x20 , 0x1B , 0x00 , 0x00 , 0x00 , 0x00},\r
696         /* Index11  -3.3dB */    {0x25, 0x23 , 0x1F , 0x1A , 0x00 , 0x00 , 0x00 , 0x00},\r
697         /* Index12  -3.6dB */    {0x24, 0x22 , 0x1E , 0x19 , 0x00 , 0x00 , 0x00 , 0x00},\r
698         /* Index13  -3.9dB */    {0x22, 0x21 , 0x1D , 0x18 , 0x00 , 0x00 , 0x00 , 0x00},\r
699         /* Index14  -4.2dB */    {0x21, 0x20 , 0x1C , 0x17 , 0x00 , 0x00 , 0x00 , 0x00},\r
700         /* Index15  -4.5dB */    {0x20, 0x1F , 0x1B , 0x17 , 0x00 , 0x00 , 0x00 , 0x00},\r
701         /* Index16  -4.8dB */    {0x1F, 0x1E , 0x1A , 0x16 , 0x00 , 0x00 , 0x00 , 0x00},\r
702         /* Index17  -5.1dB */    {0x1E, 0x1D , 0x1A , 0x15 , 0x00 , 0x00 , 0x00 , 0x00},\r
703         /* Index18  -5.4dB */    {0x1D, 0x1C , 0x19 , 0x14 , 0x00 , 0x00 , 0x00 , 0x00},\r
704         /* Index19  -5.7dB */    {0x1C, 0x1B , 0x18 , 0x14 , 0x00 , 0x00 , 0x00 , 0x00},\r
705         /* Index20  -6  dB */     {0x1B, 0x1A , 0x17 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00},\r
706         /* Index21  -6.3dB */    {0x1A, 0x19 , 0x16 , 0x12 , 0x00 , 0x00 , 0x00 , 0x00},\r
707         /* Index22  -6.6dB */    {0x19, 0x18 , 0x15 , 0x12 , 0x00 , 0x00 , 0x00 , 0x00},\r
708         /* Index23  -6.9dB */    {0x18, 0x17 , 0x15 , 0x11 , 0x00 , 0x00 , 0x00 , 0x00},\r
709         /* Index24  -7.2dB */    {0x18, 0x17 , 0x14 , 0x11 , 0x00 , 0x00 , 0x00 , 0x00},\r
710         /* Index25  -7.5dB */    {0x17, 0x16 , 0x13 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00},\r
711         /* Index26  -7.8dB */    {0x16, 0x15 , 0x13 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00},\r
712         /* Index27  -8.1dB */    {0x15, 0x14 , 0x12 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00},\r
713         /* Index28  -8.4dB */    {0x14, 0x14 , 0x11 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00},\r
714         /* Index29  -8.7dB */    {0x14, 0x13 , 0x11 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00},\r
715         /* Index30  -9  dB */    {0x13, 0x12 , 0x10 , 0x0D , 0x00 , 0x00 , 0x00 , 0x00},\r
716         /* Index31  -9.3dB */    {0x12, 0x12 , 0x0F , 0x0D , 0x00 , 0x00 , 0x00 , 0x00},\r
717         /* Index32  -9.6dB */    {0x12, 0x11 , 0x0F , 0x0D , 0x00 , 0x00 , 0x00 , 0x00},\r
718         /* Index33  -9.9dB */    {0x11, 0x11 , 0x0F , 0x0C , 0x00 , 0x00 , 0x00 , 0x00},\r
719         /* Index34 -10.2dB */    {0x11, 0x11 , 0x0E , 0x0C , 0x00 , 0x00 , 0x00 , 0x00},\r
720         /* Index35 -10.5dB */    {0x10, 0x0F , 0x0E , 0x0B , 0x00 , 0x00 , 0x00 , 0x00},\r
721         /* Index36 -10.8dB */    {0x10, 0x0F , 0x0D , 0x0B , 0x00 , 0x00 , 0x00 , 0x00},\r
722         /* Index37 -11.1dB */    {0x0F, 0x0E , 0x0D , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
723         /* Index38 -11.4dB */    {0x0E, 0x0E , 0x0C , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
724         /* Index39 -11.7dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
725         /* Index40 -12  dB */    {0x0E, 0x0D , 0x0C , 0x0A , 0x00 , 0x00 , 0x00 , 0x00},\r
726         /* Index41 -12.3dB */    {0x0D, 0x0D , 0x0B , 0x09 , 0x00 , 0x00 , 0x00 , 0x00},\r
727         /* Index42 -12.6dB */    {0x0D, 0x0C , 0x0B , 0x09 , 0x00 , 0x00 , 0x00 , 0x00},\r
728         /* Index43 -12.9dB */    {0x0C, 0x0C , 0x0A , 0x09 , 0x00 , 0x00 , 0x00 , 0x00},\r
729         /* Index44 -13.2dB */    {0x0C, 0x0B , 0x0A , 0x08 , 0x00 , 0x00 , 0x00 , 0x00},\r
730         /* Index45 -13.5dB */    {0x0B, 0x0B , 0x0A , 0x08 , 0x00 , 0x00 , 0x00 , 0x00},\r
731         /* Index46 -13.8dB */    {0x0B, 0x0B , 0x09 , 0x08 , 0x00 , 0x00 , 0x00 , 0x00},\r
732         /* Index47 -14.1dB */    {0x0B, 0x0A , 0x09 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
733         /* Index48 -14.4dB */    {0x0A, 0x0A , 0x09 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
734         /* Index49 -14.7dB */    {0x0A, 0x0A , 0x08 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
735         /* Index50 -15  dB */    {0x0A, 0x09 , 0x08 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00},\r
736         /* Index51 -15.3dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x00 , 0x00 , 0x00 , 0x00},\r
737         /* Index52 -15.6dB */    {0x09, 0x09 , 0x08 , 0x06 , 0x00 , 0x00 , 0x00 , 0x00},\r
738         /* Index53 -15.9dB */    {0x09, 0x08 , 0x07 , 0x06 , 0x00 , 0x00 , 0x00 , 0x00}\r
739 };\r
740 #endif\r
741 \r
742 #if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1)\r
743 u4Byte TxScalingTable_Jaguar[TXSCALE_TABLE_SIZE] =\r
744 {\r
745         0x081, // 0,  -12.0dB\r
746         0x088, // 1,  -11.5dB\r
747         0x090, // 2,  -11.0dB\r
748         0x099, // 3,  -10.5dB\r
749         0x0A2, // 4,  -10.0dB\r
750         0x0AC, // 5,  -9.5dB\r
751         0x0B6, // 6,  -9.0dB\r
752         0x0C0, // 7,  -8.5dB\r
753         0x0CC, // 8,  -8.0dB\r
754         0x0D8, // 9,  -7.5dB\r
755         0x0E5, // 10, -7.0dB\r
756         0x0F2, // 11, -6.5dB\r
757         0x101, // 12, -6.0dB\r
758         0x110, // 13, -5.5dB\r
759         0x120, // 14, -5.0dB\r
760         0x131, // 15, -4.5dB\r
761         0x143, // 16, -4.0dB\r
762         0x156, // 17, -3.5dB\r
763         0x16A, // 18, -3.0dB\r
764         0x180, // 19, -2.5dB\r
765         0x197, // 20, -2.0dB\r
766         0x1AF, // 21, -1.5dB\r
767         0x1C8, // 22, -1.0dB\r
768         0x1E3, // 23, -0.5dB\r
769         0x200, // 24, +0  dB\r
770         0x21E, // 25, +0.5dB\r
771         0x23E, // 26, +1.0dB\r
772         0x261, // 27, +1.5dB\r
773         0x285, // 28, +2.0dB\r
774         0x2AB, // 29, +2.5dB\r
775         0x2D3, // 30, +3.0dB\r
776         0x2FE, // 31, +3.5dB\r
777         0x32B, // 32, +4.0dB\r
778         0x35C, // 33, +4.5dB\r
779         0x38E, // 34, +5.0dB\r
780         0x3C4, // 35, +5.5dB\r
781         0x3FE  // 36, +6.0dB    \r
782 };\r
783 #elif(ODM_IC_11AC_SERIES_SUPPORT)\r
784 u4Byte OFDMSwingTable_8812[OFDM_TABLE_SIZE_8812] = {    \r
785         0x3FE, // 0,  (6dB) \r
786         0x3C4, // 1,  (5.5dB) \r
787         0x38E, // 2,  (5dB)\r
788         0x35C, // 3,  (4.5dB)\r
789         0x32B, // 4,  (4dB)\r
790         0x2FE, // 5,  (3.5dB)\r
791         0x2D3, // 6,  (3dB)\r
792         0x2AB, // 7,  (2.5dB)\r
793         0x285, // 8,  (2dB)\r
794         0x261, // 9,  (1.5dB\r
795         0x23E, // 10, (1dB)\r
796         0x21E, // 11, (0.5dB)\r
797         0x200, // 12, (0dB)             8814 int PA 2G default\r
798         0x1E3, // 13, (-0.5dB)\r
799         0x1C8, // 14, (-1dB)\r
800         0x1AF, // 15, (-1.5dB)\r
801         0x197, // 16, (-2dB)\r
802         0x180, // 17, (-2.5dB)\r
803         0x16A, // 18, (-3dB)            8812 / 8814 int PA 5G / 8814 ext PA 2G5G default\r
804         0x156, // 19, (-3.5dB)\r
805         0x143, // 20, (-4dB)            8812 HP default\r
806         0x131, // 21, (-4.5dB)\r
807         0x120, // 22, (-5dB)\r
808         0x110, // 23, (-5.5dB)\r
809         0x101, // 24, (-6dB)\r
810         0x0F2, // 25, (-6.5dB)\r
811         0x0E5, // 26, (-7dB)\r
812         0x0D8, // 27, (-7.5dB)\r
813         0x0CC, // 28, (-8dB)\r
814         0x0C0, // 29, (-8.5dB)\r
815         0x0B6, // 30, (-9dB)\r
816         0x0AC, // 31, (-9.5dB)\r
817         0x0A2, // 32, (-10dB)\r
818         0x099, // 33, (-10.5dB)\r
819         0x090, // 34, (-11dB)\r
820         0x088, // 35, (-11.5dB)\r
821         0x081, // 36, (-12dB)   \r
822         0x079, // 37, (-12.5dB)\r
823         0x072, // 38, (-13dB)\r
824         0x06c, // 39, (-13.5dB)\r
825         0x066, // 40, (-14dB)\r
826         0x060, // 41, (-14.5dB)\r
827         0x05B  // 42, (-15dB)\r
828 };\r
829 #endif\r
830 \r
831 u4Byte CCKSwingTable_Ch1_Ch14_8723D[CCK_TABLE_SIZE_8723D] = {\r
832         0x0CD,         \r
833         0x0D9,        \r
834         0x0E6,         \r
835         0x0F3,      \r
836         0x102,         \r
837         0x111,         \r
838         0x121,         \r
839         0x132,        \r
840         0x144,         \r
841         0x158,      \r
842         0x16C,        \r
843         0x182,        \r
844         0x198,        \r
845         0x1B1,        \r
846         0x1CA,      \r
847         0x1E5,         \r
848         0x202,        \r
849         0x221,        \r
850         0x241,        \r
851         0x263,        \r
852         0x287,       \r
853         0x2AE,        \r
854         0x2D6,         \r
855         0x301,        \r
856         0x32F,       \r
857         0x35F,       \r
858         0x392,        \r
859         0x3C9,        \r
860         0x402,        \r
861         0x43F,      \r
862         0x47F,      \r
863         0x4C3,        \r
864         0x50C,         \r
865         0x558,      \r
866         0x5A9,         \r
867         0x5FF,         \r
868         0x65A,        \r
869         0x6BA,       \r
870         0x720,        \r
871         0x78C,        \r
872         0x7FF,        \r
873 };\r
874 \r
875 \r
876 //#endif\r
877 //3============================================================\r
878 //3 Tx Power Tracking\r
879 //3============================================================\r
880 \r
881 VOID\r
882 odm_TXPowerTrackingInit(\r
883         IN      PVOID           pDM_VOID \r
884         )\r
885 {\r
886         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
887 #if (DM_ODM_SUPPORT_TYPE & (ODM_AP))\r
888         if (!(pDM_Odm->SupportICType & (ODM_RTL8814A | ODM_RTL8822B | ODM_IC_11N_SERIES)))\r
889                 return;\r
890 #endif\r
891 \r
892         odm_TXPowerTrackingThermalMeterInit(pDM_Odm);\r
893 }       \r
894 \r
895 \r
896 u1Byte \r
897 getSwingIndex(\r
898         IN      PVOID           pDM_VOID\r
899         )\r
900 {\r
901         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
902         u1Byte                  i = 0, BBswingMask = 0;\r
903         u4Byte                  bbSwing = 0;\r
904         u4Byte                  swingTableSize = 0;\r
905         pu4Byte                 pSwingTable = 0;\r
906         prtl8192cd_priv priv = pDM_Odm->priv;\r
907 \r
908 #if (RTL8197F_SUPPORT == 1)\r
909         if (GET_CHIP_VER(priv) == VERSION_8197F) {\r
910                 bbSwing = PHY_QueryBBReg(priv, rOFDM0_XATxIQImbalance, bMaskOFDM_D);\r
911                 pSwingTable = OFDMSwingTable_New;\r
912                 swingTableSize = OFDM_TABLE_SIZE_92D;\r
913                 BBswingMask = 22;\r
914         }\r
915 #endif\r
916 \r
917 #if (RTL8822B_SUPPORT == 1)\r
918         if (GET_CHIP_VER(priv) == VERSION_8822B) {\r
919                 bbSwing = PHY_QueryBBReg(priv, rA_TxScale_Jaguar, 0xFFE00000);\r
920                 pSwingTable = TxScalingTable_Jaguar;\r
921                 swingTableSize = TXSCALE_TABLE_SIZE;\r
922                 BBswingMask = 0;\r
923         }\r
924 #endif\r
925 \r
926         for (i = 0; i < swingTableSize-1; i++) {\r
927                 u4Byte tableValue = pSwingTable[i] >> BBswingMask;\r
928                 \r
929                 if (bbSwing == tableValue)\r
930                         break;\r
931         }\r
932 \r
933         ODM_RT_TRACE(pDM_Odm, ODM_COMP_TX_PWR_TRACK, ODM_DBG_LOUD, ("bbSwing=0x%x bbswing_index=%d\n", bbSwing, i));\r
934 \r
935         \r
936         return i;\r
937 }\r
938 \r
939 \r
940 VOID\r
941 odm_TXPowerTrackingThermalMeterInit(\r
942         IN      PVOID           pDM_VOID \r
943         )\r
944 {\r
945         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
946         PODM_RF_CAL_T   pRFCalibrateInfo = &(pDM_Odm->RFCalibrateInfo);\r
947         prtl8192cd_priv         priv = pDM_Odm->priv;\r
948         u1Byte p;\r
949         u1Byte defaultSwingIndex;\r
950 #if (RTL8197F_SUPPORT == 1 || RTL8822B_SUPPORT == 1)\r
951         if ((GET_CHIP_VER(priv) == VERSION_8197F) || (GET_CHIP_VER(priv) == VERSION_8822B))\r
952                 defaultSwingIndex = getSwingIndex(pDM_Odm);\r
953 #endif\r
954         \r
955 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
956         PADAPTER                Adapter = pDM_Odm->Adapter;\r
957         PMGNT_INFO              pMgntInfo = &Adapter->MgntInfo;\r
958         HAL_DATA_TYPE           *pHalData = GET_HAL_DATA(Adapter);\r
959         \r
960         pMgntInfo->bTXPowerTracking = TRUE;\r
961         pHalData->TXPowercount       = 0;\r
962         pHalData->bTXPowerTrackingInit = FALSE;\r
963 \r
964         if(pDM_Odm->mp_mode == FALSE)\r
965                 pHalData->TxPowerTrackControl = TRUE;\r
966         ODM_RT_TRACE(pDM_Odm,COMP_POWER_TRACKING, DBG_LOUD, ("pMgntInfo->bTXPowerTracking = %d\n", pMgntInfo->bTXPowerTracking));\r
967 #elif (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
968         #ifdef CONFIG_RTL8188E\r
969         {\r
970                 pDM_Odm->RFCalibrateInfo.bTXPowerTracking = _TRUE;\r
971                 pDM_Odm->RFCalibrateInfo.TXPowercount = 0;\r
972                 pDM_Odm->RFCalibrateInfo.bTXPowerTrackingInit = _FALSE;\r
973 \r
974                 if(pDM_Odm->mp_mode == FALSE)\r
975                         pDM_Odm->RFCalibrateInfo.TxPowerTrackControl = _TRUE;\r
976                 \r
977                 MSG_8192C("pDM_Odm TxPowerTrackControl = %d\n", pDM_Odm->RFCalibrateInfo.TxPowerTrackControl);\r
978         }\r
979         #else\r
980         {\r
981                 PADAPTER                Adapter = pDM_Odm->Adapter;\r
982                 HAL_DATA_TYPE   *pHalData = GET_HAL_DATA(Adapter);\r
983                 struct dm_priv  *pdmpriv = &pHalData->dmpriv;\r
984 \r
985                 //if(IS_HARDWARE_TYPE_8192C(pHalData))\r
986                 {\r
987                         pdmpriv->bTXPowerTracking = _TRUE;\r
988                         pdmpriv->TXPowercount = 0;\r
989                         pdmpriv->bTXPowerTrackingInit = _FALSE;\r
990 \r
991                         if(pDM_Odm->mp_mode == FALSE)           //for mp driver, turn off txpwrtracking as default\r
992                                 pdmpriv->TxPowerTrackControl = _TRUE;\r
993 \r
994                 }\r
995                 MSG_8192C("pdmpriv->TxPowerTrackControl = %d\n", pdmpriv->TxPowerTrackControl);\r
996         \r
997         }       \r
998         #endif//endif (CONFIG_RTL8188E==1)      \r
999 #elif (DM_ODM_SUPPORT_TYPE & (ODM_AP))\r
1000 \r
1001         #ifdef RTL8188E_SUPPORT\r
1002         {\r
1003                 pDM_Odm->RFCalibrateInfo.bTXPowerTracking = _TRUE;\r
1004                 pDM_Odm->RFCalibrateInfo.TXPowercount = 0;\r
1005                 pDM_Odm->RFCalibrateInfo.bTXPowerTrackingInit = _FALSE;\r
1006                 pDM_Odm->RFCalibrateInfo.TxPowerTrackControl = _TRUE;\r
1007                 pDM_Odm->RFCalibrateInfo.TM_Trigger = 0;\r
1008         }\r
1009         #endif\r
1010 #endif\r
1011 \r
1012        pDM_Odm->RFCalibrateInfo.TxPowerTrackControl = TRUE;\r
1013         pDM_Odm->RFCalibrateInfo.DeltaPowerIndex = 0;\r
1014         pDM_Odm->RFCalibrateInfo.DeltaPowerIndexLast = 0;\r
1015         pDM_Odm->RFCalibrateInfo.PowerIndexOffset = 0;\r
1016         pDM_Odm->RFCalibrateInfo.ThermalValue = 0;\r
1017         pRFCalibrateInfo->DefaultOfdmIndex = 28;\r
1018 \r
1019 #if (RTL8197F_SUPPORT == 1)\r
1020         if (GET_CHIP_VER(priv) == VERSION_8197F) {\r
1021                 pRFCalibrateInfo->DefaultOfdmIndex = (defaultSwingIndex >= (OFDM_TABLE_SIZE_92D - 1)) ? 30 : defaultSwingIndex;\r
1022                 pRFCalibrateInfo->DefaultCckIndex = 28; \r
1023         }\r
1024 #endif\r
1025 \r
1026 #if (RTL8822B_SUPPORT == 1)\r
1027         if (GET_CHIP_VER(priv) == VERSION_8822B) {\r
1028                 pRFCalibrateInfo->DefaultOfdmIndex = (defaultSwingIndex >= (TXSCALE_TABLE_SIZE - 1)) ? 24 : defaultSwingIndex;\r
1029                 pRFCalibrateInfo->DefaultCckIndex = 20;\r
1030         }\r
1031 #endif\r
1032 \r
1033         \r
1034 #if RTL8188E_SUPPORT    \r
1035         pRFCalibrateInfo->DefaultCckIndex = 20; // -6 dB        \r
1036 #elif RTL8192E_SUPPORT\r
1037         pRFCalibrateInfo->DefaultCckIndex = 8;  // -12 dB\r
1038 #endif\r
1039         pRFCalibrateInfo->BbSwingIdxOfdmBase = pRFCalibrateInfo->DefaultOfdmIndex;\r
1040         pRFCalibrateInfo->BbSwingIdxCckBase = pRFCalibrateInfo->DefaultCckIndex;\r
1041         pDM_Odm->RFCalibrateInfo.CCK_index = pRFCalibrateInfo->DefaultCckIndex;\r
1042         \r
1043         for (p = 0; p < MAX_RF_PATH; p++) {\r
1044         pDM_Odm->RFCalibrateInfo.OFDM_index[p] = pRFCalibrateInfo->DefaultOfdmIndex;            \r
1045         pRFCalibrateInfo->BbSwingIdxOfdm[p] = pRFCalibrateInfo->DefaultOfdmIndex;\r
1046                 pRFCalibrateInfo->KfreeOffset[p] = 0;   /* for 8814 kfree*/\r
1047         }\r
1048         pRFCalibrateInfo->BbSwingIdxCck = pRFCalibrateInfo->DefaultCckIndex;\r
1049         \r
1050         ODM_RT_TRACE(pDM_Odm, ODM_COMP_TX_PWR_TRACK, ODM_DBG_LOUD, ("pRFCalibrateInfo->DefaultOfdmIndex=%d pRFCalibrateInfo->DefaultCckIndex=%d\n", pRFCalibrateInfo->DefaultOfdmIndex , pRFCalibrateInfo->DefaultCckIndex));\r
1051 \r
1052 \r
1053 }\r
1054 \r
1055 \r
1056 VOID\r
1057 ODM_TXPowerTrackingCheck(\r
1058         IN      PVOID           pDM_VOID\r
1059         )\r
1060 {\r
1061         // \r
1062         // For AP/ADSL use prtl8192cd_priv\r
1063         // For CE/NIC use PADAPTER\r
1064         //\r
1065         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
1066 \r
1067 \r
1068 \r
1069         if (!(pDM_Odm->SupportAbility & ODM_RF_TX_PWR_TRACK))\r
1070                 return;\r
1071 \r
1072         //\r
1073         // 2011/09/29 MH In HW integration first stage, we provide 4 different handle to operate\r
1074         // at the same time. In the stage2/3, we need to prive universal interface and merge all\r
1075         // HW dynamic mechanism.\r
1076         //\r
1077         switch  (pDM_Odm->SupportPlatform)\r
1078         {\r
1079                 case    ODM_WIN:\r
1080                         odm_TXPowerTrackingCheckMP(pDM_Odm);\r
1081                         break;\r
1082 \r
1083                 case    ODM_CE:\r
1084                         odm_TXPowerTrackingCheckCE(pDM_Odm);\r
1085                         break;\r
1086 \r
1087                 case    ODM_AP:\r
1088                         odm_TXPowerTrackingCheckAP(pDM_Odm);            \r
1089                         break;          \r
1090 \r
1091                 case    ODM_ADSL:\r
1092                         /*odm_DIGAP(pDM_Odm);*/\r
1093                         break;\r
1094         }\r
1095 \r
1096 }\r
1097 \r
1098 VOID\r
1099 odm_TXPowerTrackingCheckCE(\r
1100         IN      PVOID           pDM_VOID\r
1101         )\r
1102 {\r
1103 #if (DM_ODM_SUPPORT_TYPE == ODM_CE)\r
1104         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
1105         PADAPTER        Adapter = pDM_Odm->Adapter;\r
1106 \r
1107         #if(RTL8188E_SUPPORT==1)\r
1108 \r
1109         //if(!pMgntInfo->bTXPowerTracking /*|| (!pdmpriv->TxPowerTrackControl && pdmpriv->bAPKdone)*/)\r
1110         if(!(pDM_Odm->SupportAbility & ODM_RF_TX_PWR_TRACK))\r
1111         {\r
1112                 return;\r
1113         }\r
1114 \r
1115         if(!pDM_Odm->RFCalibrateInfo.TM_Trigger)                //at least delay 1 sec\r
1116         {\r
1117                 //pHalData->TxPowerCheckCnt++;  //cosa add for debug\r
1118                 ODM_SetRFReg(pDM_Odm, RF_PATH_A, RF_T_METER, bRFRegOffsetMask, 0x60);\r
1119                 //DBG_8192C("Trigger 92C Thermal Meter!!\n");\r
1120                 \r
1121                 pDM_Odm->RFCalibrateInfo.TM_Trigger = 1;\r
1122                 return;\r
1123                 \r
1124         }\r
1125         else\r
1126         {\r
1127                 //DBG_8192C("Schedule TxPowerTracking direct call!!\n");\r
1128                 odm_TXPowerTrackingCallback_ThermalMeter_8188E(Adapter);\r
1129                 pDM_Odm->RFCalibrateInfo.TM_Trigger = 0;\r
1130         }\r
1131         #endif\r
1132         \r
1133 #endif  \r
1134 }\r
1135 \r
1136 VOID\r
1137 odm_TXPowerTrackingCheckMP(\r
1138         IN      PVOID           pDM_VOID \r
1139         )\r
1140 {\r
1141 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
1142         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
1143         PADAPTER        Adapter = pDM_Odm->Adapter;\r
1144 \r
1145         if (ODM_CheckPowerStatus(Adapter) == FALSE)\r
1146                 return;\r
1147 \r
1148         if(!Adapter->bSlaveOfDMSP || Adapter->DualMacSmartConcurrent == FALSE)\r
1149                 odm_TXPowerTrackingThermalMeterCheck(Adapter);\r
1150 #endif\r
1151         \r
1152 }\r
1153 \r
1154 \r
1155 VOID\r
1156 odm_TXPowerTrackingCheckAP(\r
1157         IN      PVOID           pDM_VOID\r
1158         )\r
1159 {\r
1160         PDM_ODM_T               pDM_Odm = (PDM_ODM_T)pDM_VOID;\r
1161 #if (DM_ODM_SUPPORT_TYPE == ODM_AP)\r
1162         prtl8192cd_priv priv            = pDM_Odm->priv;\r
1163 \r
1164 #if ((RTL8188E_SUPPORT == 1) || (RTL8192E_SUPPORT == 1) || (RTL8812A_SUPPORT == 1) || (RTL8881A_SUPPORT == 1) || (RTL8814A_SUPPORT == 1) || (RTL8197F_SUPPORT == 1))    \r
1165         if (pDM_Odm->SupportICType & (ODM_RTL8188E | ODM_RTL8192E | ODM_RTL8812 | ODM_RTL8881A | ODM_RTL8814A | ODM_RTL8197F | ODM_RTL8822B))\r
1166                 ODM_TXPowerTrackingCallback_ThermalMeter(pDM_Odm);\r
1167         else\r
1168 #endif\r
1169         {\r
1170         }\r
1171 #endif  \r
1172 \r
1173 }\r
1174 \r
1175 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)\r
1176 \r
1177 VOID\r
1178 odm_TXPowerTrackingThermalMeterCheck(\r
1179         IN      PADAPTER                Adapter\r
1180         )\r
1181 {\r
1182 #ifndef AP_BUILD_WORKAROUND\r
1183 #if (HAL_CODE_BASE==RTL8192_C)\r
1184         PMGNT_INFO                      pMgntInfo = &Adapter->MgntInfo;\r
1185         //HAL_DATA_TYPE                 *pHalData = GET_HAL_DATA(Adapter);\r
1186         static u1Byte                   TM_Trigger = 0;\r
1187         //u1Byte                                        TxPowerCheckCnt = 5;    //10 sec\r
1188 \r
1189         if(!pMgntInfo->bTXPowerTracking /*|| (!pHalData->TxPowerTrackControl && pHalData->bAPKdone)*/)\r
1190         {\r
1191                 return;\r
1192         }\r
1193 \r
1194         if(!TM_Trigger)         //at least delay 1 sec\r
1195         {\r
1196                 if (IS_HARDWARE_TYPE_8188E(Adapter) || IS_HARDWARE_TYPE_8812(Adapter))\r
1197                         PHY_SetRFReg(Adapter, RF_PATH_A, RF_T_METER_88E, BIT17 | BIT16, 0x03);\r
1198                 else\r
1199                         PHY_SetRFReg(Adapter, RF_PATH_A, RF_T_METER, bRFRegOffsetMask, 0x60);\r
1200                 RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD,("Trigger 92C Thermal Meter!!\n"));\r
1201                 \r
1202                 TM_Trigger = 1;\r
1203                 return;\r
1204         }\r
1205         else\r
1206         {\r
1207                 RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD,("Schedule TxPowerTracking direct call!!\n"));           \r
1208                 odm_TXPowerTrackingDirectCall(Adapter); //Using direct call is instead, added by Roger, 2009.06.18.\r
1209                 TM_Trigger = 0;\r
1210         }\r
1211 #endif\r
1212 #endif\r
1213 }\r
1214 \r
1215 #endif\r
1216 \r