Lines Matching +full:0 +full:x429
20 {0x026, 0x41}, {0x027, 0x35}, {0x040, 0x00}, {0x421, 0x0f},
21 {0x428, 0x0a}, {0x429, 0x10}, {0x430, 0x00}, {0x431, 0x01},
22 {0x432, 0x02}, {0x433, 0x04}, {0x434, 0x05}, {0x435, 0x06},
23 {0x436, 0x07}, {0x437, 0x08}, {0x438, 0x00}, {0x439, 0x00},
24 {0x43a, 0x01}, {0x43b, 0x02}, {0x43c, 0x04}, {0x43d, 0x05},
25 {0x43e, 0x06}, {0x43f, 0x07}, {0x440, 0x5d}, {0x441, 0x01},
26 {0x442, 0x00}, {0x444, 0x15}, {0x445, 0xf0}, {0x446, 0x0f},
27 {0x447, 0x00}, {0x458, 0x41}, {0x459, 0xa8}, {0x45a, 0x72},
28 {0x45b, 0xb9}, {0x460, 0x66}, {0x461, 0x66}, {0x480, 0x08},
29 {0x4c8, 0xff}, {0x4c9, 0x08}, {0x4cc, 0xff}, {0x4cd, 0xff},
30 {0x4ce, 0x01}, {0x4d3, 0x01}, {0x500, 0x26}, {0x501, 0xa2},
31 {0x502, 0x2f}, {0x503, 0x00}, {0x504, 0x28}, {0x505, 0xa3},
32 {0x506, 0x5e}, {0x507, 0x00}, {0x508, 0x2b}, {0x509, 0xa4},
33 {0x50a, 0x5e}, {0x50b, 0x00}, {0x50c, 0x4f}, {0x50d, 0xa4},
34 {0x50e, 0x00}, {0x50f, 0x00}, {0x512, 0x1c}, {0x514, 0x0a},
35 {0x516, 0x0a}, {0x525, 0x4f}, {0x550, 0x10}, {0x551, 0x10},
36 {0x559, 0x02}, {0x55d, 0xff}, {0x605, 0x30}, {0x608, 0x0e},
37 {0x609, 0x2a}, {0x620, 0xff}, {0x621, 0xff}, {0x622, 0xff},
38 {0x623, 0xff}, {0x624, 0xff}, {0x625, 0xff}, {0x626, 0xff},
39 {0x627, 0xff}, {0x63c, 0x08}, {0x63d, 0x08}, {0x63e, 0x0c},
40 {0x63f, 0x0c}, {0x640, 0x40}, {0x652, 0x20}, {0x66e, 0x05},
41 {0x700, 0x21}, {0x701, 0x43}, {0x702, 0x65}, {0x703, 0x87},
42 {0x708, 0x21}, {0x709, 0x43}, {0x70a, 0x65}, {0x70b, 0x87},
43 {0xffff, 0xff},
47 {0x800, 0x80040000}, {0x804, 0x00000003},
48 {0x808, 0x0000fc00}, {0x80c, 0x0000000a},
49 {0x810, 0x10001331}, {0x814, 0x020c3d10},
50 {0x818, 0x02200385}, {0x81c, 0x00000000},
51 {0x820, 0x01000100}, {0x824, 0x00390204},
52 {0x828, 0x00000000}, {0x82c, 0x00000000},
53 {0x830, 0x00000000}, {0x834, 0x00000000},
54 {0x838, 0x00000000}, {0x83c, 0x00000000},
55 {0x840, 0x00010000}, {0x844, 0x00000000},
56 {0x848, 0x00000000}, {0x84c, 0x00000000},
57 {0x850, 0x00000000}, {0x854, 0x00000000},
58 {0x858, 0x569a11a9}, {0x85c, 0x01000014},
59 {0x860, 0x66f60110}, {0x864, 0x061f0649},
60 {0x868, 0x00000000}, {0x86c, 0x27272700},
61 {0x870, 0x07000760}, {0x874, 0x25004000},
62 {0x878, 0x00000808}, {0x87c, 0x00000000},
63 {0x880, 0xb0000c1c}, {0x884, 0x00000001},
64 {0x888, 0x00000000}, {0x88c, 0xccc000c0},
65 {0x890, 0x00000800}, {0x894, 0xfffffffe},
66 {0x898, 0x40302010}, {0x89c, 0x00706050},
67 {0x900, 0x00000000}, {0x904, 0x00000023},
68 {0x908, 0x00000000}, {0x90c, 0x81121111},
69 {0x910, 0x00000002}, {0x914, 0x00000201},
70 {0xa00, 0x00d047c8}, {0xa04, 0x80ff800c},
71 {0xa08, 0x8c838300}, {0xa0c, 0x2e7f120f},
72 {0xa10, 0x9500bb7e}, {0xa14, 0x1114d028},
73 {0xa18, 0x00881117}, {0xa1c, 0x89140f00},
74 {0xa20, 0x1a1b0000}, {0xa24, 0x090e1317},
75 {0xa28, 0x00000204}, {0xa2c, 0x00d30000},
76 {0xa70, 0x101fbf00}, {0xa74, 0x00000007},
77 {0xa78, 0x00000900}, {0xa7c, 0x225b0606},
78 {0xa80, 0x218075b1}, {0xb2c, 0x80000000},
79 {0xc00, 0x48071d40}, {0xc04, 0x03a05611},
80 {0xc08, 0x000000e4}, {0xc0c, 0x6c6c6c6c},
81 {0xc10, 0x08800000}, {0xc14, 0x40000100},
82 {0xc18, 0x08800000}, {0xc1c, 0x40000100},
83 {0xc20, 0x00000000}, {0xc24, 0x00000000},
84 {0xc28, 0x00000000}, {0xc2c, 0x00000000},
85 {0xc30, 0x69e9ac47}, {0xc34, 0x469652af},
86 {0xc38, 0x49795994}, {0xc3c, 0x0a97971c},
87 {0xc40, 0x1f7c403f}, {0xc44, 0x000100b7},
88 {0xc48, 0xec020107}, {0xc4c, 0x007f037f},
89 {0xc50, 0x69553420}, {0xc54, 0x43bc0094},
90 {0xc58, 0x00013169}, {0xc5c, 0x00250492},
91 {0xc60, 0x00000000}, {0xc64, 0x7112848b},
92 {0xc68, 0x47c00bff}, {0xc6c, 0x00000036},
93 {0xc70, 0x2c7f000d}, {0xc74, 0x020610db},
94 {0xc78, 0x0000001f}, {0xc7c, 0x00b91612},
95 {0xc80, 0x390000e4}, {0xc84, 0x21f60000},
96 {0xc88, 0x40000100}, {0xc8c, 0x20200000},
97 {0xc90, 0x00091521}, {0xc94, 0x00000000},
98 {0xc98, 0x00121820}, {0xc9c, 0x00007f7f},
99 {0xca0, 0x00000000}, {0xca4, 0x000300a0},
100 {0xca8, 0x00000000}, {0xcac, 0x00000000},
101 {0xcb0, 0x00000000}, {0xcb4, 0x00000000},
102 {0xcb8, 0x00000000}, {0xcbc, 0x28000000},
103 {0xcc0, 0x00000000}, {0xcc4, 0x00000000},
104 {0xcc8, 0x00000000}, {0xccc, 0x00000000},
105 {0xcd0, 0x00000000}, {0xcd4, 0x00000000},
106 {0xcd8, 0x64b22427}, {0xcdc, 0x00766932},
107 {0xce0, 0x00222222}, {0xce4, 0x00000000},
108 {0xce8, 0x37644302}, {0xcec, 0x2f97d40c},
109 {0xd00, 0x00000740}, {0xd04, 0x00020401},
110 {0xd08, 0x0000907f}, {0xd0c, 0x20010201},
111 {0xd10, 0xa0633333}, {0xd14, 0x3333bc43},
112 {0xd18, 0x7a8f5b6f}, {0xd2c, 0xcc979975},
113 {0xd30, 0x00000000}, {0xd34, 0x80608000},
114 {0xd38, 0x00000000}, {0xd3c, 0x00127353},
115 {0xd40, 0x00000000}, {0xd44, 0x00000000},
116 {0xd48, 0x00000000}, {0xd4c, 0x00000000},
117 {0xd50, 0x6437140a}, {0xd54, 0x00000000},
118 {0xd58, 0x00000282}, {0xd5c, 0x30032064},
119 {0xd60, 0x4653de68}, {0xd64, 0x04518a3c},
120 {0xd68, 0x00002101}, {0xd6c, 0x2a201c16},
121 {0xd70, 0x1812362e}, {0xd74, 0x322c2220},
122 {0xd78, 0x000e3c24}, {0xe00, 0x2d2d2d2d},
123 {0xe04, 0x2d2d2d2d}, {0xe08, 0x0390272d},
124 {0xe10, 0x2d2d2d2d}, {0xe14, 0x2d2d2d2d},
125 {0xe18, 0x2d2d2d2d}, {0xe1c, 0x2d2d2d2d},
126 {0xe28, 0x00000000}, {0xe30, 0x1000dc1f},
127 {0xe34, 0x10008c1f}, {0xe38, 0x02140102},
128 {0xe3c, 0x681604c2}, {0xe40, 0x01007c00},
129 {0xe44, 0x01004800}, {0xe48, 0xfb000000},
130 {0xe4c, 0x000028d1}, {0xe50, 0x1000dc1f},
131 {0xe54, 0x10008c1f}, {0xe58, 0x02140102},
132 {0xe5c, 0x28160d05}, {0xe60, 0x00000048},
133 {0xe68, 0x001b25a4}, {0xe6c, 0x00c00014},
134 {0xe70, 0x00c00014}, {0xe74, 0x01000014},
135 {0xe78, 0x01000014}, {0xe7c, 0x01000014},
136 {0xe80, 0x01000014}, {0xe84, 0x00c00014},
137 {0xe88, 0x01000014}, {0xe8c, 0x00c00014},
138 {0xed0, 0x00c00014}, {0xed4, 0x00c00014},
139 {0xed8, 0x00c00014}, {0xedc, 0x00000014},
140 {0xee0, 0x00000014}, {0xee8, 0x21555448},
141 {0xeec, 0x01c00014}, {0xf14, 0x00000003},
142 {0xf4c, 0x00000000}, {0xf00, 0x00000300},
143 {0xffff, 0xffffffff},
147 {0xc78, 0xfb000001}, {0xc78, 0xfb010001},
148 {0xc78, 0xfb020001}, {0xc78, 0xfb030001},
149 {0xc78, 0xfb040001}, {0xc78, 0xfb050001},
150 {0xc78, 0xfa060001}, {0xc78, 0xf9070001},
151 {0xc78, 0xf8080001}, {0xc78, 0xf7090001},
152 {0xc78, 0xf60a0001}, {0xc78, 0xf50b0001},
153 {0xc78, 0xf40c0001}, {0xc78, 0xf30d0001},
154 {0xc78, 0xf20e0001}, {0xc78, 0xf10f0001},
155 {0xc78, 0xf0100001}, {0xc78, 0xef110001},
156 {0xc78, 0xee120001}, {0xc78, 0xed130001},
157 {0xc78, 0xec140001}, {0xc78, 0xeb150001},
158 {0xc78, 0xea160001}, {0xc78, 0xe9170001},
159 {0xc78, 0xe8180001}, {0xc78, 0xe7190001},
160 {0xc78, 0xe61a0001}, {0xc78, 0xe51b0001},
161 {0xc78, 0xe41c0001}, {0xc78, 0xe31d0001},
162 {0xc78, 0xe21e0001}, {0xc78, 0xe11f0001},
163 {0xc78, 0x8a200001}, {0xc78, 0x89210001},
164 {0xc78, 0x88220001}, {0xc78, 0x87230001},
165 {0xc78, 0x86240001}, {0xc78, 0x85250001},
166 {0xc78, 0x84260001}, {0xc78, 0x83270001},
167 {0xc78, 0x82280001}, {0xc78, 0x6b290001},
168 {0xc78, 0x6a2a0001}, {0xc78, 0x692b0001},
169 {0xc78, 0x682c0001}, {0xc78, 0x672d0001},
170 {0xc78, 0x662e0001}, {0xc78, 0x652f0001},
171 {0xc78, 0x64300001}, {0xc78, 0x63310001},
172 {0xc78, 0x62320001}, {0xc78, 0x61330001},
173 {0xc78, 0x46340001}, {0xc78, 0x45350001},
174 {0xc78, 0x44360001}, {0xc78, 0x43370001},
175 {0xc78, 0x42380001}, {0xc78, 0x41390001},
176 {0xc78, 0x403a0001}, {0xc78, 0x403b0001},
177 {0xc78, 0x403c0001}, {0xc78, 0x403d0001},
178 {0xc78, 0x403e0001}, {0xc78, 0x403f0001},
179 {0xc78, 0xfb400001}, {0xc78, 0xfb410001},
180 {0xc78, 0xfb420001}, {0xc78, 0xfb430001},
181 {0xc78, 0xfb440001}, {0xc78, 0xfb450001},
182 {0xc78, 0xfb460001}, {0xc78, 0xfb470001},
183 {0xc78, 0xfb480001}, {0xc78, 0xfa490001},
184 {0xc78, 0xf94a0001}, {0xc78, 0xf84b0001},
185 {0xc78, 0xf74c0001}, {0xc78, 0xf64d0001},
186 {0xc78, 0xf54e0001}, {0xc78, 0xf44f0001},
187 {0xc78, 0xf3500001}, {0xc78, 0xf2510001},
188 {0xc78, 0xf1520001}, {0xc78, 0xf0530001},
189 {0xc78, 0xef540001}, {0xc78, 0xee550001},
190 {0xc78, 0xed560001}, {0xc78, 0xec570001},
191 {0xc78, 0xeb580001}, {0xc78, 0xea590001},
192 {0xc78, 0xe95a0001}, {0xc78, 0xe85b0001},
193 {0xc78, 0xe75c0001}, {0xc78, 0xe65d0001},
194 {0xc78, 0xe55e0001}, {0xc78, 0xe45f0001},
195 {0xc78, 0xe3600001}, {0xc78, 0xe2610001},
196 {0xc78, 0xc3620001}, {0xc78, 0xc2630001},
197 {0xc78, 0xc1640001}, {0xc78, 0x8b650001},
198 {0xc78, 0x8a660001}, {0xc78, 0x89670001},
199 {0xc78, 0x88680001}, {0xc78, 0x87690001},
200 {0xc78, 0x866a0001}, {0xc78, 0x856b0001},
201 {0xc78, 0x846c0001}, {0xc78, 0x676d0001},
202 {0xc78, 0x666e0001}, {0xc78, 0x656f0001},
203 {0xc78, 0x64700001}, {0xc78, 0x63710001},
204 {0xc78, 0x62720001}, {0xc78, 0x61730001},
205 {0xc78, 0x60740001}, {0xc78, 0x46750001},
206 {0xc78, 0x45760001}, {0xc78, 0x44770001},
207 {0xc78, 0x43780001}, {0xc78, 0x42790001},
208 {0xc78, 0x417a0001}, {0xc78, 0x407b0001},
209 {0xc78, 0x407c0001}, {0xc78, 0x407d0001},
210 {0xc78, 0x407e0001}, {0xc78, 0x407f0001},
211 {0xc50, 0x69553422}, {0xc50, 0x69553420},
212 {0xffff, 0xffffffff}
216 {0x00, 0x00030000}, {0x08, 0x00084000},
217 {0x18, 0x00000407}, {0x19, 0x00000012},
218 {0x1e, 0x00080009}, {0x1f, 0x00000880},
219 {0x2f, 0x0001a060}, {0x3f, 0x00000000},
220 {0x42, 0x000060c0}, {0x57, 0x000d0000},
221 {0x58, 0x000be180}, {0x67, 0x00001552},
222 {0x83, 0x00000000}, {0xb0, 0x000ff8fc},
223 {0xb1, 0x00054400}, {0xb2, 0x000ccc19},
224 {0xb4, 0x00043003}, {0xb6, 0x0004953e},
225 {0xb7, 0x0001c718}, {0xb8, 0x000060ff},
226 {0xb9, 0x00080001}, {0xba, 0x00040000},
227 {0xbb, 0x00000400}, {0xbf, 0x000c0000},
228 {0xc2, 0x00002400}, {0xc3, 0x00000009},
229 {0xc4, 0x00040c91}, {0xc5, 0x00099999},
230 {0xc6, 0x000000a3}, {0xc7, 0x00088820},
231 {0xc8, 0x00076c06}, {0xc9, 0x00000000},
232 {0xca, 0x00080000}, {0xdf, 0x00000180},
233 {0xef, 0x000001a0}, {0x51, 0x0006b27d},
234 {0x52, 0x0007e49d}, /* Set to 0x0007e4dd for SDIO */
235 {0x53, 0x00000073}, {0x56, 0x00051ff3},
236 {0x35, 0x00000086}, {0x35, 0x00000186},
237 {0x35, 0x00000286}, {0x36, 0x00001c25},
238 {0x36, 0x00009c25}, {0x36, 0x00011c25},
239 {0x36, 0x00019c25}, {0xb6, 0x00048538},
240 {0x18, 0x00000c07}, {0x5a, 0x0004bd00},
241 {0x19, 0x000739d0}, {0x34, 0x0000adf3},
242 {0x34, 0x00009df0}, {0x34, 0x00008ded},
243 {0x34, 0x00007dea}, {0x34, 0x00006de7},
244 {0x34, 0x000054ee}, {0x34, 0x000044eb},
245 {0x34, 0x000034e8}, {0x34, 0x0000246b},
246 {0x34, 0x00001468}, {0x34, 0x0000006d},
247 {0x00, 0x00030159}, {0x84, 0x00068200},
248 {0x86, 0x000000ce}, {0x87, 0x00048a00},
249 {0x8e, 0x00065540}, {0x8f, 0x00088000},
250 {0xef, 0x000020a0}, {0x3b, 0x000f02b0},
251 {0x3b, 0x000ef7b0}, {0x3b, 0x000d4fb0},
252 {0x3b, 0x000cf060}, {0x3b, 0x000b0090},
253 {0x3b, 0x000a0080}, {0x3b, 0x00090080},
254 {0x3b, 0x0008f780}, {0x3b, 0x000722b0},
255 {0x3b, 0x0006f7b0}, {0x3b, 0x00054fb0},
256 {0x3b, 0x0004f060}, {0x3b, 0x00030090},
257 {0x3b, 0x00020080}, {0x3b, 0x00010080},
258 {0x3b, 0x0000f780}, {0xef, 0x000000a0},
259 {0x00, 0x00010159}, {0x18, 0x0000f407},
260 {0xFE, 0x00000000}, {0xFE, 0x00000000},
261 {0x1F, 0x00080003}, {0xFE, 0x00000000},
262 {0xFE, 0x00000000}, {0x1E, 0x00000001},
263 {0x1F, 0x00080000}, {0x00, 0x00033e60},
264 {0xff, 0xffffffff}
273 {5, 4, 3, 2, 0, 3}, /* 92 , idx=0 */
274 {6, 5, 4, 3, 0, 4}, /* 86 , idx=1 */
275 {6, 5, 4, 2, 0, 4}, /* 81 , idx=2 */
276 {8, 7, 6, 4, 0, 6}, /* 75 , idx=3 */
277 {10, 9, 8, 6, 0, 8}, /* 71 , idx=4 */
278 {10, 9, 8, 4, 0, 8}, /* 66 , idx=5 */
279 {10, 9, 8, 2, 0, 8}, /* 62 , idx=6 */
280 {10, 9, 8, 0, 0, 8}, /* 59 , idx=7 */
281 {18, 17, 16, 8, 0, 16}, /* 53 , idx=8 */
282 {26, 25, 24, 16, 0, 24}, /* 50 , idx=9 */
283 {34, 33, 32, 24, 0, 32}, /* 47 , idx=0x0a */
284 {34, 31, 28, 20, 0, 32}, /* 43 , idx=0x0b */
285 {34, 31, 27, 18, 0, 32}, /* 40 , idx=0x0c */
286 {34, 31, 26, 16, 0, 32}, /* 37 , idx=0x0d */
287 {34, 30, 22, 16, 0, 32}, /* 32 , idx=0x0e */
288 {34, 30, 24, 16, 0, 32}, /* 26 , idx=0x0f */
289 {49, 46, 40, 16, 0, 48}, /* 20 , idx=0x10 */
290 {49, 45, 32, 0, 0, 48}, /* 17 , idx=0x11 */
291 {49, 45, 22, 18, 0, 48}, /* 15 , idx=0x12 */
292 {49, 40, 24, 16, 0, 48}, /* 12 , idx=0x13 */
293 {49, 32, 18, 12, 0, 48}, /* 9 , idx=0x14 */
294 {49, 22, 18, 14, 0, 48}, /* 6 , idx=0x15 */
295 {49, 16, 16, 0, 0, 48} /* 3, idx=0x16 */
298 static const u8 pt_penalty[RETRYSIZE + 1] = {34, 31, 30, 24, 0, 32};
303 4, 4, 5, 7, 7, 7, 8, 0x0a,
304 4, 4, 4, 4, 6, 0x0a, 0x0b, 0x0d,
305 5, 5, 7, 7, 8, 0x0b, 0x0d, 0x0f
308 0x0a, 0x0a, 0x0b, 0x0c,
309 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x13, 0x13,
310 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x11, 0x13, 0x13,
311 9, 9, 9, 9, 0x0c, 0x0e, 0x11, 0x13
318 4, 4, 5, 7, 7, 7, 8, 0x0a,
319 4, 4, 4, 4, 6, 0x0a, 0x0b, 0x0d,
320 5, 5, 7, 7, 8, 0x0b, 0x0d, 0x0f
323 0x0a, 0x0a, 0x0b, 0x0c,
324 0x0a, 0x0a, 0x0b, 0x0c, 0x0d, 0x10, 0x13, 0x13,
325 0x06, 0x07, 0x08, 0x0d, 0x0e, 0x11, 0x11, 0x11,
326 9, 9, 9, 9, 0x0c, 0x0e, 0x11, 0x13
331 0x0c, 0x0d, 0x0d, 0x0f,
332 0x0d, 0x0e, 0x0f, 0x0f, 0x10, 0x12, 0x13, 0x14,
333 0x0f, 0x10, 0x10, 0x12, 0x12, 0x13, 0x14, 0x15,
334 0x11, 0x11, 0x12, 0x13, 0x13, 0x13, 0x14, 0x15
338 0x0c, 0x0d, 0x0d, 0x0f,
339 0x0d, 0x0e, 0x0f, 0x0f, 0x10, 0x12, 0x13, 0x14,
340 0x0b, 0x0b, 0x11, 0x11, 0x12, 0x12, 0x12, 0x12,
341 0x11, 0x11, 0x12, 0x13, 0x13, 0x13, 0x14, 0x15
345 0, 0, 0, 0,
346 0, 0, 0, 0, 0, 0x24, 0x26, 0x2a,
347 0x18, 0x1a, 0x1d, 0x1f, 0x21, 0x27, 0x29, 0x2a,
348 0, 0, 0, 0x1f, 0x23, 0x28, 0x2a, 0x2c
375 0x186a, 0x30d4, 0x493e, 0x61a8, 0x7a12, 0x927c /* 200ms-1200ms */
379 DEFAULT_TIMING = 0,
388 int ret = 0; in rtl8188eu_identify_chip()
455 sec_ch_above = 0; in rtl8188eu_config_channel()
487 val32 &= ~OFDM_LSTF_PRIME_CH_MASK; /* 0xc00 */ in rtl8188eu_config_channel()
541 if (efuse->rtl_id != cpu_to_le16(0x8129)) in rtl8188eu_parse_efuse()
553 priv->default_crystal_cap = efuse->xtal_k & 0x3f; in rtl8188eu_parse_efuse()
555 return 0; in rtl8188eu_parse_efuse()
613 int result = 0; in rtl8188eu_iqk_path_a()
616 rtl8xxxu_write32(priv, REG_TX_IQK_TONE_A, 0x10008c1c); in rtl8188eu_iqk_path_a()
617 rtl8xxxu_write32(priv, REG_RX_IQK_TONE_A, 0x30008c1c); in rtl8188eu_iqk_path_a()
619 rtl8xxxu_write32(priv, REG_TX_IQK_PI_A, 0x8214032a); in rtl8188eu_iqk_path_a()
620 rtl8xxxu_write32(priv, REG_RX_IQK_PI_A, 0x28160000); in rtl8188eu_iqk_path_a()
623 rtl8xxxu_write32(priv, REG_IQK_AGC_RSP, 0x00462911); in rtl8188eu_iqk_path_a()
626 rtl8xxxu_write32(priv, REG_IQK_AGC_PTS, 0xf9000000); in rtl8188eu_iqk_path_a()
627 rtl8xxxu_write32(priv, REG_IQK_AGC_PTS, 0xf8000000); in rtl8188eu_iqk_path_a()
637 ((reg_e94 & 0x03ff0000) != 0x01420000) && in rtl8188eu_iqk_path_a()
638 ((reg_e9c & 0x03ff0000) != 0x00420000)) in rtl8188eu_iqk_path_a()
639 result |= 0x01; in rtl8188eu_iqk_path_a()
647 int result = 0; in rtl8188eu_rx_iqk_path_a()
651 u32p_replace_bits(&val32, 0, 0xffffff00); in rtl8188eu_rx_iqk_path_a()
655 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_WE_LUT, 0x800a0); in rtl8188eu_rx_iqk_path_a()
656 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_RCK_OS, 0x30000); in rtl8188eu_rx_iqk_path_a()
657 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_TXPA_G1, 0x0000f); in rtl8188eu_rx_iqk_path_a()
658 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_TXPA_G2, 0xf117b); in rtl8188eu_rx_iqk_path_a()
662 u32p_replace_bits(&val32, 0x808000, 0xffffff00); in rtl8188eu_rx_iqk_path_a()
666 rtl8xxxu_write32(priv, REG_TX_IQK, 0x01007c00); in rtl8188eu_rx_iqk_path_a()
667 rtl8xxxu_write32(priv, REG_RX_IQK, 0x81004800); in rtl8188eu_rx_iqk_path_a()
670 rtl8xxxu_write32(priv, REG_TX_IQK_TONE_A, 0x10008c1c); in rtl8188eu_rx_iqk_path_a()
671 rtl8xxxu_write32(priv, REG_RX_IQK_TONE_A, 0x30008c1c); in rtl8188eu_rx_iqk_path_a()
673 rtl8xxxu_write32(priv, REG_TX_IQK_PI_A, 0x82160804); in rtl8188eu_rx_iqk_path_a()
674 rtl8xxxu_write32(priv, REG_RX_IQK_PI_A, 0x28160000); in rtl8188eu_rx_iqk_path_a()
677 rtl8xxxu_write32(priv, REG_IQK_AGC_RSP, 0x0046a911); in rtl8188eu_rx_iqk_path_a()
680 rtl8xxxu_write32(priv, REG_IQK_AGC_PTS, 0xf9000000); in rtl8188eu_rx_iqk_path_a()
681 rtl8xxxu_write32(priv, REG_IQK_AGC_PTS, 0xf8000000); in rtl8188eu_rx_iqk_path_a()
691 ((reg_e94 & 0x03ff0000) != 0x01420000) && in rtl8188eu_rx_iqk_path_a()
692 ((reg_e9c & 0x03ff0000) != 0x00420000)) in rtl8188eu_rx_iqk_path_a()
693 result |= 0x01; in rtl8188eu_rx_iqk_path_a()
697 val32 = 0x80007c00 | in rtl8188eu_rx_iqk_path_a()
698 (reg_e94 & 0x03ff0000) | ((reg_e9c >> 16) & 0x03ff); in rtl8188eu_rx_iqk_path_a()
703 u32p_replace_bits(&val32, 0, 0xffffff00); in rtl8188eu_rx_iqk_path_a()
706 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_WE_LUT, 0x800a0); in rtl8188eu_rx_iqk_path_a()
707 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_RCK_OS, 0x30000); in rtl8188eu_rx_iqk_path_a()
708 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_TXPA_G1, 0x0000f); in rtl8188eu_rx_iqk_path_a()
709 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_TXPA_G2, 0xf7ffa); in rtl8188eu_rx_iqk_path_a()
713 u32p_replace_bits(&val32, 0x808000, 0xffffff00); in rtl8188eu_rx_iqk_path_a()
717 rtl8xxxu_write32(priv, REG_RX_IQK, 0x01004800); in rtl8188eu_rx_iqk_path_a()
720 rtl8xxxu_write32(priv, REG_TX_IQK_TONE_A, 0x30008c1c); in rtl8188eu_rx_iqk_path_a()
721 rtl8xxxu_write32(priv, REG_RX_IQK_TONE_A, 0x10008c1c); in rtl8188eu_rx_iqk_path_a()
723 rtl8xxxu_write32(priv, REG_TX_IQK_PI_A, 0x82160c05); in rtl8188eu_rx_iqk_path_a()
724 rtl8xxxu_write32(priv, REG_RX_IQK_PI_A, 0x28160c05); in rtl8188eu_rx_iqk_path_a()
727 rtl8xxxu_write32(priv, REG_IQK_AGC_RSP, 0x0046a911); in rtl8188eu_rx_iqk_path_a()
730 rtl8xxxu_write32(priv, REG_IQK_AGC_PTS, 0xf9000000); in rtl8188eu_rx_iqk_path_a()
731 rtl8xxxu_write32(priv, REG_IQK_AGC_PTS, 0xf8000000); in rtl8188eu_rx_iqk_path_a()
739 ((reg_ea4 & 0x03ff0000) != 0x01320000) && in rtl8188eu_rx_iqk_path_a()
740 ((reg_eac & 0x03ff0000) != 0x00360000)) in rtl8188eu_rx_iqk_path_a()
741 result |= 0x02; in rtl8188eu_rx_iqk_path_a()
783 if (t == 0) { in rtl8188eu_phy_iqcalibrate()
794 if (t == 0) { in rtl8188eu_phy_iqcalibrate()
801 rtl8xxxu_write32(priv, REG_FPGA0_XA_HSSI_PARM1, 0x01000100); in rtl8188eu_phy_iqcalibrate()
802 rtl8xxxu_write32(priv, REG_FPGA0_XB_HSSI_PARM1, 0x01000100); in rtl8188eu_phy_iqcalibrate()
809 u32p_replace_bits(&val32, 0xf, 0x0f000000); in rtl8188eu_phy_iqcalibrate()
812 rtl8xxxu_write32(priv, REG_OFDM0_TRX_PATH_ENABLE, 0x03a05600); in rtl8188eu_phy_iqcalibrate()
813 rtl8xxxu_write32(priv, REG_OFDM0_TR_MUX_PAR, 0x000800e4); in rtl8188eu_phy_iqcalibrate()
814 rtl8xxxu_write32(priv, REG_FPGA0_XCD_RF_SW_CTRL, 0x22204000); in rtl8188eu_phy_iqcalibrate()
831 rtl8xxxu_write32(priv, REG_CONFIG_ANT_A, 0x0f600000); in rtl8188eu_phy_iqcalibrate()
835 u32p_replace_bits(&val32, 0x808000, 0xffffff00); in rtl8188eu_phy_iqcalibrate()
837 rtl8xxxu_write32(priv, REG_TX_IQK, 0x01007c00); in rtl8188eu_phy_iqcalibrate()
838 rtl8xxxu_write32(priv, REG_RX_IQK, 0x81004800); in rtl8188eu_phy_iqcalibrate()
840 for (i = 0; i < retry; i++) { in rtl8188eu_phy_iqcalibrate()
842 if (path_a_ok == 0x01) { in rtl8188eu_phy_iqcalibrate()
845 result[t][0] = (val32 >> 16) & 0x3ff; in rtl8188eu_phy_iqcalibrate()
848 result[t][1] = (val32 >> 16) & 0x3ff; in rtl8188eu_phy_iqcalibrate()
856 for (i = 0; i < retry; i++) { in rtl8188eu_phy_iqcalibrate()
858 if (path_a_ok == 0x03) { in rtl8188eu_phy_iqcalibrate()
861 result[t][2] = (val32 >> 16) & 0x3ff; in rtl8188eu_phy_iqcalibrate()
864 result[t][3] = (val32 >> 16) & 0x3ff; in rtl8188eu_phy_iqcalibrate()
875 u32p_replace_bits(&val32, 0, 0xffffff00); in rtl8188eu_phy_iqcalibrate()
878 if (t == 0) in rtl8188eu_phy_iqcalibrate()
883 rtl8xxxu_write32(priv, REG_FPGA0_XA_HSSI_PARM1, 0x01000000); in rtl8188eu_phy_iqcalibrate()
884 rtl8xxxu_write32(priv, REG_FPGA0_XB_HSSI_PARM1, 0x01000000); in rtl8188eu_phy_iqcalibrate()
899 rtl8xxxu_write32(priv, REG_FPGA0_XA_LSSI_PARM, 0x00032ed3); in rtl8188eu_phy_iqcalibrate()
901 /* Load 0xe30 IQC default value */ in rtl8188eu_phy_iqcalibrate()
902 rtl8xxxu_write32(priv, REG_TX_IQK_TONE_A, 0x01008c00); in rtl8188eu_phy_iqcalibrate()
903 rtl8xxxu_write32(priv, REG_RX_IQK_TONE_A, 0x01008c00); in rtl8188eu_phy_iqcalibrate()
916 memset(result, 0, sizeof(result)); in rtl8188eu_phy_iq_calibrate()
917 result[3][0] = 0x100; in rtl8188eu_phy_iq_calibrate()
918 result[3][2] = 0x100; in rtl8188eu_phy_iq_calibrate()
919 result[3][4] = 0x100; in rtl8188eu_phy_iq_calibrate()
920 result[3][6] = 0x100; in rtl8188eu_phy_iq_calibrate()
926 for (i = 0; i < 3; i++) { in rtl8188eu_phy_iq_calibrate()
931 result, 0, 1); in rtl8188eu_phy_iq_calibrate()
933 candidate = 0; in rtl8188eu_phy_iq_calibrate()
940 result, 0, 2); in rtl8188eu_phy_iq_calibrate()
942 candidate = 0; in rtl8188eu_phy_iq_calibrate()
955 if (candidate >= 0) { in rtl8188eu_phy_iq_calibrate()
956 reg_e94 = result[candidate][0]; in rtl8188eu_phy_iq_calibrate()
975 reg_e94 = 0x100; in rtl8188eu_phy_iq_calibrate()
976 reg_eb4 = 0x100; in rtl8188eu_phy_iq_calibrate()
977 priv->rege94 = 0x100; in rtl8188eu_phy_iq_calibrate()
978 priv->regeb4 = 0x100; in rtl8188eu_phy_iq_calibrate()
979 reg_e9c = 0x0; in rtl8188eu_phy_iq_calibrate()
980 reg_ebc = 0x0; in rtl8188eu_phy_iq_calibrate()
981 priv->rege9c = 0x0; in rtl8188eu_phy_iq_calibrate()
982 priv->regebc = 0x0; in rtl8188eu_phy_iq_calibrate()
985 if (reg_e94 && candidate >= 0) in rtl8188eu_phy_iq_calibrate()
987 candidate, (reg_ea4 == 0)); in rtl8188eu_phy_iq_calibrate()
1007 int count, ret = 0; in rtl8188e_emu_to_active()
1009 /* wait till 0x04[17] = 1 power ready*/ in rtl8188e_emu_to_active()
1028 /*0x24[23] = 2b'01 schmit trigger */ in rtl8188e_emu_to_active()
1033 /* 0x04[15] = 0 disable HWPDN (control by DRV)*/ in rtl8188e_emu_to_active()
1038 /*0x04[12:11] = 2b'00 disable WL suspend*/ in rtl8188e_emu_to_active()
1043 /* set, then poll until 0 */ in rtl8188e_emu_to_active()
1050 if ((val32 & APS_FSMCO_MAC_ENABLE) == 0) { in rtl8188e_emu_to_active()
1051 ret = 0; in rtl8188e_emu_to_active()
1085 return 0; in rtl8188eu_active_to_emu()
1103 rtl8xxxu_write8(priv, REG_APS_FSMCO + 3, 0x00); in rtl8188eu_emu_to_disabled()
1109 /* Set USB suspend enable local register 0xfe10[4]=1 */ in rtl8188eu_emu_to_disabled()
1110 val8 = rtl8xxxu_read8(priv, 0xfe10); in rtl8188eu_emu_to_disabled()
1112 rtl8xxxu_write8(priv, 0xfe10, val8); in rtl8188eu_emu_to_disabled()
1114 return 0; in rtl8188eu_emu_to_disabled()
1125 rtl8xxxu_write8(priv, REG_TXPAUSE, 0x7f); in rtl8188eu_active_to_lps()
1129 /* Poll 32 bit wide REG_SCH_TX_CMD for 0 to ensure no TX is pending. */ in rtl8188eu_active_to_lps()
1133 retval = 0; in rtl8188eu_active_to_lps()
1153 val16 |= 0xff; in rtl8188eu_active_to_lps()
1207 rtl8xxxu_write8(priv, REG_RF_CTRL, 0x00); in rtl8188eu_power_off()
1221 rtl8xxxu_write8(priv, REG_MCU_FW_DL, 0x00); in rtl8188eu_power_off()
1225 val8 &= ~BIT(0); in rtl8188eu_power_off()
1244 rtl8xxxu_write8(priv, REG_GPIO_PIN_CTRL + 2, 0xff); in rtl8188eu_power_off()
1249 rtl8xxxu_write8(priv, REG_GPIO_IO_SEL + 1, val8 | 0x0f); in rtl8188eu_power_off()
1255 rtl8xxxu_write32(priv, REG_PAD_CTRL1, 0x00080808); in rtl8188eu_power_off()
1257 rtl8xxxu_write8(priv, REG_RSV_CTRL, 0x00); in rtl8188eu_power_off()
1259 rtl8xxxu_write32(priv, REG_GPIO_MUXCFG, 0x00000000); in rtl8188eu_power_off()
1273 rtl8xxxu_write8(priv, REG_TXPAUSE, 0x00); in rtl8188e_enable_rf()
1285 rtl8xxxu_write_rfreg(priv, RF_A, RF6052_REG_AC, 0); in rtl8188e_disable_rf()
1306 rtl8xxxu_write8(priv, REG_EARLY_MODE_CONTROL_8188E + 3, 0x01); in rtl8188e_usb_quirks()
1311 /* only use lna 0/1/2/3/7 */ in rtl8188e_cck_rssi()
1317 s8 rx_pwr_all = 0x00; in rtl8188e_cck_rssi()
1319 s8 lna_gain = 0; in rtl8188e_cck_rssi()
1355 return 0; in rtl8188eu_led_brightness_set()
1362 for (idx = 0; idx < 5; idx++) in rtl8188e_set_tx_rpt_timing()
1367 idx = 0; /* 200ms */ in rtl8188e_set_tx_rpt_timing()
1372 if (idx > 0) in rtl8188e_set_tx_rpt_timing()
1389 ra->rate_sgi = 0; in rtl8188e_rate_down()
1391 if (rate_id > 0) { in rtl8188e_rate_down()
1408 ra->ra_waiting_counter = 0; in rtl8188e_rate_down()
1409 ra->ra_pending_counter = 0; in rtl8188e_rate_down()
1429 ra->ra_waiting_counter = 0; in rtl8188e_rate_up()
1430 ra->ra_pending_counter = 0; in rtl8188e_rate_up()
1449 ra->rate_sgi = 0; in rtl8188e_rate_up()
1456 ra->ra_waiting_counter = 0; in rtl8188e_rate_up()
1480 if (ra->total == 0) in rtl8188e_rate_decision()
1492 retry_penalty_idx_0 = retry_penalty_idx_cut_i[0]; in rtl8188e_rate_decision()
1496 retry_penalty_idx_0 = retry_penalty_idx_normal[0]; in rtl8188e_rate_decision()
1504 ra->ra_waiting_counter = 0; in rtl8188e_rate_decision()
1505 ra->ra_pending_counter = 0; in rtl8188e_rate_decision()
1520 for (i = 0; i < 5; i++) in rtl8188e_rate_decision()
1526 ra->nsc_down = 0; in rtl8188e_rate_decision()
1531 for (i = 0; i < 5; i++) in rtl8188e_rate_decision()
1537 ra->nsc_up = 0; in rtl8188e_rate_decision()
1555 ra->dynamic_tx_rpt_timing_counter = 0; in rtl8188e_rate_decision()
1560 ra->dynamic_tx_rpt_timing_counter = 0; in rtl8188e_rate_decision()
1570 ra->pt_try_state = 0; in rtl8188e_power_training_try_state()
1584 case 0: in rtl8188e_power_training_try_state()
1593 ra->pt_stage = 0; in rtl8188e_power_training_try_state()
1599 if (ra->pt_stage == 0) in rtl8188e_power_training_try_state()
1607 ra->pt_stop_count = 0; in rtl8188e_power_training_try_state()
1609 ra->ra_stage = 0; in rtl8188e_power_training_try_state()
1613 ra->pt_stage = 0; in rtl8188e_power_training_try_state()
1614 ra->ra_stage = 0; in rtl8188e_power_training_try_state()
1623 ra->pt_stage = 0; in rtl8188e_power_training_try_state()
1624 ra->ra_stage = 0; in rtl8188e_power_training_try_state()
1625 ra->pt_stop_count = 0; in rtl8188e_power_training_try_state()
1637 numsc = 0; in rtl8188e_power_training_decision()
1639 for (j = 0; j <= 4; j++) { in rtl8188e_power_training_decision()
1651 stage_id = 0; in rtl8188e_power_training_decision()
1660 if (temp_stage != 0) in rtl8188e_power_training_decision()
1663 temp_stage = 0; in rtl8188e_power_training_decision()
1673 u32 tx_rpt_len = rx_desc->pktlen & 0x3ff; in rtl8188e_handle_ra_tx_report2()
1679 u16 min_rpt_time = 0x927c; in rtl8188e_handle_ra_tx_report2()
1683 /* We only use macid 0, so only the first item is relevant. in rtl8188e_handle_ra_tx_report2()
1686 if (!priv->vifs[0] || priv->vifs[0]->type == NL80211_IFTYPE_STATION) in rtl8188e_handle_ra_tx_report2()
1689 for (macid = 0; macid < items; macid++) { in rtl8188e_handle_ra_tx_report2()
1696 ra->retry[0] = le16_to_cpu(*(__le16 *)rpt); in rtl8188e_handle_ra_tx_report2()
1702 ra->total = ra->retry[0] + ra->retry[1] + ra->retry[2] + in rtl8188e_handle_ra_tx_report2()
1705 if (ra->total > 0) { in rtl8188e_handle_ra_tx_report2()
1716 ra->ra_stage = 0; in rtl8188e_handle_ra_tx_report2()
1718 } else if (macid == 0) { in rtl8188e_handle_ra_tx_report2()
1719 dev_warn(dev, "%s: TX report item 0 not valid\n", __func__); in rtl8188e_handle_ra_tx_report2()
1724 ra->retry[0], ra->retry[1], ra->retry[2], in rtl8188e_handle_ra_tx_report2()
1747 for (i = RATESIZE; i >= 0; i--) { in rtl8188e_arfb_refresh()
1754 ra->highest_rate = 0; in rtl8188e_arfb_refresh()
1759 for (i = 0; i < RATESIZE; i++) { in rtl8188e_arfb_refresh()
1766 ra->lowest_rate = 0; in rtl8188e_arfb_refresh()
1776 ra->pt_mode_ss = 0; in rtl8188e_arfb_refresh()
1803 ra->lowest_rate = 0; in rtl8188e_ra_info_init_all()
1804 ra->rate_id = 0; in rtl8188e_ra_info_init_all()
1805 ra->rate_mask = 0xfffff; in rtl8188e_ra_info_init_all()
1806 ra->rssi_sta_ra = 0; in rtl8188e_ra_info_init_all()
1807 ra->pre_rssi_sta_ra = 0; in rtl8188e_ra_info_init_all()
1808 ra->sgi_enable = 0; in rtl8188e_ra_info_init_all()
1809 ra->ra_use_rate = 0xfffff; in rtl8188e_ra_info_init_all()
1812 ra->rate_sgi = 0; in rtl8188e_ra_info_init_all()
1813 ra->rpt_time = 0x927c; in rtl8188e_ra_info_init_all()
1814 ra->drop = 0; in rtl8188e_ra_info_init_all()
1815 ra->retry[0] = 0; in rtl8188e_ra_info_init_all()
1816 ra->retry[1] = 0; in rtl8188e_ra_info_init_all()
1817 ra->retry[2] = 0; in rtl8188e_ra_info_init_all()
1818 ra->retry[3] = 0; in rtl8188e_ra_info_init_all()
1819 ra->retry[4] = 0; in rtl8188e_ra_info_init_all()
1820 ra->total = 0; in rtl8188e_ra_info_init_all()
1821 ra->ra_waiting_counter = 0; in rtl8188e_ra_info_init_all()
1822 ra->ra_pending_counter = 0; in rtl8188e_ra_info_init_all()
1823 ra->ra_drop_after_down = 0; in rtl8188e_ra_info_init_all()
1825 ra->pt_try_state = 0; in rtl8188e_ra_info_init_all()
1828 ra->pt_stop_count = 0; in rtl8188e_ra_info_init_all()
1829 ra->pt_pre_rate = 0; in rtl8188e_ra_info_init_all()
1830 ra->pt_pre_rssi = 0; in rtl8188e_ra_info_init_all()
1831 ra->pt_mode_ss = 0; in rtl8188e_ra_info_init_all()
1832 ra->ra_stage = 0; in rtl8188e_ra_info_init_all()
1870 .adda_1t_init = 0x0b1b25a0,
1871 .adda_1t_path_on = 0x0bdb25a0,
1876 .trxff_boundary = 0x25ff,