1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 2 /* Copyright(c) 2024 Realtek Corporation 3 */ 4 5 #include "main.h" 6 #include "phy.h" 7 #include "rtw8812a_table.h" 8 9 static const u32 rtw8812a_mac[] = { 10 0x010, 0x0000000C, 11 0x80000200, 0x00000000, 0x40000000, 0x00000000, 12 0x011, 0x00000066, 13 0xA0000000, 0x00000000, 14 0x011, 0x0000005A, 15 0xB0000000, 0x00000000, 16 0x025, 0x0000000F, 17 0x072, 0x00000000, 18 0x420, 0x00000080, 19 0x428, 0x0000000A, 20 0x429, 0x00000010, 21 0x430, 0x00000000, 22 0x431, 0x00000000, 23 0x432, 0x00000000, 24 0x433, 0x00000001, 25 0x434, 0x00000002, 26 0x435, 0x00000003, 27 0x436, 0x00000005, 28 0x437, 0x00000007, 29 0x438, 0x00000000, 30 0x439, 0x00000000, 31 0x43A, 0x00000000, 32 0x43B, 0x00000001, 33 0x43C, 0x00000002, 34 0x43D, 0x00000003, 35 0x43E, 0x00000005, 36 0x43F, 0x00000007, 37 0x440, 0x0000005D, 38 0x441, 0x00000001, 39 0x442, 0x00000000, 40 0x444, 0x00000010, 41 0x445, 0x00000000, 42 0x446, 0x00000000, 43 0x447, 0x00000000, 44 0x448, 0x00000000, 45 0x449, 0x000000F0, 46 0x44A, 0x0000000F, 47 0x44B, 0x0000003E, 48 0x44C, 0x00000010, 49 0x44D, 0x00000000, 50 0x44E, 0x00000000, 51 0x44F, 0x00000000, 52 0x450, 0x00000000, 53 0x451, 0x000000F0, 54 0x452, 0x0000000F, 55 0x453, 0x00000000, 56 0x45B, 0x00000080, 57 0x460, 0x00000066, 58 0x461, 0x00000066, 59 0x4C8, 0x000000FF, 60 0x4C9, 0x00000008, 61 0x4CC, 0x000000FF, 62 0x4CD, 0x000000FF, 63 0x4CE, 0x00000001, 64 0x500, 0x00000026, 65 0x501, 0x000000A2, 66 0x502, 0x0000002F, 67 0x503, 0x00000000, 68 0x504, 0x00000028, 69 0x505, 0x000000A3, 70 0x506, 0x0000005E, 71 0x507, 0x00000000, 72 0x508, 0x0000002B, 73 0x509, 0x000000A4, 74 0x50A, 0x0000005E, 75 0x50B, 0x00000000, 76 0x50C, 0x0000004F, 77 0x50D, 0x000000A4, 78 0x50E, 0x00000000, 79 0x50F, 0x00000000, 80 0x512, 0x0000001C, 81 0x514, 0x0000000A, 82 0x516, 0x0000000A, 83 0x525, 0x0000004F, 84 0x550, 0x00000010, 85 0x551, 0x00000010, 86 0x559, 0x00000002, 87 0x55C, 0x00000050, 88 0x55D, 0x000000FF, 89 0x604, 0x00000009, 90 0x605, 0x00000030, 91 0x607, 0x00000003, 92 0x608, 0x0000000E, 93 0x609, 0x0000002A, 94 0x620, 0x000000FF, 95 0x621, 0x000000FF, 96 0x622, 0x000000FF, 97 0x623, 0x000000FF, 98 0x624, 0x000000FF, 99 0x625, 0x000000FF, 100 0x626, 0x000000FF, 101 0x627, 0x000000FF, 102 0x638, 0x00000050, 103 0x63C, 0x0000000A, 104 0x63D, 0x0000000A, 105 0x63E, 0x0000000E, 106 0x63F, 0x0000000E, 107 0x640, 0x00000080, 108 0x642, 0x00000040, 109 0x643, 0x00000000, 110 0x652, 0x000000C8, 111 0x66E, 0x00000005, 112 0x700, 0x00000021, 113 0x701, 0x00000043, 114 0x702, 0x00000065, 115 0x703, 0x00000087, 116 0x708, 0x00000021, 117 0x709, 0x00000043, 118 0x70A, 0x00000065, 119 0x70B, 0x00000087, 120 0x718, 0x00000040, 121 }; 122 123 RTW_DECL_TABLE_PHY_COND(rtw8812a_mac, rtw_phy_cfg_mac); 124 125 static const u32 rtw8812a_agc[] = { 126 0x80000001, 0x00000000, 0x40000000, 0x00000000, 127 0x81C, 0xFC000001, 128 0x81C, 0xFB020001, 129 0x81C, 0xFA040001, 130 0x81C, 0xF9060001, 131 0x81C, 0xF8080001, 132 0x81C, 0xF70A0001, 133 0x81C, 0xF60C0001, 134 0x81C, 0xF50E0001, 135 0x81C, 0xF4100001, 136 0x81C, 0xF3120001, 137 0x81C, 0xF2140001, 138 0x81C, 0xF1160001, 139 0x81C, 0xF0180001, 140 0x81C, 0xEF1A0001, 141 0x81C, 0xEE1C0001, 142 0x81C, 0xED1E0001, 143 0x81C, 0xEC200001, 144 0x81C, 0xEB220001, 145 0x81C, 0xEA240001, 146 0x81C, 0xCD260001, 147 0x81C, 0xCC280001, 148 0x81C, 0xCB2A0001, 149 0x81C, 0xCA2C0001, 150 0x81C, 0xC92E0001, 151 0x81C, 0xC8300001, 152 0x81C, 0xA6320001, 153 0x81C, 0xA5340001, 154 0x81C, 0xA4360001, 155 0x81C, 0xA3380001, 156 0x81C, 0xA23A0001, 157 0x81C, 0x883C0001, 158 0x81C, 0x873E0001, 159 0x81C, 0x86400001, 160 0x81C, 0x85420001, 161 0x81C, 0x84440001, 162 0x81C, 0x83460001, 163 0x81C, 0x82480001, 164 0x81C, 0x814A0001, 165 0x81C, 0x484C0001, 166 0x81C, 0x474E0001, 167 0x81C, 0x46500001, 168 0x81C, 0x45520001, 169 0x81C, 0x44540001, 170 0x81C, 0x43560001, 171 0x81C, 0x42580001, 172 0x81C, 0x415A0001, 173 0x81C, 0x255C0001, 174 0x81C, 0x245E0001, 175 0x81C, 0x23600001, 176 0x81C, 0x22620001, 177 0x81C, 0x21640001, 178 0x81C, 0x21660001, 179 0x81C, 0x21680001, 180 0x81C, 0x216A0001, 181 0x81C, 0x216C0001, 182 0x81C, 0x216E0001, 183 0x81C, 0x21700001, 184 0x81C, 0x21720001, 185 0x81C, 0x21740001, 186 0x81C, 0x21760001, 187 0x81C, 0x21780001, 188 0x81C, 0x217A0001, 189 0x81C, 0x217C0001, 190 0x81C, 0x217E0001, 191 0x90000001, 0x00000005, 0x40000000, 0x00000000, 192 0x81C, 0xF9000001, 193 0x81C, 0xF8020001, 194 0x81C, 0xF7040001, 195 0x81C, 0xF6060001, 196 0x81C, 0xF5080001, 197 0x81C, 0xF40A0001, 198 0x81C, 0xF30C0001, 199 0x81C, 0xF20E0001, 200 0x81C, 0xF1100001, 201 0x81C, 0xF0120001, 202 0x81C, 0xEF140001, 203 0x81C, 0xEE160001, 204 0x81C, 0xED180001, 205 0x81C, 0xEC1A0001, 206 0x81C, 0xEB1C0001, 207 0x81C, 0xEA1E0001, 208 0x81C, 0xCD200001, 209 0x81C, 0xCC220001, 210 0x81C, 0xCB240001, 211 0x81C, 0xCA260001, 212 0x81C, 0xC9280001, 213 0x81C, 0xC82A0001, 214 0x81C, 0xC72C0001, 215 0x81C, 0xC62E0001, 216 0x81C, 0xA5300001, 217 0x81C, 0xA4320001, 218 0x81C, 0xA3340001, 219 0x81C, 0xA2360001, 220 0x81C, 0x88380001, 221 0x81C, 0x873A0001, 222 0x81C, 0x863C0001, 223 0x81C, 0x853E0001, 224 0x81C, 0x84400001, 225 0x81C, 0x83420001, 226 0x81C, 0x82440001, 227 0x81C, 0x81460001, 228 0x81C, 0x48480001, 229 0x81C, 0x474A0001, 230 0x81C, 0x464C0001, 231 0x81C, 0x454E0001, 232 0x81C, 0x44500001, 233 0x81C, 0x43520001, 234 0x81C, 0x42540001, 235 0x81C, 0x41560001, 236 0x81C, 0x25580001, 237 0x81C, 0x245A0001, 238 0x81C, 0x235C0001, 239 0x81C, 0x225E0001, 240 0x81C, 0x21600001, 241 0x81C, 0x21620001, 242 0x81C, 0x21640001, 243 0x81C, 0x21660001, 244 0x81C, 0x21680001, 245 0x81C, 0x216A0001, 246 0x81C, 0x236C0001, 247 0x81C, 0x226E0001, 248 0x81C, 0x21700001, 249 0x81C, 0x21720001, 250 0x81C, 0x21740001, 251 0x81C, 0x21760001, 252 0x81C, 0x21780001, 253 0x81C, 0x217A0001, 254 0x81C, 0x217C0001, 255 0x81C, 0x217E0001, 256 0xA0000000, 0x00000000, 257 0x81C, 0xFF000001, 258 0x81C, 0xFF020001, 259 0x81C, 0xFF040001, 260 0x81C, 0xFF060001, 261 0x81C, 0xFF080001, 262 0x81C, 0xFE0A0001, 263 0x81C, 0xFD0C0001, 264 0x81C, 0xFC0E0001, 265 0x81C, 0xFB100001, 266 0x81C, 0xFA120001, 267 0x81C, 0xF9140001, 268 0x81C, 0xF8160001, 269 0x81C, 0xF7180001, 270 0x81C, 0xF61A0001, 271 0x81C, 0xF51C0001, 272 0x81C, 0xF41E0001, 273 0x81C, 0xF3200001, 274 0x81C, 0xF2220001, 275 0x81C, 0xF1240001, 276 0x81C, 0xF0260001, 277 0x81C, 0xEF280001, 278 0x81C, 0xEE2A0001, 279 0x81C, 0xED2C0001, 280 0x81C, 0xEC2E0001, 281 0x81C, 0xEB300001, 282 0x81C, 0xEA320001, 283 0x81C, 0xE9340001, 284 0x81C, 0xE8360001, 285 0x81C, 0xE7380001, 286 0x81C, 0xE63A0001, 287 0x81C, 0xE53C0001, 288 0x81C, 0xC73E0001, 289 0x81C, 0xC6400001, 290 0x81C, 0xC5420001, 291 0x81C, 0xC4440001, 292 0x81C, 0xC3460001, 293 0x81C, 0xC2480001, 294 0x81C, 0xC14A0001, 295 0x81C, 0xA74C0001, 296 0x81C, 0xA64E0001, 297 0x81C, 0xA5500001, 298 0x81C, 0xA4520001, 299 0x81C, 0xA3540001, 300 0x81C, 0xA2560001, 301 0x81C, 0xA1580001, 302 0x81C, 0x675A0001, 303 0x81C, 0x665C0001, 304 0x81C, 0x655E0001, 305 0x81C, 0x64600001, 306 0x81C, 0x63620001, 307 0x81C, 0x48640001, 308 0x81C, 0x47660001, 309 0x81C, 0x46680001, 310 0x81C, 0x456A0001, 311 0x81C, 0x446C0001, 312 0x81C, 0x436E0001, 313 0x81C, 0x42700001, 314 0x81C, 0x41720001, 315 0x81C, 0x41740001, 316 0x81C, 0x41760001, 317 0x81C, 0x41780001, 318 0x81C, 0x417A0001, 319 0x81C, 0x417C0001, 320 0x81C, 0x417E0001, 321 0xB0000000, 0x00000000, 322 0x80000004, 0x00000000, 0x40000000, 0x00000000, 323 0x81C, 0xFC800001, 324 0x81C, 0xFB820001, 325 0x81C, 0xFA840001, 326 0x81C, 0xF9860001, 327 0x81C, 0xF8880001, 328 0x81C, 0xF78A0001, 329 0x81C, 0xF68C0001, 330 0x81C, 0xF58E0001, 331 0x81C, 0xF4900001, 332 0x81C, 0xF3920001, 333 0x81C, 0xF2940001, 334 0x81C, 0xF1960001, 335 0x81C, 0xF0980001, 336 0x81C, 0xEF9A0001, 337 0x81C, 0xEE9C0001, 338 0x81C, 0xED9E0001, 339 0x81C, 0xECA00001, 340 0x81C, 0xEBA20001, 341 0x81C, 0xEAA40001, 342 0x81C, 0xE9A60001, 343 0x81C, 0xE8A80001, 344 0x81C, 0xE7AA0001, 345 0x81C, 0xE6AC0001, 346 0x81C, 0xE5AE0001, 347 0x81C, 0xE4B00001, 348 0x81C, 0xE3B20001, 349 0x81C, 0xA8B40001, 350 0x81C, 0xA7B60001, 351 0x81C, 0xA6B80001, 352 0x81C, 0xA5BA0001, 353 0x81C, 0xA4BC0001, 354 0x81C, 0xA3BE0001, 355 0x81C, 0xA2C00001, 356 0x81C, 0xA1C20001, 357 0x81C, 0x68C40001, 358 0x81C, 0x67C60001, 359 0x81C, 0x66C80001, 360 0x81C, 0x65CA0001, 361 0x81C, 0x64CC0001, 362 0x81C, 0x47CE0001, 363 0x81C, 0x46D00001, 364 0x81C, 0x45D20001, 365 0x81C, 0x44D40001, 366 0x81C, 0x43D60001, 367 0x81C, 0x42D80001, 368 0x81C, 0x08DA0001, 369 0x81C, 0x07DC0001, 370 0x81C, 0x06DE0001, 371 0x81C, 0x05E00001, 372 0x81C, 0x04E20001, 373 0x81C, 0x03E40001, 374 0x81C, 0x02E60001, 375 0x81C, 0x01E80001, 376 0x81C, 0x01EA0001, 377 0x81C, 0x01EC0001, 378 0x81C, 0x01EE0001, 379 0x81C, 0x01F00001, 380 0x81C, 0x01F20001, 381 0x81C, 0x01F40001, 382 0x81C, 0x01F60001, 383 0x81C, 0x01F80001, 384 0x81C, 0x01FA0001, 385 0x81C, 0x01FC0001, 386 0x81C, 0x01FE0001, 387 0xA0000000, 0x00000000, 388 0x81C, 0xFF800001, 389 0x81C, 0xFF820001, 390 0x81C, 0xFF840001, 391 0x81C, 0xFE860001, 392 0x81C, 0xFD880001, 393 0x81C, 0xFC8A0001, 394 0x81C, 0xFB8C0001, 395 0x81C, 0xFA8E0001, 396 0x81C, 0xF9900001, 397 0x81C, 0xF8920001, 398 0x81C, 0xF7940001, 399 0x81C, 0xF6960001, 400 0x81C, 0xF5980001, 401 0x81C, 0xF49A0001, 402 0x81C, 0xF39C0001, 403 0x81C, 0xF29E0001, 404 0x81C, 0xF1A00001, 405 0x81C, 0xF0A20001, 406 0x81C, 0xEFA40001, 407 0x81C, 0xEEA60001, 408 0x81C, 0xEDA80001, 409 0x81C, 0xECAA0001, 410 0x81C, 0xEBAC0001, 411 0x81C, 0xEAAE0001, 412 0x81C, 0xE9B00001, 413 0x81C, 0xE8B20001, 414 0x81C, 0xE7B40001, 415 0x81C, 0xE6B60001, 416 0x81C, 0xE5B80001, 417 0x81C, 0xE4BA0001, 418 0x81C, 0xE3BC0001, 419 0x81C, 0xA8BE0001, 420 0x81C, 0xA7C00001, 421 0x81C, 0xA6C20001, 422 0x81C, 0xA5C40001, 423 0x81C, 0xA4C60001, 424 0x81C, 0xA3C80001, 425 0x81C, 0xA2CA0001, 426 0x81C, 0xA1CC0001, 427 0x81C, 0x68CE0001, 428 0x81C, 0x67D00001, 429 0x81C, 0x66D20001, 430 0x81C, 0x65D40001, 431 0x81C, 0x64D60001, 432 0x81C, 0x47D80001, 433 0x81C, 0x46DA0001, 434 0x81C, 0x45DC0001, 435 0x81C, 0x44DE0001, 436 0x81C, 0x43E00001, 437 0x81C, 0x42E20001, 438 0x81C, 0x08E40001, 439 0x81C, 0x07E60001, 440 0x81C, 0x06E80001, 441 0x81C, 0x05EA0001, 442 0x81C, 0x04EC0001, 443 0x81C, 0x03EE0001, 444 0x81C, 0x02F00001, 445 0x81C, 0x01F20001, 446 0x81C, 0x01F40001, 447 0x81C, 0x01F60001, 448 0x81C, 0x01F80001, 449 0x81C, 0x01FA0001, 450 0x81C, 0x01FC0001, 451 0x81C, 0x01FE0001, 452 0xB0000000, 0x00000000, 453 0xC50, 0x00000022, 454 0xC50, 0x00000020, 455 0xE50, 0x00000022, 456 0xE50, 0x00000020, 457 }; 458 459 RTW_DECL_TABLE_PHY_COND(rtw8812a_agc, rtw_phy_cfg_agc); 460 461 static const u32 rtw8812a_agc_diff_lb[] = { 462 0x80000004, 0x00000000, 0x40000000, 0x00000000, 463 0x81C, 0x47CE0001, 464 0x81C, 0x46D00001, 465 0x81C, 0x45D20001, 466 0x81C, 0x44D40001, 467 0x81C, 0x43D60001, 468 0x81C, 0x42D80001, 469 0x81C, 0x08DA0001, 470 0x81C, 0x07DC0001, 471 0x81C, 0x06DE0001, 472 0x81C, 0x05E00001, 473 0x81C, 0x04E20001, 474 0x81C, 0x03E40001, 475 0x81C, 0x02E60001, 476 0xA0000000, 0x00000000, 477 0x81C, 0x47D80001, 478 0x81C, 0x46DA0001, 479 0x81C, 0x45DC0001, 480 0x81C, 0x44DE0001, 481 0x81C, 0x43E00001, 482 0x81C, 0x42E20001, 483 0x81C, 0x08E40001, 484 0x81C, 0x07E60001, 485 0x81C, 0x06E80001, 486 0x81C, 0x05EA0001, 487 0x81C, 0x04EC0001, 488 0x81C, 0x03EE0001, 489 0x81C, 0x02F00001, 490 0xB0000000, 0x00000000, 491 }; 492 493 RTW_DECL_TABLE_PHY_COND(rtw8812a_agc_diff_lb, rtw_phy_cfg_agc); 494 495 static const u32 rtw8812a_agc_diff_hb[] = { 496 0x80000004, 0x00000000, 0x40000000, 0x00000000, 497 0x81C, 0x45CE0001, 498 0x81C, 0x44D00001, 499 0x81C, 0x43D20001, 500 0x81C, 0x42D40001, 501 0x81C, 0x08D60001, 502 0x81C, 0x07D80001, 503 0x81C, 0x06DA0001, 504 0x81C, 0x05DC0001, 505 0x81C, 0x04DE0001, 506 0x81C, 0x03E00001, 507 0x81C, 0x02E20001, 508 0x81C, 0x01E40001, 509 0x81C, 0x01E60001, 510 0xA0000000, 0x00000000, 511 0x81C, 0x45D80001, 512 0x81C, 0x44DA0001, 513 0x81C, 0x43DC0001, 514 0x81C, 0x42DE0001, 515 0x81C, 0x08E00001, 516 0x81C, 0x07E20001, 517 0x81C, 0x06E40001, 518 0x81C, 0x05E60001, 519 0x81C, 0x04E80001, 520 0x81C, 0x03EA0001, 521 0x81C, 0x02EC0001, 522 0x81C, 0x01EE0001, 523 0x81C, 0x01F00001, 524 0xB0000000, 0x00000000, 525 }; 526 527 RTW_DECL_TABLE_PHY_COND(rtw8812a_agc_diff_hb, rtw_phy_cfg_agc); 528 529 static const u32 rtw8812a_bb[] = { 530 0x800, 0x8020D010, 531 0x804, 0x080112E0, 532 0x808, 0x0E028233, 533 0x80C, 0x12131113, 534 0x810, 0x20101263, 535 0x814, 0x020C3D10, 536 0x818, 0x03A00385, 537 0x820, 0x00000000, 538 0x824, 0x00030FE0, 539 0x828, 0x00000000, 540 0x82C, 0x002083DD, 541 0x830, 0x2EAAEEB8, 542 0x834, 0x0037A706, 543 0x838, 0x06C89B44, 544 0x83C, 0x0000095B, 545 0x840, 0xC0000001, 546 0x844, 0x40003CDE, 547 0x848, 0x6210FF8B, 548 0x84C, 0x6CFDFFB8, 549 0x850, 0x28874706, 550 0x854, 0x0001520C, 551 0x858, 0x8060E000, 552 0x85C, 0x74210168, 553 0x860, 0x6929C321, 554 0x864, 0x79727432, 555 0x868, 0x8CA7A314, 556 0x86C, 0x338C2878, 557 0x870, 0x03333333, 558 0x874, 0x31602C2E, 559 0x878, 0x00003152, 560 0x87C, 0x000FC000, 561 0x8A0, 0x00000013, 562 0x8A4, 0x7F7F7F7F, 563 0x8A8, 0xA202033E, 564 0x8AC, 0x0FF0FA0A, 565 0x8B0, 0x00000600, 566 0x8B4, 0x000FC080, 567 0x8B8, 0x6C10D7FF, 568 0x8BC, 0x4CA520A3, 569 0x8C0, 0x27F00020, 570 0x8C4, 0x00000000, 571 0x8C8, 0x00012D69, 572 0x8CC, 0x08248492, 573 0x8D0, 0x0000B800, 574 0x8DC, 0x00000000, 575 0x8D4, 0x940008A0, 576 0x8D8, 0x290B5612, 577 0x8F8, 0x400002C0, 578 0x8FC, 0x00000000, 579 0x900, 0x00000701, 580 0x90C, 0x00000000, 581 0x910, 0x0000FC00, 582 0x914, 0x00000404, 583 0x918, 0x1C1028C0, 584 0x91C, 0x64B11A1C, 585 0x920, 0xE0767233, 586 0x924, 0x055AA500, 587 0x928, 0x00000004, 588 0x92C, 0xFFFE0000, 589 0x930, 0xFFFFFFFE, 590 0x934, 0x001FFFFF, 591 0x960, 0x00000000, 592 0x964, 0x00000000, 593 0x968, 0x00000000, 594 0x96C, 0x00000000, 595 0x970, 0x801FFFFF, 596 0x978, 0x00000000, 597 0x97C, 0x00000000, 598 0x980, 0x00000000, 599 0x984, 0x00000000, 600 0x988, 0x00000000, 601 0x990, 0x27100000, 602 0x994, 0xFFFF0100, 603 0x998, 0xFFFFFF5C, 604 0x99C, 0xFFFFFFFF, 605 0x9A0, 0x000000FF, 606 0x9A4, 0x00080080, 607 0x9A8, 0x00000000, 608 0x9AC, 0x00000000, 609 0x9B0, 0x81081008, 610 0x9B4, 0x00000000, 611 0x9B8, 0x01081008, 612 0x9BC, 0x01081008, 613 0x9D0, 0x00000000, 614 0x9D4, 0x00000000, 615 0x9D8, 0x00000000, 616 0x9DC, 0x00000000, 617 0x9E4, 0x00000003, 618 0x9E8, 0x000002D5, 619 0xA00, 0x00D047C8, 620 0xA04, 0x01FF000C, 621 0xA08, 0x8C838300, 622 0xA0C, 0x2E7F000F, 623 0xA10, 0x9500BB78, 624 0xA14, 0x11144028, 625 0xA18, 0x00881117, 626 0xA1C, 0x89140F00, 627 0xA20, 0x1A1B0000, 628 0xA24, 0x090E1217, 629 0xA28, 0x00000305, 630 0xA2C, 0x00900000, 631 0xA70, 0x101FFF00, 632 0xA74, 0x00000008, 633 0xA78, 0x00000900, 634 0xA7C, 0x225B0606, 635 0xA80, 0x218075B2, 636 0xA84, 0x001F8C80, 637 0xB00, 0x03100000, 638 0xB04, 0x0000B000, 639 0xB08, 0xAE0201EB, 640 0xB0C, 0x01003207, 641 0xB10, 0x00009807, 642 0xB14, 0x01000000, 643 0xB18, 0x00000002, 644 0xB1C, 0x00000002, 645 0xB20, 0x0000001F, 646 0xB24, 0x03020100, 647 0xB28, 0x07060504, 648 0xB2C, 0x0B0A0908, 649 0xB30, 0x0F0E0D0C, 650 0xB34, 0x13121110, 651 0xB38, 0x17161514, 652 0xB3C, 0x0000003A, 653 0xB40, 0x00000000, 654 0xB44, 0x00000000, 655 0xB48, 0x13000032, 656 0xB4C, 0x48080000, 657 0xB50, 0x00000000, 658 0xB54, 0x00000000, 659 0xB58, 0x00000000, 660 0xB5C, 0x00000000, 661 0xC00, 0x00000007, 662 0xC04, 0x00042020, 663 0xC08, 0x80410231, 664 0xC0C, 0x00000000, 665 0xC10, 0x00000100, 666 0xC14, 0x01000000, 667 0xC1C, 0x40000003, 668 0xC20, 0x12121212, 669 0xC24, 0x12121212, 670 0xC28, 0x12121212, 671 0xC2C, 0x12121212, 672 0xC30, 0x12121212, 673 0xC34, 0x12121212, 674 0xC38, 0x12121212, 675 0xC3C, 0x12121212, 676 0xC40, 0x12121212, 677 0xC44, 0x12121212, 678 0xC48, 0x12121212, 679 0xC4C, 0x12121212, 680 0xC50, 0x00000020, 681 0xC54, 0x0008121C, 682 0xC58, 0x30000C1C, 683 0xC5C, 0x00000058, 684 0xC60, 0x34344443, 685 0xC64, 0x07003333, 686 0x80000008, 0x00000000, 0x40000000, 0x00000000, 687 0xC68, 0x59791979, 688 0x90000008, 0x05000000, 0x40000000, 0x00000000, 689 0xC68, 0x59791979, 690 0x90000002, 0x00000000, 0x40000000, 0x00000000, 691 0xC68, 0x59791979, 692 0x90000004, 0x00000000, 0x40000000, 0x00000000, 693 0xC68, 0x59791979, 694 0x90000001, 0x00000000, 0x40000000, 0x00000000, 695 0xC68, 0x59791979, 696 0x90000001, 0x00000005, 0x40000000, 0x00000000, 697 0xC68, 0x59791979, 698 0xA0000000, 0x00000000, 699 0xC68, 0x59799979, 700 0xB0000000, 0x00000000, 701 0xC6C, 0x59795979, 702 0xC70, 0x19795979, 703 0xC74, 0x19795979, 704 0xC78, 0x19791979, 705 0xC7C, 0x19791979, 706 0xC80, 0x19791979, 707 0xC84, 0x19791979, 708 0xC94, 0x0100005C, 709 0xC98, 0x00000000, 710 0xC9C, 0x00000000, 711 0xCA0, 0x00000029, 712 0xCA4, 0x08040201, 713 0xCA8, 0x80402010, 714 0xCB0, 0x77547777, 715 0xCB4, 0x00000077, 716 0xCB8, 0x00508242, 717 0xE00, 0x00000007, 718 0xE04, 0x00042020, 719 0xE08, 0x80410231, 720 0xE0C, 0x00000000, 721 0xE10, 0x00000100, 722 0xE14, 0x01000000, 723 0xE1C, 0x40000003, 724 0xE20, 0x12121212, 725 0xE24, 0x12121212, 726 0xE28, 0x12121212, 727 0xE2C, 0x12121212, 728 0xE30, 0x12121212, 729 0xE34, 0x12121212, 730 0xE38, 0x12121212, 731 0xE3C, 0x12121212, 732 0xE40, 0x12121212, 733 0xE44, 0x12121212, 734 0xE48, 0x12121212, 735 0xE4C, 0x12121212, 736 0xE50, 0x00000020, 737 0xE54, 0x0008121C, 738 0xE58, 0x30000C1C, 739 0xE5C, 0x00000058, 740 0xE60, 0x34344443, 741 0xE64, 0x07003333, 742 0xE68, 0x59791979, 743 0xE6C, 0x59795979, 744 0xE70, 0x19795979, 745 0xE74, 0x19795979, 746 0xE78, 0x19791979, 747 0xE7C, 0x19791979, 748 0xE80, 0x19791979, 749 0xE84, 0x19791979, 750 0xE94, 0x0100005C, 751 0xE98, 0x00000000, 752 0xE9C, 0x00000000, 753 0xEA0, 0x00000029, 754 0xEA4, 0x08040201, 755 0xEA8, 0x80402010, 756 0xEB0, 0x77547777, 757 0xEB4, 0x00000077, 758 0xEB8, 0x00508242, 759 }; 760 761 RTW_DECL_TABLE_PHY_COND(rtw8812a_bb, rtw_phy_cfg_bb); 762 763 static const struct rtw_phy_pg_cfg_pair rtw8812a_bb_pg[] = { 764 { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34363840, }, 765 { 0, 0, 0, 0x00000c24, 0xffffffff, 0x42424444, }, 766 { 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323638, }, 767 { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x40424444, }, 768 { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303236, }, 769 { 0, 0, 1, 0x00000c34, 0xffffffff, 0x38404242, }, 770 { 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283034, }, 771 { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x40424444, }, 772 { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303236, }, 773 { 0, 0, 0, 0x00000c44, 0xffffffff, 0x42422426, }, 774 { 0, 0, 1, 0x00000c48, 0xffffffff, 0x30343840, }, 775 { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, }, 776 { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34363840, }, 777 { 0, 1, 0, 0x00000e24, 0xffffffff, 0x42424444, }, 778 { 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323638, }, 779 { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x40424444, }, 780 { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303236, }, 781 { 0, 1, 1, 0x00000e34, 0xffffffff, 0x38404242, }, 782 { 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283034, }, 783 { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x40424444, }, 784 { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303236, }, 785 { 0, 1, 0, 0x00000e44, 0xffffffff, 0x42422426, }, 786 { 0, 1, 1, 0x00000e48, 0xffffffff, 0x30343840, }, 787 { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, }, 788 { 1, 0, 0, 0x00000c24, 0xffffffff, 0x42424444, }, 789 { 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323640, }, 790 { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x40424444, }, 791 { 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303236, }, 792 { 1, 0, 1, 0x00000c34, 0xffffffff, 0x38404242, }, 793 { 1, 0, 1, 0x00000c38, 0xffffffff, 0x26283034, }, 794 { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x40424444, }, 795 { 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303236, }, 796 { 1, 0, 0, 0x00000c44, 0xffffffff, 0x42422426, }, 797 { 1, 0, 1, 0x00000c48, 0xffffffff, 0x30343840, }, 798 { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, }, 799 { 1, 1, 0, 0x00000e24, 0xffffffff, 0x42424444, }, 800 { 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323640, }, 801 { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x40424444, }, 802 { 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303236, }, 803 { 1, 1, 1, 0x00000e34, 0xffffffff, 0x38404242, }, 804 { 1, 1, 1, 0x00000e38, 0xffffffff, 0x26283034, }, 805 { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x40424444, }, 806 { 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303236, }, 807 { 1, 1, 0, 0x00000e44, 0xffffffff, 0x42422426, }, 808 { 1, 1, 1, 0x00000e48, 0xffffffff, 0x30343840, }, 809 { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, }, 810 }; 811 812 RTW_DECL_TABLE_BB_PG(rtw8812a_bb_pg); 813 814 static const struct rtw_phy_pg_cfg_pair rtw8812a_bb_pg_rfe3[] = { 815 { 0, 0, 0, 0x00000c20, 0xffffffff, 0x34343434, }, 816 { 0, 0, 0, 0x00000c24, 0xffffffff, 0x32323232, }, 817 { 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303232, }, 818 { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x32323232, }, 819 { 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303232, }, 820 { 0, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, }, 821 { 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283032, }, 822 { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x32323232, }, 823 { 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303232, }, 824 { 0, 0, 0, 0x00000c44, 0xffffffff, 0x32322426, }, 825 { 0, 0, 1, 0x00000c48, 0xffffffff, 0x32323232, }, 826 { 0, 0, 1, 0x00000c4c, 0xffffffff, 0x24262830, }, 827 { 0, 1, 0, 0x00000e20, 0xffffffff, 0x34343434, }, 828 { 0, 1, 0, 0x00000e24, 0xffffffff, 0x32323232, }, 829 { 0, 1, 0, 0x00000e28, 0xffffffff, 0x28303232, }, 830 { 0, 1, 0, 0x00000e2c, 0xffffffff, 0x32323232, }, 831 { 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303232, }, 832 { 0, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, }, 833 { 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283032, }, 834 { 0, 1, 0, 0x00000e3c, 0xffffffff, 0x32323232, }, 835 { 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303232, }, 836 { 0, 1, 0, 0x00000e44, 0xffffffff, 0x32322426, }, 837 { 0, 1, 1, 0x00000e48, 0xffffffff, 0x32323232, }, 838 { 0, 1, 1, 0x00000e4c, 0xffffffff, 0x24262830, }, 839 { 1, 0, 0, 0x00000c24, 0xffffffff, 0x32323232, }, 840 { 1, 0, 0, 0x00000c28, 0xffffffff, 0x28303232, }, 841 { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32323232, }, 842 { 1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830, }, 843 { 1, 0, 1, 0x00000c34, 0xffffffff, 0x32323232, }, 844 { 1, 0, 1, 0x00000c38, 0xffffffff, 0x24262830, }, 845 { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32323232, }, 846 { 1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, }, 847 { 1, 0, 0, 0x00000c44, 0xffffffff, 0x32322222, }, 848 { 1, 0, 1, 0x00000c48, 0xffffffff, 0x28303232, }, 849 { 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22222426, }, 850 { 1, 1, 0, 0x00000e24, 0xffffffff, 0x32323232, }, 851 { 1, 1, 0, 0x00000e28, 0xffffffff, 0x28303232, }, 852 { 1, 1, 0, 0x00000e2c, 0xffffffff, 0x32323232, }, 853 { 1, 1, 0, 0x00000e30, 0xffffffff, 0x24262830, }, 854 { 1, 1, 1, 0x00000e34, 0xffffffff, 0x32323232, }, 855 { 1, 1, 1, 0x00000e38, 0xffffffff, 0x24262830, }, 856 { 1, 1, 0, 0x00000e3c, 0xffffffff, 0x32323232, }, 857 { 1, 1, 0, 0x00000e40, 0xffffffff, 0x24262830, }, 858 { 1, 1, 0, 0x00000e44, 0xffffffff, 0x32322222, }, 859 { 1, 1, 1, 0x00000e48, 0xffffffff, 0x28303232, }, 860 { 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22222426, }, 861 }; 862 863 RTW_DECL_TABLE_BB_PG(rtw8812a_bb_pg_rfe3); 864 865 static const u32 rtw8812a_rf_a[] = { 866 0x000, 0x00010000, 867 0x018, 0x0001712A, 868 0x056, 0x00051CF2, 869 0x066, 0x00040000, 870 0x01E, 0x00080000, 871 0x089, 0x00000080, 872 0x80000001, 0x00000000, 0x40000000, 0x00000000, 873 0x086, 0x00014B3A, 874 0x90000001, 0x00000005, 0x40000000, 0x00000000, 875 0x086, 0x00014B3A, 876 0xA0000000, 0x00000000, 877 0x086, 0x00014B38, 878 0xB0000000, 0x00000000, 879 0x80000004, 0x00000000, 0x40000000, 0x00000000, 880 0x08B, 0x00080180, 881 0xA0000000, 0x00000000, 882 0x08B, 0x00087180, 883 0xB0000000, 0x00000000, 884 0x0B1, 0x0001FC1A, 885 0x0B3, 0x000F0810, 886 0x0B4, 0x0001A78D, 887 0x0BA, 0x00086180, 888 0x018, 0x00000006, 889 0x0EF, 0x00002000, 890 0x80000001, 0x00000000, 0x40000000, 0x00000000, 891 0x03B, 0x0003F218, 892 0x03B, 0x00030A58, 893 0x03B, 0x0002FA58, 894 0x03B, 0x00022590, 895 0x03B, 0x0001FA50, 896 0x03B, 0x00010248, 897 0x03B, 0x00008240, 898 0x90000001, 0x00000005, 0x40000000, 0x00000000, 899 0x03B, 0x0003F218, 900 0x03B, 0x00030A58, 901 0x03B, 0x0002FA58, 902 0x03B, 0x00022590, 903 0x03B, 0x0001FA50, 904 0x03B, 0x00010248, 905 0x03B, 0x00008240, 906 0xA0000000, 0x00000000, 907 0x03B, 0x00038A58, 908 0x03B, 0x00037A58, 909 0x03B, 0x0002A590, 910 0x03B, 0x00027A50, 911 0x03B, 0x00018248, 912 0x03B, 0x00010240, 913 0x03B, 0x00008240, 914 0xB0000000, 0x00000000, 915 0x0EF, 0x00000100, 916 0x80000002, 0x00000000, 0x40000000, 0x00000000, 917 0x034, 0x0000A4EE, 918 0x034, 0x00009076, 919 0x034, 0x00008073, 920 0x034, 0x00007070, 921 0x034, 0x0000606D, 922 0x034, 0x0000506A, 923 0x034, 0x00004049, 924 0x034, 0x00003046, 925 0x034, 0x00002028, 926 0x034, 0x00001025, 927 0x034, 0x00000022, 928 0xA0000000, 0x00000000, 929 0x034, 0x0000ADF4, 930 0x034, 0x00009DF1, 931 0x034, 0x00008DEE, 932 0x034, 0x00007DEB, 933 0x034, 0x00006DE8, 934 0x034, 0x00005DE5, 935 0x034, 0x00004DE2, 936 0x034, 0x00003CE6, 937 0x034, 0x000024E7, 938 0x034, 0x000014E4, 939 0x034, 0x000004E1, 940 0xB0000000, 0x00000000, 941 0x0EF, 0x00000000, 942 0x0EF, 0x000020A2, 943 0x0DF, 0x00000080, 944 0x035, 0x00000192, 945 0x035, 0x00008192, 946 0x035, 0x00010192, 947 0x036, 0x00000024, 948 0x036, 0x00008024, 949 0x036, 0x00010024, 950 0x036, 0x00018024, 951 0x0EF, 0x00000000, 952 0x051, 0x00000C21, 953 0x052, 0x000006D9, 954 0x053, 0x000FC649, 955 0x054, 0x0000017E, 956 0x0EF, 0x00000002, 957 0x008, 0x00008400, 958 0x018, 0x0001712A, 959 0x0EF, 0x00001000, 960 0x03A, 0x00000080, 961 0x03B, 0x0003A02C, 962 0x03C, 0x00004000, 963 0x03A, 0x00000400, 964 0x03B, 0x0003202C, 965 0x03C, 0x00010000, 966 0x03A, 0x000000A0, 967 0x03B, 0x0002B064, 968 0x03C, 0x00004000, 969 0x03A, 0x000000D8, 970 0x03B, 0x00023070, 971 0x03C, 0x00004000, 972 0x03A, 0x00000468, 973 0x03B, 0x0001B870, 974 0x03C, 0x00010000, 975 0x03A, 0x00000098, 976 0x03B, 0x00012085, 977 0x03C, 0x000E4000, 978 0x03A, 0x00000418, 979 0x03B, 0x0000A080, 980 0x03C, 0x000F0000, 981 0x03A, 0x00000418, 982 0x03B, 0x00002080, 983 0x03C, 0x00010000, 984 0x03A, 0x00000080, 985 0x03B, 0x0007A02C, 986 0x03C, 0x00004000, 987 0x03A, 0x00000400, 988 0x03B, 0x0007202C, 989 0x03C, 0x00010000, 990 0x03A, 0x000000A0, 991 0x03B, 0x0006B064, 992 0x03C, 0x00004000, 993 0x03A, 0x000000D8, 994 0x03B, 0x00063070, 995 0x03C, 0x00004000, 996 0x03A, 0x00000468, 997 0x03B, 0x0005B870, 998 0x03C, 0x00010000, 999 0x03A, 0x00000098, 1000 0x03B, 0x00052085, 1001 0x03C, 0x000E4000, 1002 0x03A, 0x00000418, 1003 0x03B, 0x0004A080, 1004 0x03C, 0x000F0000, 1005 0x03A, 0x00000418, 1006 0x03B, 0x00042080, 1007 0x03C, 0x00010000, 1008 0x03A, 0x00000080, 1009 0x03B, 0x000BA02C, 1010 0x03C, 0x00004000, 1011 0x03A, 0x00000400, 1012 0x03B, 0x000B202C, 1013 0x03C, 0x00010000, 1014 0x03A, 0x000000A0, 1015 0x03B, 0x000AB064, 1016 0x03C, 0x00004000, 1017 0x03A, 0x000000D8, 1018 0x03B, 0x000A3070, 1019 0x03C, 0x00004000, 1020 0x03A, 0x00000468, 1021 0x03B, 0x0009B870, 1022 0x03C, 0x00010000, 1023 0x03A, 0x00000098, 1024 0x03B, 0x00092085, 1025 0x03C, 0x000E4000, 1026 0x03A, 0x00000418, 1027 0x03B, 0x0008A080, 1028 0x03C, 0x000F0000, 1029 0x03A, 0x00000418, 1030 0x03B, 0x00082080, 1031 0x03C, 0x00010000, 1032 0x0EF, 0x00001100, 1033 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1034 0x034, 0x0004A0B2, 1035 0x034, 0x000490AF, 1036 0x034, 0x00048070, 1037 0x034, 0x0004706D, 1038 0x034, 0x00046050, 1039 0x034, 0x0004504D, 1040 0x034, 0x0004404A, 1041 0x034, 0x00043047, 1042 0x034, 0x0004200A, 1043 0x034, 0x00041007, 1044 0x034, 0x00040004, 1045 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1046 0x034, 0x0004A0B2, 1047 0x034, 0x000490AF, 1048 0x034, 0x00048070, 1049 0x034, 0x0004706D, 1050 0x034, 0x0004604D, 1051 0x034, 0x0004504A, 1052 0x034, 0x00044047, 1053 0x034, 0x00043044, 1054 0x034, 0x00042007, 1055 0x034, 0x00041004, 1056 0x034, 0x00040001, 1057 0xA0000000, 0x00000000, 1058 0x034, 0x0004ADF5, 1059 0x034, 0x00049DF2, 1060 0x034, 0x00048DEF, 1061 0x034, 0x00047DEC, 1062 0x034, 0x00046DE9, 1063 0x034, 0x00045DE6, 1064 0x034, 0x00044DE3, 1065 0x034, 0x000438C8, 1066 0x034, 0x000428C5, 1067 0x034, 0x000418C2, 1068 0x034, 0x000408C0, 1069 0xB0000000, 0x00000000, 1070 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1071 0x034, 0x0002A0B2, 1072 0x034, 0x000290AF, 1073 0x034, 0x00028070, 1074 0x034, 0x0002706D, 1075 0x034, 0x00026050, 1076 0x034, 0x0002504D, 1077 0x034, 0x0002404A, 1078 0x034, 0x00023047, 1079 0x034, 0x0002200A, 1080 0x034, 0x00021007, 1081 0x034, 0x00020004, 1082 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1083 0x034, 0x0002A0B4, 1084 0x034, 0x000290B1, 1085 0x034, 0x00028072, 1086 0x034, 0x0002706F, 1087 0x034, 0x0002604F, 1088 0x034, 0x0002504C, 1089 0x034, 0x00024049, 1090 0x034, 0x00023046, 1091 0x034, 0x00022009, 1092 0x034, 0x00021006, 1093 0x034, 0x00020003, 1094 0xA0000000, 0x00000000, 1095 0x034, 0x0002ADF5, 1096 0x034, 0x00029DF2, 1097 0x034, 0x00028DEF, 1098 0x034, 0x00027DEC, 1099 0x034, 0x00026DE9, 1100 0x034, 0x00025DE6, 1101 0x034, 0x00024DE3, 1102 0x034, 0x000238C8, 1103 0x034, 0x000228C5, 1104 0x034, 0x000218C2, 1105 0x034, 0x000208C0, 1106 0xB0000000, 0x00000000, 1107 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1108 0x034, 0x0000A0B2, 1109 0x034, 0x000090AF, 1110 0x034, 0x00008070, 1111 0x034, 0x0000706D, 1112 0x034, 0x00006050, 1113 0x034, 0x0000504D, 1114 0x034, 0x0000404A, 1115 0x034, 0x00003047, 1116 0x034, 0x0000200A, 1117 0x034, 0x00001007, 1118 0x034, 0x00000004, 1119 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1120 0x034, 0x0000A0B2, 1121 0x034, 0x000090AF, 1122 0x034, 0x00008070, 1123 0x034, 0x0000706D, 1124 0x034, 0x0000604D, 1125 0x034, 0x0000504A, 1126 0x034, 0x00004047, 1127 0x034, 0x00003044, 1128 0x034, 0x00002007, 1129 0x034, 0x00001004, 1130 0x034, 0x00000001, 1131 0xA0000000, 0x00000000, 1132 0x034, 0x0000AFF7, 1133 0x034, 0x00009DF7, 1134 0x034, 0x00008DF4, 1135 0x034, 0x00007DF1, 1136 0x034, 0x00006DEE, 1137 0x034, 0x00005DEB, 1138 0x034, 0x00004DE8, 1139 0x034, 0x000038CC, 1140 0x034, 0x000028C9, 1141 0x034, 0x000018C6, 1142 0x034, 0x000008C3, 1143 0xB0000000, 0x00000000, 1144 0x0EF, 0x00000000, 1145 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1146 0x018, 0x0001712A, 1147 0x0EF, 0x00000040, 1148 0x035, 0x000001D4, 1149 0x035, 0x000081D4, 1150 0x035, 0x000101D4, 1151 0x035, 0x000201B4, 1152 0x035, 0x000281B4, 1153 0x035, 0x000301B4, 1154 0x035, 0x000401B4, 1155 0x035, 0x000481B4, 1156 0x035, 0x000501B4, 1157 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1158 0x018, 0x0001712A, 1159 0x0EF, 0x00000040, 1160 0x035, 0x000001D4, 1161 0x035, 0x000081D4, 1162 0x035, 0x000101D4, 1163 0x035, 0x000201B4, 1164 0x035, 0x000281B4, 1165 0x035, 0x000301B4, 1166 0x035, 0x000401B4, 1167 0x035, 0x000481B4, 1168 0x035, 0x000501B4, 1169 0xA0000000, 0x00000000, 1170 0x018, 0x0001712A, 1171 0x0EF, 0x00000040, 1172 0x035, 0x00000188, 1173 0x035, 0x00008147, 1174 0x035, 0x00010147, 1175 0x035, 0x000201D7, 1176 0x035, 0x000281D7, 1177 0x035, 0x000301D7, 1178 0x035, 0x000401D8, 1179 0x035, 0x000481D8, 1180 0x035, 0x000501D8, 1181 0xB0000000, 0x00000000, 1182 0x0EF, 0x00000000, 1183 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1184 0x018, 0x0001712A, 1185 0x0EF, 0x00000010, 1186 0x036, 0x00004BFB, 1187 0x036, 0x0000CBFB, 1188 0x036, 0x00014BFB, 1189 0x036, 0x0001CBFB, 1190 0x036, 0x00024F4B, 1191 0x036, 0x0002CF4B, 1192 0x036, 0x00034F4B, 1193 0x036, 0x0003CF4B, 1194 0x036, 0x00044F4B, 1195 0x036, 0x0004CF4B, 1196 0x036, 0x00054F4B, 1197 0x036, 0x0005CF4B, 1198 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1199 0x018, 0x0001712A, 1200 0x0EF, 0x00000010, 1201 0x036, 0x00004BFB, 1202 0x036, 0x0000CBFB, 1203 0x036, 0x00014BFB, 1204 0x036, 0x0001CBFB, 1205 0x036, 0x00024F4B, 1206 0x036, 0x0002CF4B, 1207 0x036, 0x00034F4B, 1208 0x036, 0x0003CF4B, 1209 0x036, 0x00044F4B, 1210 0x036, 0x0004CF4B, 1211 0x036, 0x00054F4B, 1212 0x036, 0x0005CF4B, 1213 0xA0000000, 0x00000000, 1214 0x018, 0x0001712A, 1215 0x0EF, 0x00000010, 1216 0x036, 0x00084EB4, 1217 0x036, 0x0008CC35, 1218 0x036, 0x00094C35, 1219 0x036, 0x0009CC35, 1220 0x036, 0x000A4C35, 1221 0x036, 0x000ACC35, 1222 0x036, 0x000B4C35, 1223 0x036, 0x000BCC35, 1224 0x036, 0x000C4C34, 1225 0x036, 0x000CCC35, 1226 0x036, 0x000D4C35, 1227 0x036, 0x000DCC35, 1228 0xB0000000, 0x00000000, 1229 0x0EF, 0x00000000, 1230 0x0EF, 0x00000008, 1231 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1232 0x03C, 0x000002CC, 1233 0x03C, 0x00000522, 1234 0x03C, 0x00000902, 1235 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1236 0x03C, 0x000002CC, 1237 0x03C, 0x00000522, 1238 0x03C, 0x00000902, 1239 0xA0000000, 0x00000000, 1240 0x03C, 0x000002A8, 1241 0x03C, 0x000005A2, 1242 0x03C, 0x00000880, 1243 0xB0000000, 0x00000000, 1244 0x0EF, 0x00000000, 1245 0x018, 0x0001712A, 1246 0x0EF, 0x00000002, 1247 0x0DF, 0x00000080, 1248 0x01F, 0x00000064, 1249 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1250 0x061, 0x000FDD43, 1251 0x062, 0x00038F4B, 1252 0x063, 0x00032117, 1253 0x064, 0x000194AC, 1254 0x065, 0x000931D1, 1255 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1256 0x061, 0x000FDD43, 1257 0x062, 0x00038F4B, 1258 0x063, 0x00032117, 1259 0x064, 0x000194AC, 1260 0x065, 0x000931D2, 1261 0xA0000000, 0x00000000, 1262 0x061, 0x000E5D53, 1263 0x062, 0x00038FCD, 1264 0x063, 0x000114EB, 1265 0x064, 0x000196AC, 1266 0x065, 0x000911D7, 1267 0xB0000000, 0x00000000, 1268 0x008, 0x00008400, 1269 0x01C, 0x000739D2, 1270 0x0B4, 0x0001E78D, 1271 0x018, 0x0001F12A, 1272 0xFFE, 0x00000000, 1273 0xFFE, 0x00000000, 1274 0xFFE, 0x00000000, 1275 0xFFE, 0x00000000, 1276 0x0B4, 0x0001A78D, 1277 0x018, 0x0001712A, 1278 }; 1279 1280 RTW_DECL_TABLE_RF_RADIO(rtw8812a_rf_a, A); 1281 1282 static const u32 rtw8812a_rf_b[] = { 1283 0x056, 0x00051CF2, 1284 0x066, 0x00040000, 1285 0x089, 0x00000080, 1286 0x80000001, 0x00000000, 0x40000000, 0x00000000, 1287 0x086, 0x00014B3A, 1288 0x90000001, 0x00000005, 0x40000000, 0x00000000, 1289 0x086, 0x00014B3A, 1290 0xA0000000, 0x00000000, 1291 0x086, 0x00014B38, 1292 0xB0000000, 0x00000000, 1293 0x80000004, 0x00000000, 0x40000000, 0x00000000, 1294 0x08B, 0x00080180, 1295 0xA0000000, 0x00000000, 1296 0x08B, 0x00087180, 1297 0xB0000000, 0x00000000, 1298 0x018, 0x00000006, 1299 0x0EF, 0x00002000, 1300 0x80000001, 0x00000000, 0x40000000, 0x00000000, 1301 0x03B, 0x0003F218, 1302 0x03B, 0x00030A58, 1303 0x03B, 0x0002FA58, 1304 0x03B, 0x00022590, 1305 0x03B, 0x0001FA50, 1306 0x03B, 0x00010248, 1307 0x03B, 0x00008240, 1308 0x90000001, 0x00000005, 0x40000000, 0x00000000, 1309 0x03B, 0x0003F218, 1310 0x03B, 0x00030A58, 1311 0x03B, 0x0002FA58, 1312 0x03B, 0x00022590, 1313 0x03B, 0x0001FA50, 1314 0x03B, 0x00010248, 1315 0x03B, 0x00008240, 1316 0xA0000000, 0x00000000, 1317 0x03B, 0x00038A58, 1318 0x03B, 0x00037A58, 1319 0x03B, 0x0002A590, 1320 0x03B, 0x00027A50, 1321 0x03B, 0x00018248, 1322 0x03B, 0x00010240, 1323 0x03B, 0x00008240, 1324 0xB0000000, 0x00000000, 1325 0x0EF, 0x00000100, 1326 0x80000002, 0x00000000, 0x40000000, 0x00000000, 1327 0x034, 0x0000A4EE, 1328 0x034, 0x00009076, 1329 0x034, 0x00008073, 1330 0x034, 0x00007070, 1331 0x034, 0x0000606D, 1332 0x034, 0x0000506A, 1333 0x034, 0x00004049, 1334 0x034, 0x00003046, 1335 0x034, 0x00002028, 1336 0x034, 0x00001025, 1337 0x034, 0x00000022, 1338 0xA0000000, 0x00000000, 1339 0x034, 0x0000ADF4, 1340 0x034, 0x00009DF1, 1341 0x034, 0x00008DEE, 1342 0x034, 0x00007DEB, 1343 0x034, 0x00006DE8, 1344 0x034, 0x00005DE5, 1345 0x034, 0x00004DE2, 1346 0x034, 0x00003CE6, 1347 0x034, 0x000024E7, 1348 0x034, 0x000014E4, 1349 0x034, 0x000004E1, 1350 0xB0000000, 0x00000000, 1351 0x0EF, 0x00000000, 1352 0x0EF, 0x000020A2, 1353 0x0DF, 0x00000080, 1354 0x035, 0x00000192, 1355 0x035, 0x00008192, 1356 0x035, 0x00010192, 1357 0x036, 0x00000024, 1358 0x036, 0x00008024, 1359 0x036, 0x00010024, 1360 0x036, 0x00018024, 1361 0x0EF, 0x00000000, 1362 0x051, 0x00000C21, 1363 0x052, 0x000006D9, 1364 0x053, 0x000FC649, 1365 0x054, 0x0000017E, 1366 0x0EF, 0x00000002, 1367 0x008, 0x00008400, 1368 0x018, 0x0001712A, 1369 0x0EF, 0x00001000, 1370 0x03A, 0x00000080, 1371 0x03B, 0x0003A02C, 1372 0x03C, 0x00004000, 1373 0x03A, 0x00000400, 1374 0x03B, 0x0003202C, 1375 0x03C, 0x00010000, 1376 0x03A, 0x000000A0, 1377 0x03B, 0x0002B064, 1378 0x03C, 0x00004000, 1379 0x03A, 0x000000D8, 1380 0x03B, 0x00023070, 1381 0x03C, 0x00004000, 1382 0x03A, 0x00000468, 1383 0x03B, 0x0001B870, 1384 0x03C, 0x00010000, 1385 0x03A, 0x00000098, 1386 0x03B, 0x00012085, 1387 0x03C, 0x000E4000, 1388 0x03A, 0x00000418, 1389 0x03B, 0x0000A080, 1390 0x03C, 0x000F0000, 1391 0x03A, 0x00000418, 1392 0x03B, 0x00002080, 1393 0x03C, 0x00010000, 1394 0x03A, 0x00000080, 1395 0x03B, 0x0007A02C, 1396 0x03C, 0x00004000, 1397 0x03A, 0x00000400, 1398 0x03B, 0x0007202C, 1399 0x03C, 0x00010000, 1400 0x03A, 0x000000A0, 1401 0x03B, 0x0006B064, 1402 0x03C, 0x00004000, 1403 0x03A, 0x000000D8, 1404 0x03B, 0x00063070, 1405 0x03C, 0x00004000, 1406 0x03A, 0x00000468, 1407 0x03B, 0x0005B870, 1408 0x03C, 0x00010000, 1409 0x03A, 0x00000098, 1410 0x03B, 0x00052085, 1411 0x03C, 0x000E4000, 1412 0x03A, 0x00000418, 1413 0x03B, 0x0004A080, 1414 0x03C, 0x000F0000, 1415 0x03A, 0x00000418, 1416 0x03B, 0x00042080, 1417 0x03C, 0x00010000, 1418 0x03A, 0x00000080, 1419 0x03B, 0x000BA02C, 1420 0x03C, 0x00004000, 1421 0x03A, 0x00000400, 1422 0x03B, 0x000B202C, 1423 0x03C, 0x00010000, 1424 0x03A, 0x000000A0, 1425 0x03B, 0x000AB064, 1426 0x03C, 0x00004000, 1427 0x03A, 0x000000D8, 1428 0x03B, 0x000A3070, 1429 0x03C, 0x00004000, 1430 0x03A, 0x00000468, 1431 0x03B, 0x0009B870, 1432 0x03C, 0x00010000, 1433 0x03A, 0x00000098, 1434 0x03B, 0x00092085, 1435 0x03C, 0x000E4000, 1436 0x03A, 0x00000418, 1437 0x03B, 0x0008A080, 1438 0x03C, 0x000F0000, 1439 0x03A, 0x00000418, 1440 0x03B, 0x00082080, 1441 0x03C, 0x00010000, 1442 0x0EF, 0x00001100, 1443 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1444 0x034, 0x0004A0B2, 1445 0x034, 0x000490AF, 1446 0x034, 0x00048070, 1447 0x034, 0x0004706D, 1448 0x034, 0x00046050, 1449 0x034, 0x0004504D, 1450 0x034, 0x0004404A, 1451 0x034, 0x00043047, 1452 0x034, 0x0004200A, 1453 0x034, 0x00041007, 1454 0x034, 0x00040004, 1455 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1456 0x034, 0x0004A0B1, 1457 0x034, 0x000490AE, 1458 0x034, 0x0004806F, 1459 0x034, 0x0004706C, 1460 0x034, 0x0004604C, 1461 0x034, 0x00045049, 1462 0x034, 0x00044046, 1463 0x034, 0x00043043, 1464 0x034, 0x00042006, 1465 0x034, 0x00041003, 1466 0x034, 0x00040000, 1467 0xA0000000, 0x00000000, 1468 0x034, 0x0004ADF5, 1469 0x034, 0x00049DF2, 1470 0x034, 0x00048DEF, 1471 0x034, 0x00047DEC, 1472 0x034, 0x00046DE9, 1473 0x034, 0x00045DE6, 1474 0x034, 0x00044DE3, 1475 0x034, 0x000438C8, 1476 0x034, 0x000428C5, 1477 0x034, 0x000418C2, 1478 0x034, 0x000408C0, 1479 0xB0000000, 0x00000000, 1480 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1481 0x034, 0x0002A0B2, 1482 0x034, 0x000290AF, 1483 0x034, 0x00028070, 1484 0x034, 0x0002706D, 1485 0x034, 0x00026050, 1486 0x034, 0x0002504D, 1487 0x034, 0x0002404A, 1488 0x034, 0x00023047, 1489 0x034, 0x0002200A, 1490 0x034, 0x00021007, 1491 0x034, 0x00020004, 1492 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1493 0x034, 0x0002A0B3, 1494 0x034, 0x000290B0, 1495 0x034, 0x00028071, 1496 0x034, 0x0002706E, 1497 0x034, 0x0002604E, 1498 0x034, 0x0002504B, 1499 0x034, 0x00024048, 1500 0x034, 0x00023045, 1501 0x034, 0x00022008, 1502 0x034, 0x00021005, 1503 0x034, 0x00020002, 1504 0xA0000000, 0x00000000, 1505 0x034, 0x0002ADF5, 1506 0x034, 0x00029DF2, 1507 0x034, 0x00028DEF, 1508 0x034, 0x00027DEC, 1509 0x034, 0x00026DE9, 1510 0x034, 0x00025DE6, 1511 0x034, 0x00024DE3, 1512 0x034, 0x000238C8, 1513 0x034, 0x000228C5, 1514 0x034, 0x000218C2, 1515 0x034, 0x000208C0, 1516 0xB0000000, 0x00000000, 1517 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1518 0x034, 0x0000A0B2, 1519 0x034, 0x000090AF, 1520 0x034, 0x00008070, 1521 0x034, 0x0000706D, 1522 0x034, 0x00006050, 1523 0x034, 0x0000504D, 1524 0x034, 0x0000404A, 1525 0x034, 0x00003047, 1526 0x034, 0x0000200A, 1527 0x034, 0x00001007, 1528 0x034, 0x00000004, 1529 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1530 0x034, 0x0000A0B3, 1531 0x034, 0x000090B0, 1532 0x034, 0x00008070, 1533 0x034, 0x0000706D, 1534 0x034, 0x0000604D, 1535 0x034, 0x0000504A, 1536 0x034, 0x00004047, 1537 0x034, 0x00003044, 1538 0x034, 0x00002007, 1539 0x034, 0x00001004, 1540 0x034, 0x00000001, 1541 0xA0000000, 0x00000000, 1542 0x034, 0x0000AFF7, 1543 0x034, 0x00009DF7, 1544 0x034, 0x00008DF4, 1545 0x034, 0x00007DF1, 1546 0x034, 0x00006DEE, 1547 0x034, 0x00005DEB, 1548 0x034, 0x00004DE8, 1549 0x034, 0x000038CC, 1550 0x034, 0x000028C9, 1551 0x034, 0x000018C6, 1552 0x034, 0x000008C3, 1553 0xB0000000, 0x00000000, 1554 0x0EF, 0x00000000, 1555 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1556 0x018, 0x0001712A, 1557 0x0EF, 0x00000040, 1558 0x035, 0x000001C5, 1559 0x035, 0x000081C5, 1560 0x035, 0x000101C5, 1561 0x035, 0x00020174, 1562 0x035, 0x00028174, 1563 0x035, 0x00030174, 1564 0x035, 0x00040185, 1565 0x035, 0x00048185, 1566 0x035, 0x00050185, 1567 0x0EF, 0x00000000, 1568 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1569 0x018, 0x0001712A, 1570 0x0EF, 0x00000040, 1571 0x035, 0x000001C5, 1572 0x035, 0x000081C5, 1573 0x035, 0x000101C5, 1574 0x035, 0x00020174, 1575 0x035, 0x00028174, 1576 0x035, 0x00030174, 1577 0x035, 0x00040185, 1578 0x035, 0x00048185, 1579 0x035, 0x00050185, 1580 0x0EF, 0x00000000, 1581 0xA0000000, 0x00000000, 1582 0x018, 0x0001712A, 1583 0x0EF, 0x00000040, 1584 0x035, 0x00000188, 1585 0x035, 0x00008147, 1586 0x035, 0x00010147, 1587 0x035, 0x000201D7, 1588 0x035, 0x000281D7, 1589 0x035, 0x000301D7, 1590 0x035, 0x000401D8, 1591 0x035, 0x000481D8, 1592 0x035, 0x000501D8, 1593 0x0EF, 0x00000000, 1594 0xB0000000, 0x00000000, 1595 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1596 0x018, 0x0001712A, 1597 0x0EF, 0x00000010, 1598 0x036, 0x00005B8B, 1599 0x036, 0x0000DB8B, 1600 0x036, 0x00015B8B, 1601 0x036, 0x0001DB8B, 1602 0x036, 0x000262DB, 1603 0x036, 0x0002E2DB, 1604 0x036, 0x000362DB, 1605 0x036, 0x0003E2DB, 1606 0x036, 0x0004553B, 1607 0x036, 0x0004D53B, 1608 0x036, 0x0005553B, 1609 0x036, 0x0005D53B, 1610 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1611 0x018, 0x0001712A, 1612 0x0EF, 0x00000010, 1613 0x036, 0x00005B8B, 1614 0x036, 0x0000DB8B, 1615 0x036, 0x00015B8B, 1616 0x036, 0x0001DB8B, 1617 0x036, 0x000262DB, 1618 0x036, 0x0002E2DB, 1619 0x036, 0x000362DB, 1620 0x036, 0x0003E2DB, 1621 0x036, 0x0004553B, 1622 0x036, 0x0004D53B, 1623 0x036, 0x0005553B, 1624 0x036, 0x0005D53B, 1625 0xA0000000, 0x00000000, 1626 0x018, 0x0001712A, 1627 0x0EF, 0x00000010, 1628 0x036, 0x00084EB4, 1629 0x036, 0x0008CC35, 1630 0x036, 0x00094C35, 1631 0x036, 0x0009CC35, 1632 0x036, 0x000A4C35, 1633 0x036, 0x000ACC35, 1634 0x036, 0x000B4C35, 1635 0x036, 0x000BCC35, 1636 0x036, 0x000C4C34, 1637 0x036, 0x000CCC35, 1638 0x036, 0x000D4C35, 1639 0x036, 0x000DCC35, 1640 0xB0000000, 0x00000000, 1641 0x0EF, 0x00000000, 1642 0x0EF, 0x00000008, 1643 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1644 0x03C, 0x000002DC, 1645 0x03C, 0x00000524, 1646 0x03C, 0x00000902, 1647 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1648 0x03C, 0x000002DC, 1649 0x03C, 0x00000524, 1650 0x03C, 0x00000902, 1651 0xA0000000, 0x00000000, 1652 0x03C, 0x000002A8, 1653 0x03C, 0x000005A2, 1654 0x03C, 0x00000880, 1655 0xB0000000, 0x00000000, 1656 0x0EF, 0x00000000, 1657 0x018, 0x0001712A, 1658 0x0EF, 0x00000002, 1659 0x0DF, 0x00000080, 1660 0x80000008, 0x00000000, 0x40000000, 0x00000000, 1661 0x061, 0x000EAC43, 1662 0x062, 0x00038F47, 1663 0x063, 0x00031157, 1664 0x064, 0x0001C4AC, 1665 0x065, 0x000931D1, 1666 0x90000008, 0x05000000, 0x40000000, 0x00000000, 1667 0x061, 0x000EAC43, 1668 0x062, 0x00038F47, 1669 0x063, 0x00031157, 1670 0x064, 0x0001C4AC, 1671 0x065, 0x000931D2, 1672 0x90000002, 0x00000000, 0x40000000, 0x00000000, 1673 0x061, 0x000EAC43, 1674 0x062, 0x00038F47, 1675 0x063, 0x00031157, 1676 0x064, 0x0001C4AC, 1677 0x065, 0x000931D1, 1678 0xA0000000, 0x00000000, 1679 0x061, 0x000E5D53, 1680 0x062, 0x00038FCD, 1681 0x063, 0x000114EB, 1682 0x064, 0x000196AC, 1683 0x065, 0x000911D7, 1684 0xB0000000, 0x00000000, 1685 0x008, 0x00008400, 1686 }; 1687 1688 RTW_DECL_TABLE_RF_RADIO(rtw8812a_rf_b, B); 1689 1690 static const struct rtw_txpwr_lmt_cfg_pair rtw8812a_txpwr_lmt[] = { 1691 { 0, 0, 0, 0, 1, 36, }, 1692 { 2, 0, 0, 0, 1, 32, }, 1693 { 1, 0, 0, 0, 1, 32, }, 1694 { 0, 0, 0, 0, 2, 36, }, 1695 { 2, 0, 0, 0, 2, 32, }, 1696 { 1, 0, 0, 0, 2, 32, }, 1697 { 0, 0, 0, 0, 3, 36, }, 1698 { 2, 0, 0, 0, 3, 32, }, 1699 { 1, 0, 0, 0, 3, 32, }, 1700 { 0, 0, 0, 0, 4, 36, }, 1701 { 2, 0, 0, 0, 4, 32, }, 1702 { 1, 0, 0, 0, 4, 32, }, 1703 { 0, 0, 0, 0, 5, 36, }, 1704 { 2, 0, 0, 0, 5, 32, }, 1705 { 1, 0, 0, 0, 5, 32, }, 1706 { 0, 0, 0, 0, 6, 36, }, 1707 { 2, 0, 0, 0, 6, 32, }, 1708 { 1, 0, 0, 0, 6, 32, }, 1709 { 0, 0, 0, 0, 7, 36, }, 1710 { 2, 0, 0, 0, 7, 32, }, 1711 { 1, 0, 0, 0, 7, 32, }, 1712 { 0, 0, 0, 0, 8, 36, }, 1713 { 2, 0, 0, 0, 8, 32, }, 1714 { 1, 0, 0, 0, 8, 32, }, 1715 { 0, 0, 0, 0, 9, 36, }, 1716 { 2, 0, 0, 0, 9, 32, }, 1717 { 1, 0, 0, 0, 9, 32, }, 1718 { 0, 0, 0, 0, 10, 36, }, 1719 { 2, 0, 0, 0, 10, 32, }, 1720 { 1, 0, 0, 0, 10, 32, }, 1721 { 0, 0, 0, 0, 11, 36, }, 1722 { 2, 0, 0, 0, 11, 32, }, 1723 { 1, 0, 0, 0, 11, 32, }, 1724 { 0, 0, 0, 0, 12, 63, }, 1725 { 2, 0, 0, 0, 12, 32, }, 1726 { 1, 0, 0, 0, 12, 32, }, 1727 { 0, 0, 0, 0, 13, 63, }, 1728 { 2, 0, 0, 0, 13, 32, }, 1729 { 1, 0, 0, 0, 13, 32, }, 1730 { 0, 0, 0, 0, 14, 63, }, 1731 { 2, 0, 0, 0, 14, 63, }, 1732 { 1, 0, 0, 0, 14, 32, }, 1733 { 0, 0, 0, 1, 1, 34, }, 1734 { 2, 0, 0, 1, 1, 32, }, 1735 { 1, 0, 0, 1, 1, 32, }, 1736 { 0, 0, 0, 1, 2, 36, }, 1737 { 2, 0, 0, 1, 2, 32, }, 1738 { 1, 0, 0, 1, 2, 32, }, 1739 { 0, 0, 0, 1, 3, 36, }, 1740 { 2, 0, 0, 1, 3, 32, }, 1741 { 1, 0, 0, 1, 3, 32, }, 1742 { 0, 0, 0, 1, 4, 36, }, 1743 { 2, 0, 0, 1, 4, 32, }, 1744 { 1, 0, 0, 1, 4, 32, }, 1745 { 0, 0, 0, 1, 5, 36, }, 1746 { 2, 0, 0, 1, 5, 32, }, 1747 { 1, 0, 0, 1, 5, 32, }, 1748 { 0, 0, 0, 1, 6, 36, }, 1749 { 2, 0, 0, 1, 6, 32, }, 1750 { 1, 0, 0, 1, 6, 32, }, 1751 { 0, 0, 0, 1, 7, 36, }, 1752 { 2, 0, 0, 1, 7, 32, }, 1753 { 1, 0, 0, 1, 7, 32, }, 1754 { 0, 0, 0, 1, 8, 36, }, 1755 { 2, 0, 0, 1, 8, 32, }, 1756 { 1, 0, 0, 1, 8, 32, }, 1757 { 0, 0, 0, 1, 9, 36, }, 1758 { 2, 0, 0, 1, 9, 32, }, 1759 { 1, 0, 0, 1, 9, 32, }, 1760 { 0, 0, 0, 1, 10, 36, }, 1761 { 2, 0, 0, 1, 10, 32, }, 1762 { 1, 0, 0, 1, 10, 32, }, 1763 { 0, 0, 0, 1, 11, 32, }, 1764 { 2, 0, 0, 1, 11, 32, }, 1765 { 1, 0, 0, 1, 11, 32, }, 1766 { 0, 0, 0, 1, 12, 63, }, 1767 { 2, 0, 0, 1, 12, 32, }, 1768 { 1, 0, 0, 1, 12, 32, }, 1769 { 0, 0, 0, 1, 13, 63, }, 1770 { 2, 0, 0, 1, 13, 32, }, 1771 { 1, 0, 0, 1, 13, 32, }, 1772 { 0, 0, 0, 1, 14, 63, }, 1773 { 2, 0, 0, 1, 14, 63, }, 1774 { 1, 0, 0, 1, 14, 63, }, 1775 { 0, 0, 0, 2, 1, 34, }, 1776 { 2, 0, 0, 2, 1, 32, }, 1777 { 1, 0, 0, 2, 1, 32, }, 1778 { 0, 0, 0, 2, 2, 36, }, 1779 { 2, 0, 0, 2, 2, 32, }, 1780 { 1, 0, 0, 2, 2, 32, }, 1781 { 0, 0, 0, 2, 3, 36, }, 1782 { 2, 0, 0, 2, 3, 32, }, 1783 { 1, 0, 0, 2, 3, 32, }, 1784 { 0, 0, 0, 2, 4, 36, }, 1785 { 2, 0, 0, 2, 4, 32, }, 1786 { 1, 0, 0, 2, 4, 32, }, 1787 { 0, 0, 0, 2, 5, 36, }, 1788 { 2, 0, 0, 2, 5, 32, }, 1789 { 1, 0, 0, 2, 5, 32, }, 1790 { 0, 0, 0, 2, 6, 36, }, 1791 { 2, 0, 0, 2, 6, 32, }, 1792 { 1, 0, 0, 2, 6, 32, }, 1793 { 0, 0, 0, 2, 7, 36, }, 1794 { 2, 0, 0, 2, 7, 32, }, 1795 { 1, 0, 0, 2, 7, 32, }, 1796 { 0, 0, 0, 2, 8, 36, }, 1797 { 2, 0, 0, 2, 8, 32, }, 1798 { 1, 0, 0, 2, 8, 32, }, 1799 { 0, 0, 0, 2, 9, 36, }, 1800 { 2, 0, 0, 2, 9, 32, }, 1801 { 1, 0, 0, 2, 9, 32, }, 1802 { 0, 0, 0, 2, 10, 36, }, 1803 { 2, 0, 0, 2, 10, 32, }, 1804 { 1, 0, 0, 2, 10, 32, }, 1805 { 0, 0, 0, 2, 11, 32, }, 1806 { 2, 0, 0, 2, 11, 32, }, 1807 { 1, 0, 0, 2, 11, 32, }, 1808 { 0, 0, 0, 2, 12, 63, }, 1809 { 2, 0, 0, 2, 12, 32, }, 1810 { 1, 0, 0, 2, 12, 32, }, 1811 { 0, 0, 0, 2, 13, 63, }, 1812 { 2, 0, 0, 2, 13, 32, }, 1813 { 1, 0, 0, 2, 13, 32, }, 1814 { 0, 0, 0, 2, 14, 63, }, 1815 { 2, 0, 0, 2, 14, 63, }, 1816 { 1, 0, 0, 2, 14, 63, }, 1817 { 0, 0, 0, 3, 1, 32, }, 1818 { 2, 0, 0, 3, 1, 32, }, 1819 { 1, 0, 0, 3, 1, 32, }, 1820 { 0, 0, 0, 3, 2, 34, }, 1821 { 2, 0, 0, 3, 2, 32, }, 1822 { 1, 0, 0, 3, 2, 32, }, 1823 { 0, 0, 0, 3, 3, 34, }, 1824 { 2, 0, 0, 3, 3, 32, }, 1825 { 1, 0, 0, 3, 3, 32, }, 1826 { 0, 0, 0, 3, 4, 34, }, 1827 { 2, 0, 0, 3, 4, 32, }, 1828 { 1, 0, 0, 3, 4, 32, }, 1829 { 0, 0, 0, 3, 5, 34, }, 1830 { 2, 0, 0, 3, 5, 32, }, 1831 { 1, 0, 0, 3, 5, 32, }, 1832 { 0, 0, 0, 3, 6, 34, }, 1833 { 2, 0, 0, 3, 6, 32, }, 1834 { 1, 0, 0, 3, 6, 32, }, 1835 { 0, 0, 0, 3, 7, 34, }, 1836 { 2, 0, 0, 3, 7, 32, }, 1837 { 1, 0, 0, 3, 7, 32, }, 1838 { 0, 0, 0, 3, 8, 34, }, 1839 { 2, 0, 0, 3, 8, 32, }, 1840 { 1, 0, 0, 3, 8, 32, }, 1841 { 0, 0, 0, 3, 9, 34, }, 1842 { 2, 0, 0, 3, 9, 32, }, 1843 { 1, 0, 0, 3, 9, 32, }, 1844 { 0, 0, 0, 3, 10, 34, }, 1845 { 2, 0, 0, 3, 10, 32, }, 1846 { 1, 0, 0, 3, 10, 32, }, 1847 { 0, 0, 0, 3, 11, 30, }, 1848 { 2, 0, 0, 3, 11, 32, }, 1849 { 1, 0, 0, 3, 11, 32, }, 1850 { 0, 0, 0, 3, 12, 63, }, 1851 { 2, 0, 0, 3, 12, 32, }, 1852 { 1, 0, 0, 3, 12, 32, }, 1853 { 0, 0, 0, 3, 13, 63, }, 1854 { 2, 0, 0, 3, 13, 32, }, 1855 { 1, 0, 0, 3, 13, 32, }, 1856 { 0, 0, 0, 3, 14, 63, }, 1857 { 2, 0, 0, 3, 14, 63, }, 1858 { 1, 0, 0, 3, 14, 63, }, 1859 { 0, 0, 1, 2, 1, 63, }, 1860 { 2, 0, 1, 2, 1, 63, }, 1861 { 1, 0, 1, 2, 1, 63, }, 1862 { 0, 0, 1, 2, 2, 63, }, 1863 { 2, 0, 1, 2, 2, 63, }, 1864 { 1, 0, 1, 2, 2, 63, }, 1865 { 0, 0, 1, 2, 3, 32, }, 1866 { 2, 0, 1, 2, 3, 32, }, 1867 { 1, 0, 1, 2, 3, 32, }, 1868 { 0, 0, 1, 2, 4, 36, }, 1869 { 2, 0, 1, 2, 4, 32, }, 1870 { 1, 0, 1, 2, 4, 32, }, 1871 { 0, 0, 1, 2, 5, 36, }, 1872 { 2, 0, 1, 2, 5, 32, }, 1873 { 1, 0, 1, 2, 5, 32, }, 1874 { 0, 0, 1, 2, 6, 36, }, 1875 { 2, 0, 1, 2, 6, 32, }, 1876 { 1, 0, 1, 2, 6, 32, }, 1877 { 0, 0, 1, 2, 7, 36, }, 1878 { 2, 0, 1, 2, 7, 32, }, 1879 { 1, 0, 1, 2, 7, 32, }, 1880 { 0, 0, 1, 2, 8, 36, }, 1881 { 2, 0, 1, 2, 8, 32, }, 1882 { 1, 0, 1, 2, 8, 32, }, 1883 { 0, 0, 1, 2, 9, 36, }, 1884 { 2, 0, 1, 2, 9, 32, }, 1885 { 1, 0, 1, 2, 9, 32, }, 1886 { 0, 0, 1, 2, 10, 36, }, 1887 { 2, 0, 1, 2, 10, 32, }, 1888 { 1, 0, 1, 2, 10, 32, }, 1889 { 0, 0, 1, 2, 11, 32, }, 1890 { 2, 0, 1, 2, 11, 32, }, 1891 { 1, 0, 1, 2, 11, 32, }, 1892 { 0, 0, 1, 2, 12, 63, }, 1893 { 2, 0, 1, 2, 12, 32, }, 1894 { 1, 0, 1, 2, 12, 32, }, 1895 { 0, 0, 1, 2, 13, 63, }, 1896 { 2, 0, 1, 2, 13, 32, }, 1897 { 1, 0, 1, 2, 13, 32, }, 1898 { 0, 0, 1, 2, 14, 63, }, 1899 { 2, 0, 1, 2, 14, 63, }, 1900 { 1, 0, 1, 2, 14, 63, }, 1901 { 0, 0, 1, 3, 1, 63, }, 1902 { 2, 0, 1, 3, 1, 63, }, 1903 { 1, 0, 1, 3, 1, 63, }, 1904 { 0, 0, 1, 3, 2, 63, }, 1905 { 2, 0, 1, 3, 2, 63, }, 1906 { 1, 0, 1, 3, 2, 63, }, 1907 { 0, 0, 1, 3, 3, 30, }, 1908 { 2, 0, 1, 3, 3, 30, }, 1909 { 1, 0, 1, 3, 3, 30, }, 1910 { 0, 0, 1, 3, 4, 34, }, 1911 { 2, 0, 1, 3, 4, 30, }, 1912 { 1, 0, 1, 3, 4, 30, }, 1913 { 0, 0, 1, 3, 5, 34, }, 1914 { 2, 0, 1, 3, 5, 30, }, 1915 { 1, 0, 1, 3, 5, 30, }, 1916 { 0, 0, 1, 3, 6, 34, }, 1917 { 2, 0, 1, 3, 6, 30, }, 1918 { 1, 0, 1, 3, 6, 30, }, 1919 { 0, 0, 1, 3, 7, 34, }, 1920 { 2, 0, 1, 3, 7, 30, }, 1921 { 1, 0, 1, 3, 7, 30, }, 1922 { 0, 0, 1, 3, 8, 34, }, 1923 { 2, 0, 1, 3, 8, 30, }, 1924 { 1, 0, 1, 3, 8, 30, }, 1925 { 0, 0, 1, 3, 9, 34, }, 1926 { 2, 0, 1, 3, 9, 30, }, 1927 { 1, 0, 1, 3, 9, 30, }, 1928 { 0, 0, 1, 3, 10, 34, }, 1929 { 2, 0, 1, 3, 10, 30, }, 1930 { 1, 0, 1, 3, 10, 30, }, 1931 { 0, 0, 1, 3, 11, 30, }, 1932 { 2, 0, 1, 3, 11, 30, }, 1933 { 1, 0, 1, 3, 11, 30, }, 1934 { 0, 0, 1, 3, 12, 63, }, 1935 { 2, 0, 1, 3, 12, 32, }, 1936 { 1, 0, 1, 3, 12, 32, }, 1937 { 0, 0, 1, 3, 13, 63, }, 1938 { 2, 0, 1, 3, 13, 32, }, 1939 { 1, 0, 1, 3, 13, 32, }, 1940 { 0, 0, 1, 3, 14, 63, }, 1941 { 2, 0, 1, 3, 14, 63, }, 1942 { 1, 0, 1, 3, 14, 63, }, 1943 { 0, 1, 0, 1, 36, 30, }, 1944 { 2, 1, 0, 1, 36, 32, }, 1945 { 1, 1, 0, 1, 36, 32, }, 1946 { 0, 1, 0, 1, 40, 30, }, 1947 { 2, 1, 0, 1, 40, 32, }, 1948 { 1, 1, 0, 1, 40, 32, }, 1949 { 0, 1, 0, 1, 44, 30, }, 1950 { 2, 1, 0, 1, 44, 32, }, 1951 { 1, 1, 0, 1, 44, 32, }, 1952 { 0, 1, 0, 1, 48, 30, }, 1953 { 2, 1, 0, 1, 48, 32, }, 1954 { 1, 1, 0, 1, 48, 32, }, 1955 { 0, 1, 0, 1, 52, 36, }, 1956 { 2, 1, 0, 1, 52, 32, }, 1957 { 1, 1, 0, 1, 52, 32, }, 1958 { 0, 1, 0, 1, 56, 34, }, 1959 { 2, 1, 0, 1, 56, 32, }, 1960 { 1, 1, 0, 1, 56, 32, }, 1961 { 0, 1, 0, 1, 60, 32, }, 1962 { 2, 1, 0, 1, 60, 32, }, 1963 { 1, 1, 0, 1, 60, 32, }, 1964 { 0, 1, 0, 1, 64, 28, }, 1965 { 2, 1, 0, 1, 64, 32, }, 1966 { 1, 1, 0, 1, 64, 32, }, 1967 { 0, 1, 0, 1, 100, 30, }, 1968 { 2, 1, 0, 1, 100, 32, }, 1969 { 1, 1, 0, 1, 100, 32, }, 1970 { 0, 1, 0, 1, 104, 30, }, 1971 { 2, 1, 0, 1, 104, 32, }, 1972 { 1, 1, 0, 1, 104, 32, }, 1973 { 0, 1, 0, 1, 108, 32, }, 1974 { 2, 1, 0, 1, 108, 32, }, 1975 { 1, 1, 0, 1, 108, 32, }, 1976 { 0, 1, 0, 1, 112, 34, }, 1977 { 2, 1, 0, 1, 112, 32, }, 1978 { 1, 1, 0, 1, 112, 32, }, 1979 { 0, 1, 0, 1, 116, 34, }, 1980 { 2, 1, 0, 1, 116, 32, }, 1981 { 1, 1, 0, 1, 116, 32, }, 1982 { 0, 1, 0, 1, 120, 36, }, 1983 { 2, 1, 0, 1, 120, 32, }, 1984 { 1, 1, 0, 1, 120, 32, }, 1985 { 0, 1, 0, 1, 124, 34, }, 1986 { 2, 1, 0, 1, 124, 32, }, 1987 { 1, 1, 0, 1, 124, 32, }, 1988 { 0, 1, 0, 1, 128, 32, }, 1989 { 2, 1, 0, 1, 128, 32, }, 1990 { 1, 1, 0, 1, 128, 32, }, 1991 { 0, 1, 0, 1, 132, 30, }, 1992 { 2, 1, 0, 1, 132, 32, }, 1993 { 1, 1, 0, 1, 132, 32, }, 1994 { 0, 1, 0, 1, 136, 30, }, 1995 { 2, 1, 0, 1, 136, 32, }, 1996 { 1, 1, 0, 1, 136, 32, }, 1997 { 0, 1, 0, 1, 140, 28, }, 1998 { 2, 1, 0, 1, 140, 32, }, 1999 { 1, 1, 0, 1, 140, 32, }, 2000 { 0, 1, 0, 1, 149, 36, }, 2001 { 2, 1, 0, 1, 149, 32, }, 2002 { 1, 1, 0, 1, 149, 63, }, 2003 { 0, 1, 0, 1, 153, 36, }, 2004 { 2, 1, 0, 1, 153, 32, }, 2005 { 1, 1, 0, 1, 153, 63, }, 2006 { 0, 1, 0, 1, 157, 36, }, 2007 { 2, 1, 0, 1, 157, 32, }, 2008 { 1, 1, 0, 1, 157, 63, }, 2009 { 0, 1, 0, 1, 161, 36, }, 2010 { 2, 1, 0, 1, 161, 32, }, 2011 { 1, 1, 0, 1, 161, 63, }, 2012 { 0, 1, 0, 1, 165, 36, }, 2013 { 2, 1, 0, 1, 165, 32, }, 2014 { 1, 1, 0, 1, 165, 63, }, 2015 { 0, 1, 0, 2, 36, 30, }, 2016 { 2, 1, 0, 2, 36, 32, }, 2017 { 1, 1, 0, 2, 36, 32, }, 2018 { 0, 1, 0, 2, 40, 30, }, 2019 { 2, 1, 0, 2, 40, 32, }, 2020 { 1, 1, 0, 2, 40, 32, }, 2021 { 0, 1, 0, 2, 44, 30, }, 2022 { 2, 1, 0, 2, 44, 32, }, 2023 { 1, 1, 0, 2, 44, 32, }, 2024 { 0, 1, 0, 2, 48, 30, }, 2025 { 2, 1, 0, 2, 48, 32, }, 2026 { 1, 1, 0, 2, 48, 32, }, 2027 { 0, 1, 0, 2, 52, 36, }, 2028 { 2, 1, 0, 2, 52, 32, }, 2029 { 1, 1, 0, 2, 52, 32, }, 2030 { 0, 1, 0, 2, 56, 34, }, 2031 { 2, 1, 0, 2, 56, 32, }, 2032 { 1, 1, 0, 2, 56, 32, }, 2033 { 0, 1, 0, 2, 60, 32, }, 2034 { 2, 1, 0, 2, 60, 32, }, 2035 { 1, 1, 0, 2, 60, 32, }, 2036 { 0, 1, 0, 2, 64, 28, }, 2037 { 2, 1, 0, 2, 64, 32, }, 2038 { 1, 1, 0, 2, 64, 32, }, 2039 { 0, 1, 0, 2, 100, 30, }, 2040 { 2, 1, 0, 2, 100, 32, }, 2041 { 1, 1, 0, 2, 100, 32, }, 2042 { 0, 1, 0, 2, 104, 30, }, 2043 { 2, 1, 0, 2, 104, 32, }, 2044 { 1, 1, 0, 2, 104, 32, }, 2045 { 0, 1, 0, 2, 108, 32, }, 2046 { 2, 1, 0, 2, 108, 32, }, 2047 { 1, 1, 0, 2, 108, 32, }, 2048 { 0, 1, 0, 2, 112, 34, }, 2049 { 2, 1, 0, 2, 112, 32, }, 2050 { 1, 1, 0, 2, 112, 32, }, 2051 { 0, 1, 0, 2, 116, 34, }, 2052 { 2, 1, 0, 2, 116, 32, }, 2053 { 1, 1, 0, 2, 116, 32, }, 2054 { 0, 1, 0, 2, 120, 36, }, 2055 { 2, 1, 0, 2, 120, 32, }, 2056 { 1, 1, 0, 2, 120, 32, }, 2057 { 0, 1, 0, 2, 124, 34, }, 2058 { 2, 1, 0, 2, 124, 32, }, 2059 { 1, 1, 0, 2, 124, 32, }, 2060 { 0, 1, 0, 2, 128, 32, }, 2061 { 2, 1, 0, 2, 128, 32, }, 2062 { 1, 1, 0, 2, 128, 32, }, 2063 { 0, 1, 0, 2, 132, 30, }, 2064 { 2, 1, 0, 2, 132, 32, }, 2065 { 1, 1, 0, 2, 132, 32, }, 2066 { 0, 1, 0, 2, 136, 30, }, 2067 { 2, 1, 0, 2, 136, 32, }, 2068 { 1, 1, 0, 2, 136, 32, }, 2069 { 0, 1, 0, 2, 140, 28, }, 2070 { 2, 1, 0, 2, 140, 32, }, 2071 { 1, 1, 0, 2, 140, 32, }, 2072 { 0, 1, 0, 2, 149, 36, }, 2073 { 2, 1, 0, 2, 149, 32, }, 2074 { 1, 1, 0, 2, 149, 63, }, 2075 { 0, 1, 0, 2, 153, 36, }, 2076 { 2, 1, 0, 2, 153, 32, }, 2077 { 1, 1, 0, 2, 153, 63, }, 2078 { 0, 1, 0, 2, 157, 36, }, 2079 { 2, 1, 0, 2, 157, 32, }, 2080 { 1, 1, 0, 2, 157, 63, }, 2081 { 0, 1, 0, 2, 161, 36, }, 2082 { 2, 1, 0, 2, 161, 32, }, 2083 { 1, 1, 0, 2, 161, 63, }, 2084 { 0, 1, 0, 2, 165, 36, }, 2085 { 2, 1, 0, 2, 165, 32, }, 2086 { 1, 1, 0, 2, 165, 63, }, 2087 { 0, 1, 0, 3, 36, 28, }, 2088 { 2, 1, 0, 3, 36, 30, }, 2089 { 1, 1, 0, 3, 36, 30, }, 2090 { 0, 1, 0, 3, 40, 28, }, 2091 { 2, 1, 0, 3, 40, 30, }, 2092 { 1, 1, 0, 3, 40, 30, }, 2093 { 0, 1, 0, 3, 44, 28, }, 2094 { 2, 1, 0, 3, 44, 30, }, 2095 { 1, 1, 0, 3, 44, 30, }, 2096 { 0, 1, 0, 3, 48, 28, }, 2097 { 2, 1, 0, 3, 48, 30, }, 2098 { 1, 1, 0, 3, 48, 30, }, 2099 { 0, 1, 0, 3, 52, 34, }, 2100 { 2, 1, 0, 3, 52, 30, }, 2101 { 1, 1, 0, 3, 52, 30, }, 2102 { 0, 1, 0, 3, 56, 32, }, 2103 { 2, 1, 0, 3, 56, 30, }, 2104 { 1, 1, 0, 3, 56, 30, }, 2105 { 0, 1, 0, 3, 60, 30, }, 2106 { 2, 1, 0, 3, 60, 30, }, 2107 { 1, 1, 0, 3, 60, 30, }, 2108 { 0, 1, 0, 3, 64, 26, }, 2109 { 2, 1, 0, 3, 64, 30, }, 2110 { 1, 1, 0, 3, 64, 30, }, 2111 { 0, 1, 0, 3, 100, 28, }, 2112 { 2, 1, 0, 3, 100, 30, }, 2113 { 1, 1, 0, 3, 100, 30, }, 2114 { 0, 1, 0, 3, 104, 28, }, 2115 { 2, 1, 0, 3, 104, 30, }, 2116 { 1, 1, 0, 3, 104, 30, }, 2117 { 0, 1, 0, 3, 108, 30, }, 2118 { 2, 1, 0, 3, 108, 30, }, 2119 { 1, 1, 0, 3, 108, 30, }, 2120 { 0, 1, 0, 3, 112, 32, }, 2121 { 2, 1, 0, 3, 112, 30, }, 2122 { 1, 1, 0, 3, 112, 30, }, 2123 { 0, 1, 0, 3, 116, 32, }, 2124 { 2, 1, 0, 3, 116, 30, }, 2125 { 1, 1, 0, 3, 116, 30, }, 2126 { 0, 1, 0, 3, 120, 34, }, 2127 { 2, 1, 0, 3, 120, 30, }, 2128 { 1, 1, 0, 3, 120, 30, }, 2129 { 0, 1, 0, 3, 124, 32, }, 2130 { 2, 1, 0, 3, 124, 30, }, 2131 { 1, 1, 0, 3, 124, 30, }, 2132 { 0, 1, 0, 3, 128, 30, }, 2133 { 2, 1, 0, 3, 128, 30, }, 2134 { 1, 1, 0, 3, 128, 30, }, 2135 { 0, 1, 0, 3, 132, 28, }, 2136 { 2, 1, 0, 3, 132, 30, }, 2137 { 1, 1, 0, 3, 132, 30, }, 2138 { 0, 1, 0, 3, 136, 28, }, 2139 { 2, 1, 0, 3, 136, 30, }, 2140 { 1, 1, 0, 3, 136, 30, }, 2141 { 0, 1, 0, 3, 140, 26, }, 2142 { 2, 1, 0, 3, 140, 30, }, 2143 { 1, 1, 0, 3, 140, 30, }, 2144 { 0, 1, 0, 3, 149, 34, }, 2145 { 2, 1, 0, 3, 149, 30, }, 2146 { 1, 1, 0, 3, 149, 63, }, 2147 { 0, 1, 0, 3, 153, 34, }, 2148 { 2, 1, 0, 3, 153, 30, }, 2149 { 1, 1, 0, 3, 153, 63, }, 2150 { 0, 1, 0, 3, 157, 34, }, 2151 { 2, 1, 0, 3, 157, 30, }, 2152 { 1, 1, 0, 3, 157, 63, }, 2153 { 0, 1, 0, 3, 161, 34, }, 2154 { 2, 1, 0, 3, 161, 30, }, 2155 { 1, 1, 0, 3, 161, 63, }, 2156 { 0, 1, 0, 3, 165, 34, }, 2157 { 2, 1, 0, 3, 165, 30, }, 2158 { 1, 1, 0, 3, 165, 63, }, 2159 { 0, 1, 1, 2, 38, 30, }, 2160 { 2, 1, 1, 2, 38, 32, }, 2161 { 1, 1, 1, 2, 38, 32, }, 2162 { 0, 1, 1, 2, 46, 30, }, 2163 { 2, 1, 1, 2, 46, 32, }, 2164 { 1, 1, 1, 2, 46, 32, }, 2165 { 0, 1, 1, 2, 54, 32, }, 2166 { 2, 1, 1, 2, 54, 32, }, 2167 { 1, 1, 1, 2, 54, 32, }, 2168 { 0, 1, 1, 2, 62, 32, }, 2169 { 2, 1, 1, 2, 62, 32, }, 2170 { 1, 1, 1, 2, 62, 32, }, 2171 { 0, 1, 1, 2, 102, 28, }, 2172 { 2, 1, 1, 2, 102, 32, }, 2173 { 1, 1, 1, 2, 102, 32, }, 2174 { 0, 1, 1, 2, 110, 32, }, 2175 { 2, 1, 1, 2, 110, 32, }, 2176 { 1, 1, 1, 2, 110, 32, }, 2177 { 0, 1, 1, 2, 118, 36, }, 2178 { 2, 1, 1, 2, 118, 32, }, 2179 { 1, 1, 1, 2, 118, 32, }, 2180 { 0, 1, 1, 2, 126, 34, }, 2181 { 2, 1, 1, 2, 126, 32, }, 2182 { 1, 1, 1, 2, 126, 32, }, 2183 { 0, 1, 1, 2, 134, 32, }, 2184 { 2, 1, 1, 2, 134, 32, }, 2185 { 1, 1, 1, 2, 134, 32, }, 2186 { 0, 1, 1, 2, 151, 36, }, 2187 { 2, 1, 1, 2, 151, 32, }, 2188 { 1, 1, 1, 2, 151, 63, }, 2189 { 0, 1, 1, 2, 159, 36, }, 2190 { 2, 1, 1, 2, 159, 32, }, 2191 { 1, 1, 1, 2, 159, 63, }, 2192 { 0, 1, 1, 3, 38, 28, }, 2193 { 2, 1, 1, 3, 38, 30, }, 2194 { 1, 1, 1, 3, 38, 30, }, 2195 { 0, 1, 1, 3, 46, 28, }, 2196 { 2, 1, 1, 3, 46, 30, }, 2197 { 1, 1, 1, 3, 46, 30, }, 2198 { 0, 1, 1, 3, 54, 30, }, 2199 { 2, 1, 1, 3, 54, 30, }, 2200 { 1, 1, 1, 3, 54, 30, }, 2201 { 0, 1, 1, 3, 62, 30, }, 2202 { 2, 1, 1, 3, 62, 30, }, 2203 { 1, 1, 1, 3, 62, 30, }, 2204 { 0, 1, 1, 3, 102, 26, }, 2205 { 2, 1, 1, 3, 102, 30, }, 2206 { 1, 1, 1, 3, 102, 30, }, 2207 { 0, 1, 1, 3, 110, 30, }, 2208 { 2, 1, 1, 3, 110, 30, }, 2209 { 1, 1, 1, 3, 110, 30, }, 2210 { 0, 1, 1, 3, 118, 34, }, 2211 { 2, 1, 1, 3, 118, 30, }, 2212 { 1, 1, 1, 3, 118, 30, }, 2213 { 0, 1, 1, 3, 126, 32, }, 2214 { 2, 1, 1, 3, 126, 30, }, 2215 { 1, 1, 1, 3, 126, 30, }, 2216 { 0, 1, 1, 3, 134, 30, }, 2217 { 2, 1, 1, 3, 134, 30, }, 2218 { 1, 1, 1, 3, 134, 30, }, 2219 { 0, 1, 1, 3, 151, 34, }, 2220 { 2, 1, 1, 3, 151, 30, }, 2221 { 1, 1, 1, 3, 151, 63, }, 2222 { 0, 1, 1, 3, 159, 34, }, 2223 { 2, 1, 1, 3, 159, 30, }, 2224 { 1, 1, 1, 3, 159, 63, }, 2225 { 0, 1, 2, 4, 42, 30, }, 2226 { 2, 1, 2, 4, 42, 32, }, 2227 { 1, 1, 2, 4, 42, 32, }, 2228 { 0, 1, 2, 4, 58, 28, }, 2229 { 2, 1, 2, 4, 58, 32, }, 2230 { 1, 1, 2, 4, 58, 32, }, 2231 { 0, 1, 2, 4, 106, 30, }, 2232 { 2, 1, 2, 4, 106, 32, }, 2233 { 1, 1, 2, 4, 106, 32, }, 2234 { 0, 1, 2, 4, 122, 34, }, 2235 { 2, 1, 2, 4, 122, 32, }, 2236 { 1, 1, 2, 4, 122, 32, }, 2237 { 0, 1, 2, 4, 155, 36, }, 2238 { 2, 1, 2, 4, 155, 32, }, 2239 { 1, 1, 2, 4, 155, 63, }, 2240 { 0, 1, 2, 5, 42, 28, }, 2241 { 2, 1, 2, 5, 42, 30, }, 2242 { 1, 1, 2, 5, 42, 30, }, 2243 { 0, 1, 2, 5, 58, 26, }, 2244 { 2, 1, 2, 5, 58, 30, }, 2245 { 1, 1, 2, 5, 58, 30, }, 2246 { 0, 1, 2, 5, 106, 28, }, 2247 { 2, 1, 2, 5, 106, 30, }, 2248 { 1, 1, 2, 5, 106, 30, }, 2249 { 0, 1, 2, 5, 122, 32, }, 2250 { 2, 1, 2, 5, 122, 30, }, 2251 { 1, 1, 2, 5, 122, 30, }, 2252 { 0, 1, 2, 5, 155, 34, }, 2253 { 2, 1, 2, 5, 155, 30, }, 2254 { 1, 1, 2, 5, 155, 63, }, 2255 }; 2256 2257 RTW_DECL_TABLE_TXPWR_LMT(rtw8812a_txpwr_lmt); 2258 2259 static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8812a[] = { 2260 {0x0012, 2261 RTW_PWR_CUT_ALL_MSK, 2262 RTW_PWR_INTF_ALL_MSK, 2263 RTW_PWR_ADDR_MAC, 2264 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2265 {0x0014, 2266 RTW_PWR_CUT_ALL_MSK, 2267 RTW_PWR_INTF_ALL_MSK, 2268 RTW_PWR_ADDR_MAC, 2269 RTW_PWR_CMD_WRITE, 0x80, 0}, 2270 {0x0015, 2271 RTW_PWR_CUT_ALL_MSK, 2272 RTW_PWR_INTF_ALL_MSK, 2273 RTW_PWR_ADDR_MAC, 2274 RTW_PWR_CMD_WRITE, 0x01, 0}, 2275 {0x0023, 2276 RTW_PWR_CUT_ALL_MSK, 2277 RTW_PWR_INTF_ALL_MSK, 2278 RTW_PWR_ADDR_MAC, 2279 RTW_PWR_CMD_WRITE, 0x10, 0}, 2280 {0x0046, 2281 RTW_PWR_CUT_ALL_MSK, 2282 RTW_PWR_INTF_ALL_MSK, 2283 RTW_PWR_ADDR_MAC, 2284 RTW_PWR_CMD_WRITE, 0xFF, 0x00}, 2285 {0x0043, 2286 RTW_PWR_CUT_ALL_MSK, 2287 RTW_PWR_INTF_ALL_MSK, 2288 RTW_PWR_ADDR_MAC, 2289 RTW_PWR_CMD_WRITE, 0xFF, 0x00}, 2290 {0x0005, 2291 RTW_PWR_CUT_ALL_MSK, 2292 RTW_PWR_INTF_PCI_MSK, 2293 RTW_PWR_ADDR_MAC, 2294 RTW_PWR_CMD_WRITE, BIT(2), 0}, 2295 {0x0005, 2296 RTW_PWR_CUT_ALL_MSK, 2297 RTW_PWR_INTF_ALL_MSK, 2298 RTW_PWR_ADDR_MAC, 2299 RTW_PWR_CMD_WRITE, BIT(3), 0}, 2300 {0x0003, 2301 RTW_PWR_CUT_ALL_MSK, 2302 RTW_PWR_INTF_ALL_MSK, 2303 RTW_PWR_ADDR_MAC, 2304 RTW_PWR_CMD_WRITE, BIT(2), BIT(2)}, 2305 {0x0301, 2306 RTW_PWR_CUT_ALL_MSK, 2307 RTW_PWR_INTF_PCI_MSK, 2308 RTW_PWR_ADDR_MAC, 2309 RTW_PWR_CMD_WRITE, 0xFF, 0}, 2310 {0x0024, 2311 RTW_PWR_CUT_ALL_MSK, 2312 RTW_PWR_INTF_USB_MSK, 2313 RTW_PWR_ADDR_MAC, 2314 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)}, 2315 {0x0028, 2316 RTW_PWR_CUT_ALL_MSK, 2317 RTW_PWR_INTF_USB_MSK, 2318 RTW_PWR_ADDR_MAC, 2319 RTW_PWR_CMD_WRITE, BIT(3), BIT(3)}, 2320 {0xFFFF, 2321 RTW_PWR_CUT_ALL_MSK, 2322 RTW_PWR_INTF_ALL_MSK, 2323 0, 2324 RTW_PWR_CMD_END, 0, 0}, 2325 }; 2326 2327 static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8812a[] = { 2328 {0x0005, 2329 RTW_PWR_CUT_ALL_MSK, 2330 RTW_PWR_INTF_ALL_MSK, 2331 RTW_PWR_ADDR_MAC, 2332 RTW_PWR_CMD_WRITE, BIT(2), 0}, 2333 {0x0006, 2334 RTW_PWR_CUT_ALL_MSK, 2335 RTW_PWR_INTF_ALL_MSK, 2336 RTW_PWR_ADDR_MAC, 2337 RTW_PWR_CMD_POLLING, BIT(1), BIT(1)}, 2338 {0x0005, 2339 RTW_PWR_CUT_ALL_MSK, 2340 RTW_PWR_INTF_PCI_MSK, 2341 RTW_PWR_ADDR_MAC, 2342 RTW_PWR_CMD_WRITE, BIT(7), 0}, 2343 {0x0005, 2344 RTW_PWR_CUT_ALL_MSK, 2345 RTW_PWR_INTF_ALL_MSK, 2346 RTW_PWR_ADDR_MAC, 2347 RTW_PWR_CMD_WRITE, BIT(3), 0}, 2348 {0x0005, 2349 RTW_PWR_CUT_ALL_MSK, 2350 RTW_PWR_INTF_ALL_MSK, 2351 RTW_PWR_ADDR_MAC, 2352 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2353 {0x0005, 2354 RTW_PWR_CUT_ALL_MSK, 2355 RTW_PWR_INTF_ALL_MSK, 2356 RTW_PWR_ADDR_MAC, 2357 RTW_PWR_CMD_POLLING, BIT(0), 0}, 2358 {0x0024, 2359 RTW_PWR_CUT_ALL_MSK, 2360 RTW_PWR_INTF_USB_MSK, 2361 RTW_PWR_ADDR_MAC, 2362 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2363 {0x0028, 2364 RTW_PWR_CUT_ALL_MSK, 2365 RTW_PWR_INTF_USB_MSK, 2366 RTW_PWR_ADDR_MAC, 2367 RTW_PWR_CMD_WRITE, BIT(3), 0}, 2368 {0xFFFF, 2369 RTW_PWR_CUT_ALL_MSK, 2370 RTW_PWR_INTF_ALL_MSK, 2371 0, 2372 RTW_PWR_CMD_END, 0, 0}, 2373 }; 2374 2375 static const struct rtw_pwr_seq_cmd trans_act_to_lps_8812a[] = { 2376 {0x0301, 2377 RTW_PWR_CUT_ALL_MSK, 2378 RTW_PWR_INTF_PCI_MSK, 2379 RTW_PWR_ADDR_MAC, 2380 RTW_PWR_CMD_WRITE, 0xFF, 0xFF}, 2381 {0x0522, 2382 RTW_PWR_CUT_ALL_MSK, 2383 RTW_PWR_INTF_ALL_MSK, 2384 RTW_PWR_ADDR_MAC, 2385 RTW_PWR_CMD_WRITE, 0xFF, 0x7F}, 2386 {0x05F8, 2387 RTW_PWR_CUT_ALL_MSK, 2388 RTW_PWR_INTF_ALL_MSK, 2389 RTW_PWR_ADDR_MAC, 2390 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2391 {0x05F9, 2392 RTW_PWR_CUT_ALL_MSK, 2393 RTW_PWR_INTF_ALL_MSK, 2394 RTW_PWR_ADDR_MAC, 2395 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2396 {0x05FA, 2397 RTW_PWR_CUT_ALL_MSK, 2398 RTW_PWR_INTF_ALL_MSK, 2399 RTW_PWR_ADDR_MAC, 2400 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2401 {0x05FB, 2402 RTW_PWR_CUT_ALL_MSK, 2403 RTW_PWR_INTF_ALL_MSK, 2404 RTW_PWR_ADDR_MAC, 2405 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2406 {0x0c00, 2407 RTW_PWR_CUT_ALL_MSK, 2408 RTW_PWR_INTF_ALL_MSK, 2409 RTW_PWR_ADDR_MAC, 2410 RTW_PWR_CMD_WRITE, 0xFF, 0x04}, 2411 {0x0e00, 2412 RTW_PWR_CUT_ALL_MSK, 2413 RTW_PWR_INTF_ALL_MSK, 2414 RTW_PWR_ADDR_MAC, 2415 RTW_PWR_CMD_WRITE, 0xFF, 0x04}, 2416 {0x0002, 2417 RTW_PWR_CUT_ALL_MSK, 2418 RTW_PWR_INTF_ALL_MSK, 2419 RTW_PWR_ADDR_MAC, 2420 RTW_PWR_CMD_WRITE, BIT(0), 0}, 2421 {0x0002, 2422 RTW_PWR_CUT_ALL_MSK, 2423 RTW_PWR_INTF_ALL_MSK, 2424 RTW_PWR_ADDR_MAC, 2425 RTW_PWR_CMD_DELAY, 0, RTW_PWR_DELAY_US}, 2426 {0x0002, 2427 RTW_PWR_CUT_ALL_MSK, 2428 RTW_PWR_INTF_USB_MSK, 2429 RTW_PWR_ADDR_MAC, 2430 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2431 {0x0100, 2432 RTW_PWR_CUT_ALL_MSK, 2433 RTW_PWR_INTF_ALL_MSK, 2434 RTW_PWR_ADDR_MAC, 2435 RTW_PWR_CMD_WRITE, 0xFF, 0x03}, 2436 {0x0101, 2437 RTW_PWR_CUT_ALL_MSK, 2438 RTW_PWR_INTF_ALL_MSK, 2439 RTW_PWR_ADDR_MAC, 2440 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2441 {0x0553, 2442 RTW_PWR_CUT_ALL_MSK, 2443 RTW_PWR_INTF_ALL_MSK, 2444 RTW_PWR_ADDR_MAC, 2445 RTW_PWR_CMD_WRITE, BIT(5), BIT(5)}, 2446 {0xFFFF, 2447 RTW_PWR_CUT_ALL_MSK, 2448 RTW_PWR_INTF_ALL_MSK, 2449 0, 2450 RTW_PWR_CMD_END, 0, 0}, 2451 }; 2452 2453 static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8812a[] = { 2454 {0x0c00, 2455 RTW_PWR_CUT_ALL_MSK, 2456 RTW_PWR_INTF_ALL_MSK, 2457 RTW_PWR_ADDR_MAC, 2458 RTW_PWR_CMD_WRITE, 0xFF, 0x04}, 2459 {0x0e00, 2460 RTW_PWR_CUT_ALL_MSK, 2461 RTW_PWR_INTF_ALL_MSK, 2462 RTW_PWR_ADDR_MAC, 2463 RTW_PWR_CMD_WRITE, 0xFF, 0x04}, 2464 {0x0002, 2465 RTW_PWR_CUT_ALL_MSK, 2466 RTW_PWR_INTF_ALL_MSK, 2467 RTW_PWR_ADDR_MAC, 2468 RTW_PWR_CMD_WRITE, BIT(0), 0}, 2469 {0x0002, 2470 RTW_PWR_CUT_ALL_MSK, 2471 RTW_PWR_INTF_ALL_MSK, 2472 RTW_PWR_ADDR_MAC, 2473 RTW_PWR_CMD_DELAY, 0, RTW_PWR_DELAY_US}, 2474 {0x0002, 2475 RTW_PWR_CUT_ALL_MSK, 2476 RTW_PWR_INTF_PCI_MSK, 2477 RTW_PWR_ADDR_MAC, 2478 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2479 {0x0007, 2480 RTW_PWR_CUT_ALL_MSK, 2481 RTW_PWR_INTF_ALL_MSK, 2482 RTW_PWR_ADDR_MAC, 2483 RTW_PWR_CMD_WRITE, 0xFF, 0x2A}, 2484 {0x0008, 2485 RTW_PWR_CUT_ALL_MSK, 2486 RTW_PWR_INTF_USB_MSK, 2487 RTW_PWR_ADDR_MAC, 2488 RTW_PWR_CMD_WRITE, 0x02, 0}, 2489 {0x0005, 2490 RTW_PWR_CUT_ALL_MSK, 2491 RTW_PWR_INTF_ALL_MSK, 2492 RTW_PWR_ADDR_MAC, 2493 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)}, 2494 {0x0005, 2495 RTW_PWR_CUT_ALL_MSK, 2496 RTW_PWR_INTF_ALL_MSK, 2497 RTW_PWR_ADDR_MAC, 2498 RTW_PWR_CMD_POLLING, BIT(1), 0}, 2499 {0xFFFF, 2500 RTW_PWR_CUT_ALL_MSK, 2501 RTW_PWR_INTF_ALL_MSK, 2502 0, 2503 RTW_PWR_CMD_END, 0, 0}, 2504 }; 2505 2506 static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8812a[] = { 2507 {0x0003, 2508 RTW_PWR_CUT_ALL_MSK, 2509 RTW_PWR_INTF_ALL_MSK, 2510 RTW_PWR_ADDR_MAC, 2511 RTW_PWR_CMD_WRITE, BIT(2), 0}, 2512 {0x0080, 2513 RTW_PWR_CUT_ALL_MSK, 2514 RTW_PWR_INTF_ALL_MSK, 2515 RTW_PWR_ADDR_MAC, 2516 RTW_PWR_CMD_WRITE, 0xFF, 0x05}, 2517 {0x0042, 2518 RTW_PWR_CUT_ALL_MSK, 2519 RTW_PWR_INTF_USB_MSK, 2520 RTW_PWR_ADDR_MAC, 2521 RTW_PWR_CMD_WRITE, 0xF0, 0xcc}, 2522 {0x0042, 2523 RTW_PWR_CUT_ALL_MSK, 2524 RTW_PWR_INTF_PCI_MSK, 2525 RTW_PWR_ADDR_MAC, 2526 RTW_PWR_CMD_WRITE, 0xF0, 0xEC}, 2527 {0x0043, 2528 RTW_PWR_CUT_ALL_MSK, 2529 RTW_PWR_INTF_ALL_MSK, 2530 RTW_PWR_ADDR_MAC, 2531 RTW_PWR_CMD_WRITE, 0xFF, 0x07}, 2532 {0x0045, 2533 RTW_PWR_CUT_ALL_MSK, 2534 RTW_PWR_INTF_ALL_MSK, 2535 RTW_PWR_ADDR_MAC, 2536 RTW_PWR_CMD_WRITE, 0xFF, 0x00}, 2537 {0x0046, 2538 RTW_PWR_CUT_ALL_MSK, 2539 RTW_PWR_INTF_ALL_MSK, 2540 RTW_PWR_ADDR_MAC, 2541 RTW_PWR_CMD_WRITE, 0xFF, 0xff}, 2542 {0x0047, 2543 RTW_PWR_CUT_ALL_MSK, 2544 RTW_PWR_INTF_ALL_MSK, 2545 RTW_PWR_ADDR_MAC, 2546 RTW_PWR_CMD_WRITE, 0xFF, 0}, 2547 {0x0014, 2548 RTW_PWR_CUT_ALL_MSK, 2549 RTW_PWR_INTF_ALL_MSK, 2550 RTW_PWR_ADDR_MAC, 2551 RTW_PWR_CMD_WRITE, 0x80, BIT(7)}, 2552 {0x0015, 2553 RTW_PWR_CUT_ALL_MSK, 2554 RTW_PWR_INTF_ALL_MSK, 2555 RTW_PWR_ADDR_MAC, 2556 RTW_PWR_CMD_WRITE, 0x01, BIT(0)}, 2557 {0x0012, 2558 RTW_PWR_CUT_ALL_MSK, 2559 RTW_PWR_INTF_ALL_MSK, 2560 RTW_PWR_ADDR_MAC, 2561 RTW_PWR_CMD_WRITE, 0x01, 0}, 2562 {0x0023, 2563 RTW_PWR_CUT_ALL_MSK, 2564 RTW_PWR_INTF_ALL_MSK, 2565 RTW_PWR_ADDR_MAC, 2566 RTW_PWR_CMD_WRITE, 0x10, BIT(4)}, 2567 {0x0008, 2568 RTW_PWR_CUT_ALL_MSK, 2569 RTW_PWR_INTF_USB_MSK, 2570 RTW_PWR_ADDR_MAC, 2571 RTW_PWR_CMD_WRITE, 0x02, 0}, 2572 {0x0007, 2573 RTW_PWR_CUT_ALL_MSK, 2574 RTW_PWR_INTF_USB_MSK, 2575 RTW_PWR_ADDR_MAC, 2576 RTW_PWR_CMD_WRITE, 0xFF, 0x20}, 2577 {0x001f, 2578 RTW_PWR_CUT_ALL_MSK, 2579 RTW_PWR_INTF_USB_MSK, 2580 RTW_PWR_ADDR_MAC, 2581 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2582 {0x0076, 2583 RTW_PWR_CUT_ALL_MSK, 2584 RTW_PWR_INTF_USB_MSK, 2585 RTW_PWR_ADDR_MAC, 2586 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2587 {0x0005, 2588 RTW_PWR_CUT_ALL_MSK, 2589 RTW_PWR_INTF_ALL_MSK, 2590 RTW_PWR_ADDR_MAC, 2591 RTW_PWR_CMD_WRITE, BIT(3), BIT(3)}, 2592 {0xFFFF, 2593 RTW_PWR_CUT_ALL_MSK, 2594 RTW_PWR_INTF_ALL_MSK, 2595 0, 2596 RTW_PWR_CMD_END, 0, 0}, 2597 }; 2598 2599 const struct rtw_pwr_seq_cmd * const card_enable_flow_8812a[] = { 2600 trans_carddis_to_cardemu_8812a, 2601 trans_cardemu_to_act_8812a, 2602 NULL 2603 }; 2604 2605 const struct rtw_pwr_seq_cmd * const enter_lps_flow_8812a[] = { 2606 trans_act_to_lps_8812a, 2607 NULL 2608 }; 2609 2610 const struct rtw_pwr_seq_cmd * const card_disable_flow_8812a[] = { 2611 trans_act_to_cardemu_8812a, 2612 trans_cardemu_to_carddis_8812a, 2613 NULL 2614 }; 2615 2616 static const u8 rtw8812a_pwrtrk_5gb_n[][RTW_PWR_TRK_TBL_SZ] = { 2617 {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2618 12, 13, 13, 14, 14, 14, 14, 14, 14}, 2619 {0, 1, 1, 2, 2, 3, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2620 12, 13, 13, 14, 14, 14, 14, 14, 14}, 2621 {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 8, 9, 10, 10, 11, 11, 12, 12, 13, 2622 13, 14, 14, 15, 16, 16, 16, 16, 16}, 2623 }; 2624 2625 static const u8 rtw8812a_pwrtrk_5gb_p[][RTW_PWR_TRK_TBL_SZ] = { 2626 {0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 2627 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2628 {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 2629 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2630 {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 11, 11, 11, 11, 11, 2631 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2632 }; 2633 2634 static const u8 rtw8812a_pwrtrk_5ga_n[][RTW_PWR_TRK_TBL_SZ] = { 2635 {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2636 12, 13, 13, 14, 15, 15, 15, 15, 15}, 2637 {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2638 12, 13, 13, 14, 15, 15, 15, 15, 15}, 2639 {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2640 12, 13, 13, 14, 15, 15, 15, 15, 15}, 2641 }; 2642 2643 static const u8 rtw8812a_pwrtrk_5ga_p[][RTW_PWR_TRK_TBL_SZ] = { 2644 {0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 11, 11, 11, 11, 11, 11, 2645 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2646 {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 11, 11, 11, 11, 11, 11, 2647 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2648 {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 8, 9, 10, 11, 11, 12, 12, 11, 11, 2649 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2650 }; 2651 2652 static const u8 rtw8812a_pwrtrk_2gb_n[] = { 2653 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 2654 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11 2655 }; 2656 2657 static const u8 rtw8812a_pwrtrk_2gb_p[] = { 2658 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2659 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 2660 }; 2661 2662 static const u8 rtw8812a_pwrtrk_2ga_n[] = { 2663 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2664 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 10, 10, 10 2665 }; 2666 2667 static const u8 rtw8812a_pwrtrk_2ga_p[] = { 2668 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2669 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 2670 }; 2671 2672 static const u8 rtw8812a_pwrtrk_2g_cck_b_n[] = { 2673 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 2674 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11 2675 }; 2676 2677 static const u8 rtw8812a_pwrtrk_2g_cck_b_p[] = { 2678 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2679 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 2680 }; 2681 2682 static const u8 rtw8812a_pwrtrk_2g_cck_a_n[] = { 2683 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2684 6, 6, 7, 7, 7, 8, 8, 9, 10, 10, 10, 10, 10, 10 2685 }; 2686 2687 static const u8 rtw8812a_pwrtrk_2g_cck_a_p[] = { 2688 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2689 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 2690 }; 2691 2692 const struct rtw_pwr_track_tbl rtw8812a_rtw_pwr_track_tbl = { 2693 .pwrtrk_5gb_n[0] = rtw8812a_pwrtrk_5gb_n[0], 2694 .pwrtrk_5gb_n[1] = rtw8812a_pwrtrk_5gb_n[1], 2695 .pwrtrk_5gb_n[2] = rtw8812a_pwrtrk_5gb_n[2], 2696 .pwrtrk_5gb_p[0] = rtw8812a_pwrtrk_5gb_p[0], 2697 .pwrtrk_5gb_p[1] = rtw8812a_pwrtrk_5gb_p[1], 2698 .pwrtrk_5gb_p[2] = rtw8812a_pwrtrk_5gb_p[2], 2699 .pwrtrk_5ga_n[0] = rtw8812a_pwrtrk_5ga_n[0], 2700 .pwrtrk_5ga_n[1] = rtw8812a_pwrtrk_5ga_n[1], 2701 .pwrtrk_5ga_n[2] = rtw8812a_pwrtrk_5ga_n[2], 2702 .pwrtrk_5ga_p[0] = rtw8812a_pwrtrk_5ga_p[0], 2703 .pwrtrk_5ga_p[1] = rtw8812a_pwrtrk_5ga_p[1], 2704 .pwrtrk_5ga_p[2] = rtw8812a_pwrtrk_5ga_p[2], 2705 .pwrtrk_2gb_n = rtw8812a_pwrtrk_2gb_n, 2706 .pwrtrk_2gb_p = rtw8812a_pwrtrk_2gb_p, 2707 .pwrtrk_2ga_n = rtw8812a_pwrtrk_2ga_n, 2708 .pwrtrk_2ga_p = rtw8812a_pwrtrk_2ga_p, 2709 .pwrtrk_2g_cckb_n = rtw8812a_pwrtrk_2g_cck_b_n, 2710 .pwrtrk_2g_cckb_p = rtw8812a_pwrtrk_2g_cck_b_p, 2711 .pwrtrk_2g_ccka_n = rtw8812a_pwrtrk_2g_cck_a_n, 2712 .pwrtrk_2g_ccka_p = rtw8812a_pwrtrk_2g_cck_a_p, 2713 }; 2714 2715 static const u8 rtw8812a_pwrtrk_rfe3_5gb_n[][RTW_PWR_TRK_TBL_SZ] = { 2716 {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 13, 2717 13, 14, 15, 16, 16, 17, 17, 18, 18}, 2718 {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 2719 12, 14, 13, 13, 14, 14, 14, 15, 15}, 2720 {0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2721 12, 13, 13, 14, 14, 15, 15, 16, 16}, 2722 }; 2723 2724 static const u8 rtw8812a_pwrtrk_rfe3_5gb_p[][RTW_PWR_TRK_TBL_SZ] = { 2725 {0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 2726 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2727 {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 2728 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2729 {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 10, 10, 11, 11, 11, 2730 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2731 }; 2732 2733 static const u8 rtw8812a_pwrtrk_rfe3_5ga_n[][RTW_PWR_TRK_TBL_SZ] = { 2734 {0, 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 2735 13, 14, 15, 16, 16, 17, 17, 18, 18}, 2736 {0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 12, 2737 12, 13, 13, 14, 15, 16, 16, 17, 17}, 2738 {0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 12, 13, 2739 13, 14, 14, 15, 15, 16, 17, 18, 18}, 2740 }; 2741 2742 static const u8 rtw8812a_pwrtrk_rfe3_5ga_p[][RTW_PWR_TRK_TBL_SZ] = { 2743 {0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 2744 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2745 {0, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 2746 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2747 {0, 1, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 2748 11, 11, 11, 11, 11, 11, 11, 11, 11}, 2749 }; 2750 2751 static const u8 rtw8812a_pwrtrk_rfe3_2gb_n[] = { 2752 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 2753 7, 7, 8, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15 2754 }; 2755 2756 static const u8 rtw8812a_pwrtrk_rfe3_2gb_p[] = { 2757 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 2758 6, 7, 7, 8, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11 2759 }; 2760 2761 static const u8 rtw8812a_pwrtrk_rfe3_2ga_n[] = { 2762 0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 2763 10, 10, 11, 11, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15 2764 }; 2765 2766 static const u8 rtw8812a_pwrtrk_rfe3_2ga_p[] = { 2767 0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2768 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11 2769 }; 2770 2771 static const u8 rtw8812a_pwrtrk_rfe3_2g_cck_b_n[] = { 2772 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 6, 7, 2773 7, 7, 8, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15 2774 }; 2775 2776 static const u8 rtw8812a_pwrtrk_rfe3_2g_cck_b_p[] = { 2777 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 2778 6, 7, 7, 8, 9, 10, 10, 10, 10, 11, 11, 11, 11, 11 2779 }; 2780 2781 static const u8 rtw8812a_pwrtrk_rfe3_2g_cck_a_n[] = { 2782 0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 6, 7, 7, 8, 8, 9, 2783 10, 10, 11, 11, 12, 12, 13, 13, 13, 13, 14, 14, 15, 15 2784 }; 2785 2786 static const u8 rtw8812a_pwrtrk_rfe3_2g_cck_a_p[] = { 2787 0, 0, 1, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2788 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11 2789 }; 2790 2791 const struct rtw_pwr_track_tbl rtw8812a_rtw_pwr_track_rfe3_tbl = { 2792 .pwrtrk_5gb_n[0] = rtw8812a_pwrtrk_rfe3_5gb_n[0], 2793 .pwrtrk_5gb_n[1] = rtw8812a_pwrtrk_rfe3_5gb_n[1], 2794 .pwrtrk_5gb_n[2] = rtw8812a_pwrtrk_rfe3_5gb_n[2], 2795 .pwrtrk_5gb_p[0] = rtw8812a_pwrtrk_rfe3_5gb_p[0], 2796 .pwrtrk_5gb_p[1] = rtw8812a_pwrtrk_rfe3_5gb_p[1], 2797 .pwrtrk_5gb_p[2] = rtw8812a_pwrtrk_rfe3_5gb_p[2], 2798 .pwrtrk_5ga_n[0] = rtw8812a_pwrtrk_rfe3_5ga_n[0], 2799 .pwrtrk_5ga_n[1] = rtw8812a_pwrtrk_rfe3_5ga_n[1], 2800 .pwrtrk_5ga_n[2] = rtw8812a_pwrtrk_rfe3_5ga_n[2], 2801 .pwrtrk_5ga_p[0] = rtw8812a_pwrtrk_rfe3_5ga_p[0], 2802 .pwrtrk_5ga_p[1] = rtw8812a_pwrtrk_rfe3_5ga_p[1], 2803 .pwrtrk_5ga_p[2] = rtw8812a_pwrtrk_rfe3_5ga_p[2], 2804 .pwrtrk_2gb_n = rtw8812a_pwrtrk_rfe3_2gb_n, 2805 .pwrtrk_2gb_p = rtw8812a_pwrtrk_rfe3_2gb_p, 2806 .pwrtrk_2ga_n = rtw8812a_pwrtrk_rfe3_2ga_n, 2807 .pwrtrk_2ga_p = rtw8812a_pwrtrk_rfe3_2ga_p, 2808 .pwrtrk_2g_cckb_n = rtw8812a_pwrtrk_rfe3_2g_cck_b_n, 2809 .pwrtrk_2g_cckb_p = rtw8812a_pwrtrk_rfe3_2g_cck_b_p, 2810 .pwrtrk_2g_ccka_n = rtw8812a_pwrtrk_rfe3_2g_cck_a_n, 2811 .pwrtrk_2g_ccka_p = rtw8812a_pwrtrk_rfe3_2g_cck_a_p, 2812 }; 2813