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 "rtw8821a_table.h" 8 9 static const u32 rtw8821a_mac[] = { 10 0x421, 0x0000000F, 11 0x428, 0x0000000A, 12 0x429, 0x00000010, 13 0x430, 0x00000000, 14 0x431, 0x00000000, 15 0x432, 0x00000000, 16 0x433, 0x00000001, 17 0x434, 0x00000004, 18 0x435, 0x00000005, 19 0x436, 0x00000007, 20 0x437, 0x00000008, 21 0x43C, 0x00000004, 22 0x43D, 0x00000005, 23 0x43E, 0x00000007, 24 0x43F, 0x00000008, 25 0x440, 0x0000005D, 26 0x441, 0x00000001, 27 0x442, 0x00000000, 28 0x444, 0x00000010, 29 0x445, 0x00000000, 30 0x446, 0x00000000, 31 0x447, 0x00000000, 32 0x448, 0x00000000, 33 0x449, 0x000000F0, 34 0x44A, 0x0000000F, 35 0x44B, 0x0000003E, 36 0x44C, 0x00000010, 37 0x44D, 0x00000000, 38 0x44E, 0x00000000, 39 0x44F, 0x00000000, 40 0x450, 0x00000000, 41 0x451, 0x000000F0, 42 0x452, 0x0000000F, 43 0x453, 0x00000000, 44 0x456, 0x0000005E, 45 0x460, 0x00000066, 46 0x461, 0x00000066, 47 0x4C8, 0x0000003F, 48 0x4C9, 0x000000FF, 49 0x4CC, 0x000000FF, 50 0x4CD, 0x000000FF, 51 0x4CE, 0x00000001, 52 0x500, 0x00000026, 53 0x501, 0x000000A2, 54 0x502, 0x0000002F, 55 0x503, 0x00000000, 56 0x504, 0x00000028, 57 0x505, 0x000000A3, 58 0x506, 0x0000005E, 59 0x507, 0x00000000, 60 0x508, 0x0000002B, 61 0x509, 0x000000A4, 62 0x50A, 0x0000005E, 63 0x50B, 0x00000000, 64 0x50C, 0x0000004F, 65 0x50D, 0x000000A4, 66 0x50E, 0x00000000, 67 0x50F, 0x00000000, 68 0x512, 0x0000001C, 69 0x514, 0x0000000A, 70 0x516, 0x0000000A, 71 0x525, 0x0000004F, 72 0x550, 0x00000010, 73 0x551, 0x00000010, 74 0x559, 0x00000002, 75 0x55C, 0x00000050, 76 0x55D, 0x000000FF, 77 0x605, 0x00000030, 78 0x607, 0x00000007, 79 0x608, 0x0000000E, 80 0x609, 0x0000002A, 81 0x620, 0x000000FF, 82 0x621, 0x000000FF, 83 0x622, 0x000000FF, 84 0x623, 0x000000FF, 85 0x624, 0x000000FF, 86 0x625, 0x000000FF, 87 0x626, 0x000000FF, 88 0x627, 0x000000FF, 89 0x638, 0x00000050, 90 0x63C, 0x0000000A, 91 0x63D, 0x0000000A, 92 0x63E, 0x0000000E, 93 0x63F, 0x0000000E, 94 0x640, 0x00000040, 95 0x642, 0x00000040, 96 0x643, 0x00000000, 97 0x652, 0x000000C8, 98 0x66E, 0x00000005, 99 0x700, 0x00000021, 100 0x701, 0x00000043, 101 0x702, 0x00000065, 102 0x703, 0x00000087, 103 0x708, 0x00000021, 104 0x709, 0x00000043, 105 0x70A, 0x00000065, 106 0x70B, 0x00000087, 107 0x718, 0x00000040, 108 }; 109 110 RTW_DECL_TABLE_PHY_COND(rtw8821a_mac, rtw_phy_cfg_mac); 111 112 static const u32 rtw8821a_agc[] = { 113 0x81C, 0xBF000001, 114 0x81C, 0xBF020001, 115 0x81C, 0xBF040001, 116 0x81C, 0xBF060001, 117 0x81C, 0xBE080001, 118 0x81C, 0xBD0A0001, 119 0x81C, 0xBC0C0001, 120 0x81C, 0xBA0E0001, 121 0x81C, 0xB9100001, 122 0x81C, 0xB8120001, 123 0x81C, 0xB7140001, 124 0x81C, 0xB6160001, 125 0x81C, 0xB5180001, 126 0x81C, 0xB41A0001, 127 0x81C, 0xB31C0001, 128 0x81C, 0xB21E0001, 129 0x81C, 0xB1200001, 130 0x81C, 0xB0220001, 131 0x81C, 0xAF240001, 132 0x81C, 0xAE260001, 133 0x81C, 0xAD280001, 134 0x81C, 0xAC2A0001, 135 0x81C, 0xAB2C0001, 136 0x81C, 0xAA2E0001, 137 0x81C, 0xA9300001, 138 0x81C, 0xA8320001, 139 0x81C, 0xA7340001, 140 0x81C, 0xA6360001, 141 0x81C, 0xA5380001, 142 0x81C, 0xA43A0001, 143 0x81C, 0x683C0001, 144 0x81C, 0x673E0001, 145 0x81C, 0x66400001, 146 0x81C, 0x65420001, 147 0x81C, 0x64440001, 148 0x81C, 0x63460001, 149 0x81C, 0x62480001, 150 0x81C, 0x614A0001, 151 0x81C, 0x474C0001, 152 0x81C, 0x464E0001, 153 0x81C, 0x45500001, 154 0x81C, 0x44520001, 155 0x81C, 0x43540001, 156 0x81C, 0x42560001, 157 0x81C, 0x41580001, 158 0x81C, 0x285A0001, 159 0x81C, 0x275C0001, 160 0x81C, 0x265E0001, 161 0x81C, 0x25600001, 162 0x81C, 0x24620001, 163 0x81C, 0x0A640001, 164 0x81C, 0x09660001, 165 0x81C, 0x08680001, 166 0x81C, 0x076A0001, 167 0x81C, 0x066C0001, 168 0x81C, 0x056E0001, 169 0x81C, 0x04700001, 170 0x81C, 0x03720001, 171 0x81C, 0x02740001, 172 0x81C, 0x01760001, 173 0x81C, 0x01780001, 174 0x81C, 0x017A0001, 175 0x81C, 0x017C0001, 176 0x81C, 0x017E0001, 177 0x8000020c, 0x00000000, 0x40000000, 0x00000000, 178 0x81C, 0xFB000101, 179 0x81C, 0xFA020101, 180 0x81C, 0xF9040101, 181 0x81C, 0xF8060101, 182 0x81C, 0xF7080101, 183 0x81C, 0xF60A0101, 184 0x81C, 0xF50C0101, 185 0x81C, 0xF40E0101, 186 0x81C, 0xF3100101, 187 0x81C, 0xF2120101, 188 0x81C, 0xF1140101, 189 0x81C, 0xF0160101, 190 0x81C, 0xEF180101, 191 0x81C, 0xEE1A0101, 192 0x81C, 0xED1C0101, 193 0x81C, 0xEC1E0101, 194 0x81C, 0xEB200101, 195 0x81C, 0xEA220101, 196 0x81C, 0xE9240101, 197 0x81C, 0xE8260101, 198 0x81C, 0xE7280101, 199 0x81C, 0xE62A0101, 200 0x81C, 0xE52C0101, 201 0x81C, 0xE42E0101, 202 0x81C, 0xE3300101, 203 0x81C, 0xA5320101, 204 0x81C, 0xA4340101, 205 0x81C, 0xA3360101, 206 0x81C, 0x87380101, 207 0x81C, 0x863A0101, 208 0x81C, 0x853C0101, 209 0x81C, 0x843E0101, 210 0x81C, 0x69400101, 211 0x81C, 0x68420101, 212 0x81C, 0x67440101, 213 0x81C, 0x66460101, 214 0x81C, 0x49480101, 215 0x81C, 0x484A0101, 216 0x81C, 0x474C0101, 217 0x81C, 0x2A4E0101, 218 0x81C, 0x29500101, 219 0x81C, 0x28520101, 220 0x81C, 0x27540101, 221 0x81C, 0x26560101, 222 0x81C, 0x25580101, 223 0x81C, 0x245A0101, 224 0x81C, 0x235C0101, 225 0x81C, 0x055E0101, 226 0x81C, 0x04600101, 227 0x81C, 0x03620101, 228 0x81C, 0x02640101, 229 0x81C, 0x01660101, 230 0x81C, 0x01680101, 231 0x81C, 0x016A0101, 232 0x81C, 0x016C0101, 233 0x81C, 0x016E0101, 234 0x81C, 0x01700101, 235 0x81C, 0x01720101, 236 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 237 0x81C, 0xFB000101, 238 0x81C, 0xFA020101, 239 0x81C, 0xF9040101, 240 0x81C, 0xF8060101, 241 0x81C, 0xF7080101, 242 0x81C, 0xF60A0101, 243 0x81C, 0xF50C0101, 244 0x81C, 0xF40E0101, 245 0x81C, 0xF3100101, 246 0x81C, 0xF2120101, 247 0x81C, 0xF1140101, 248 0x81C, 0xF0160101, 249 0x81C, 0xEF180101, 250 0x81C, 0xEE1A0101, 251 0x81C, 0xED1C0101, 252 0x81C, 0xEC1E0101, 253 0x81C, 0xEB200101, 254 0x81C, 0xEA220101, 255 0x81C, 0xE9240101, 256 0x81C, 0xE8260101, 257 0x81C, 0xE7280101, 258 0x81C, 0xE62A0101, 259 0x81C, 0xE52C0101, 260 0x81C, 0xE42E0101, 261 0x81C, 0xE3300101, 262 0x81C, 0xA5320101, 263 0x81C, 0xA4340101, 264 0x81C, 0xA3360101, 265 0x81C, 0x87380101, 266 0x81C, 0x863A0101, 267 0x81C, 0x853C0101, 268 0x81C, 0x843E0101, 269 0x81C, 0x69400101, 270 0x81C, 0x68420101, 271 0x81C, 0x67440101, 272 0x81C, 0x66460101, 273 0x81C, 0x49480101, 274 0x81C, 0x484A0101, 275 0x81C, 0x474C0101, 276 0x81C, 0x2A4E0101, 277 0x81C, 0x29500101, 278 0x81C, 0x28520101, 279 0x81C, 0x27540101, 280 0x81C, 0x26560101, 281 0x81C, 0x25580101, 282 0x81C, 0x245A0101, 283 0x81C, 0x235C0101, 284 0x81C, 0x055E0101, 285 0x81C, 0x04600101, 286 0x81C, 0x03620101, 287 0x81C, 0x02640101, 288 0x81C, 0x01660101, 289 0x81C, 0x01680101, 290 0x81C, 0x016A0101, 291 0x81C, 0x016C0101, 292 0x81C, 0x016E0101, 293 0x81C, 0x01700101, 294 0x81C, 0x01720101, 295 0xA0000000, 0x00000000, 296 0x81C, 0xFF000101, 297 0x81C, 0xFF020101, 298 0x81C, 0xFE040101, 299 0x81C, 0xFD060101, 300 0x81C, 0xFC080101, 301 0x81C, 0xFD0A0101, 302 0x81C, 0xFC0C0101, 303 0x81C, 0xFB0E0101, 304 0x81C, 0xFA100101, 305 0x81C, 0xF9120101, 306 0x81C, 0xF8140101, 307 0x81C, 0xF7160101, 308 0x81C, 0xF6180101, 309 0x81C, 0xF51A0101, 310 0x81C, 0xF41C0101, 311 0x81C, 0xF31E0101, 312 0x81C, 0xF2200101, 313 0x81C, 0xF1220101, 314 0x81C, 0xF0240101, 315 0x81C, 0xEF260101, 316 0x81C, 0xEE280101, 317 0x81C, 0xED2A0101, 318 0x81C, 0xEC2C0101, 319 0x81C, 0xEB2E0101, 320 0x81C, 0xEA300101, 321 0x81C, 0xE9320101, 322 0x81C, 0xE8340101, 323 0x81C, 0xE7360101, 324 0x81C, 0xE6380101, 325 0x81C, 0xE53A0101, 326 0x81C, 0xE43C0101, 327 0x81C, 0xE33E0101, 328 0x81C, 0xA5400101, 329 0x81C, 0xA4420101, 330 0x81C, 0xA3440101, 331 0x81C, 0x87460101, 332 0x81C, 0x86480101, 333 0x81C, 0x854A0101, 334 0x81C, 0x844C0101, 335 0x81C, 0x694E0101, 336 0x81C, 0x68500101, 337 0x81C, 0x67520101, 338 0x81C, 0x66540101, 339 0x81C, 0x49560101, 340 0x81C, 0x48580101, 341 0x81C, 0x475A0101, 342 0x81C, 0x2A5C0101, 343 0x81C, 0x295E0101, 344 0x81C, 0x28600101, 345 0x81C, 0x27620101, 346 0x81C, 0x26640101, 347 0x81C, 0x25660101, 348 0x81C, 0x24680101, 349 0x81C, 0x236A0101, 350 0x81C, 0x056C0101, 351 0x81C, 0x046E0101, 352 0x81C, 0x03700101, 353 0x81C, 0x02720101, 354 0xB0000000, 0x00000000, 355 0x81C, 0x01740101, 356 0x81C, 0x01760101, 357 0x81C, 0x01780101, 358 0x81C, 0x017A0101, 359 0x81C, 0x017C0101, 360 0x81C, 0x017E0101, 361 0xC50, 0x00000022, 362 0xC50, 0x00000020, 363 }; 364 365 RTW_DECL_TABLE_PHY_COND(rtw8821a_agc, rtw_phy_cfg_agc); 366 367 static const u32 rtw8821a_bb[] = { 368 0x800, 0x0020D090, 369 0x804, 0x080112E0, 370 0x808, 0x0E028211, 371 0x80C, 0x92131111, 372 0x810, 0x20101261, 373 0x814, 0x020C3D10, 374 0x818, 0x03A00385, 375 0x820, 0x00000000, 376 0x824, 0x00030FE0, 377 0x828, 0x00000000, 378 0x82C, 0x002081DD, 379 0x830, 0x2AAAEEC8, 380 0x834, 0x0037A706, 381 0x838, 0x06489B44, 382 0x83C, 0x0000095B, 383 0x840, 0xC0000001, 384 0x844, 0x40003CDE, 385 0x848, 0x62103F8B, 386 0x84C, 0x6CFDFFB8, 387 0x850, 0x28874706, 388 0x854, 0x0001520C, 389 0x858, 0x8060E000, 390 0x85C, 0x74210168, 391 0x860, 0x6929C321, 392 0x864, 0x79727432, 393 0x868, 0x8CA7A314, 394 0x86C, 0x888C2878, 395 0x870, 0x08888888, 396 0x874, 0x31612C2E, 397 0x878, 0x00000152, 398 0x87C, 0x000FD000, 399 0x8A0, 0x00000013, 400 0x8A4, 0x7F7F7F7F, 401 0x8A8, 0xA2000338, 402 0x8AC, 0x0FF0FA0A, 403 0x8B4, 0x000FC080, 404 0x8B8, 0x6C10D7FF, 405 0x8BC, 0x0CA52090, 406 0x8C0, 0x1BF00020, 407 0x8C4, 0x00000000, 408 0x8C8, 0x00013169, 409 0x8CC, 0x08248492, 410 0x8D4, 0x940008A0, 411 0x8D8, 0x290B5612, 412 0x8F8, 0x400002C0, 413 0x8FC, 0x00000000, 414 0x900, 0x00000700, 415 0x90C, 0x00000000, 416 0x910, 0x0000FC00, 417 0x914, 0x00000404, 418 0x918, 0x1C1028C0, 419 0x91C, 0x64B11A1C, 420 0x920, 0xE0767233, 421 0x924, 0x055AA500, 422 0x928, 0x00000004, 423 0x92C, 0xFFFE0000, 424 0x930, 0xFFFFFFFE, 425 0x934, 0x001FFFFF, 426 0x960, 0x00000000, 427 0x964, 0x00000000, 428 0x968, 0x00000000, 429 0x96C, 0x00000000, 430 0x970, 0x801FFFFF, 431 0x974, 0x000003FF, 432 0x978, 0x00000000, 433 0x97C, 0x00000000, 434 0x980, 0x00000000, 435 0x984, 0x00000000, 436 0x988, 0x00000000, 437 0x990, 0x27100000, 438 0x994, 0xFFFF0100, 439 0x998, 0xFFFFFF5C, 440 0x99C, 0xFFFFFFFF, 441 0x9A0, 0x000000FF, 442 0x9A4, 0x00480080, 443 0x9A8, 0x00000000, 444 0x9AC, 0x00000000, 445 0x9B0, 0x81081008, 446 0x9B4, 0x01081008, 447 0x9B8, 0x01081008, 448 0x9BC, 0x01081008, 449 0x9D0, 0x00000000, 450 0x9D4, 0x00000000, 451 0x9D8, 0x00000000, 452 0x9DC, 0x00000000, 453 0x9E0, 0x00005D00, 454 0x9E4, 0x00000003, 455 0x9E8, 0x00000001, 456 0xA00, 0x00D047C8, 457 0xA04, 0x01FF800C, 458 0xA08, 0x8C8A8300, 459 0xA0C, 0x2E68000F, 460 0xA10, 0x9500BB78, 461 0xA14, 0x11144028, 462 0xA18, 0x00881117, 463 0xA1C, 0x89140F00, 464 0xA20, 0x1A1B0000, 465 0xA24, 0x090E1317, 466 0xA28, 0x00000204, 467 0xA2C, 0x00900000, 468 0xA70, 0x101FFF00, 469 0xA74, 0x00000008, 470 0xA78, 0x00000900, 471 0xA7C, 0x225B0606, 472 0xA80, 0x21805490, 473 0xA84, 0x001F0000, 474 0XB00, 0x03100040, 475 0XB04, 0x0000B000, 476 0XB08, 0xAE0201EB, 477 0XB0C, 0x01003207, 478 0XB10, 0x00009807, 479 0XB14, 0x01000000, 480 0XB18, 0x00000002, 481 0XB1C, 0x00000002, 482 0XB20, 0x0000001F, 483 0XB24, 0x03020100, 484 0XB28, 0x07060504, 485 0XB2C, 0x0B0A0908, 486 0XB30, 0x0F0E0D0C, 487 0XB34, 0x13121110, 488 0XB38, 0x17161514, 489 0XB3C, 0x0000003A, 490 0XB40, 0x00000000, 491 0XB44, 0x00000000, 492 0XB48, 0x13000032, 493 0XB4C, 0x48080000, 494 0XB50, 0x00000000, 495 0XB54, 0x00000000, 496 0XB58, 0x00000000, 497 0XB5C, 0x00000000, 498 0xC00, 0x00000007, 499 0xC04, 0x00042020, 500 0xC08, 0x80410231, 501 0xC0C, 0x00000000, 502 0xC10, 0x00000100, 503 0xC14, 0x01000000, 504 0xC1C, 0x40000003, 505 0xC20, 0x2C2C2C2C, 506 0xC24, 0x30303030, 507 0xC28, 0x30303030, 508 0xC2C, 0x2C2C2C2C, 509 0xC30, 0x2C2C2C2C, 510 0xC34, 0x2C2C2C2C, 511 0xC38, 0x2C2C2C2C, 512 0xC3C, 0x2A2A2A2A, 513 0xC40, 0x2A2A2A2A, 514 0xC44, 0x2A2A2A2A, 515 0xC48, 0x2A2A2A2A, 516 0xC4C, 0x2A2A2A2A, 517 0xC50, 0x00000020, 518 0xC54, 0x001C1208, 519 0xC58, 0x30000C1C, 520 0xC5C, 0x00000058, 521 0xC60, 0x34344443, 522 0xC64, 0x07003333, 523 0xC68, 0x19791979, 524 0xC6C, 0x19791979, 525 0xC70, 0x19791979, 526 0xC74, 0x19791979, 527 0xC78, 0x19791979, 528 0xC7C, 0x19791979, 529 0xC80, 0x19791979, 530 0xC84, 0x19791979, 531 0xC94, 0x0100005C, 532 0xC98, 0x00000000, 533 0xC9C, 0x00000000, 534 0xCA0, 0x00000029, 535 0xCA4, 0x08040201, 536 0xCA8, 0x80402010, 537 0xCB0, 0x77775747, 538 0xCB4, 0x10000077, 539 0xCB8, 0x00508240, 540 }; 541 542 RTW_DECL_TABLE_PHY_COND(rtw8821a_bb, rtw_phy_cfg_bb); 543 544 static const struct rtw_phy_pg_cfg_pair rtw8821a_bb_pg[] = { 545 { 0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638, }, 546 { 0, 0, 0, 0x00000c24, 0xffffffff, 0x36363838, }, 547 { 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234, }, 548 { 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363838, }, 549 { 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, }, 550 { 0, 0, 0, 0x00000c3c, 0xffffffff, 0x32343636, }, 551 { 0, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, }, 552 { 0, 0, 0, 0x00000c44, 0x0000ffff, 0x00002022, }, 553 { 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343636, }, 554 { 1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032, }, 555 { 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343636, }, 556 { 1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830, }, 557 { 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343636, }, 558 { 1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, }, 559 { 1, 0, 0, 0x00000c44, 0x0000ffff, 0x00002022, }, 560 }; 561 562 RTW_DECL_TABLE_BB_PG(rtw8821a_bb_pg); 563 564 static const u32 rtw8821a_rf_a[] = { 565 0x018, 0x0001712A, 566 0x056, 0x00051CF2, 567 0x066, 0x00040000, 568 0x000, 0x00010000, 569 0x01E, 0x00080000, 570 0x082, 0x00000830, 571 0x083, 0x00021800, 572 0x084, 0x00028000, 573 0x085, 0x00048000, 574 0x80000111, 0x00000000, 0x40000000, 0x00000000, 575 0x086, 0x0009483A, 576 0xA0000000, 0x00000000, 577 0x086, 0x00094838, 578 0xB0000000, 0x00000000, 579 0x087, 0x00044980, 580 0x088, 0x00048000, 581 0x089, 0x0000D480, 582 0x08A, 0x00042240, 583 0x08B, 0x000F0380, 584 0x08C, 0x00090000, 585 0x08D, 0x00022852, 586 0x08E, 0x00065540, 587 0x08F, 0x00088001, 588 0x0EF, 0x00020000, 589 0x03E, 0x00000380, 590 0x03F, 0x00090018, 591 0x03E, 0x00020380, 592 0x03F, 0x000A0018, 593 0x03E, 0x00040308, 594 0x03F, 0x000A0018, 595 0x03E, 0x00060018, 596 0x03F, 0x000A0018, 597 0x0EF, 0x00000000, 598 0x018, 0x0001712A, 599 0x089, 0x00000080, 600 0x08B, 0x00080180, 601 0x0EF, 0x00001000, 602 0x03A, 0x00000244, 603 0x03B, 0x00038027, 604 0x03C, 0x00082000, 605 0x03A, 0x00000244, 606 0x03B, 0x00030113, 607 0x03C, 0x00082000, 608 0x03A, 0x0000014C, 609 0x03B, 0x00028027, 610 0x03C, 0x00082000, 611 0x03A, 0x000000CC, 612 0x03B, 0x00027027, 613 0x03C, 0x00042000, 614 0x03A, 0x0000014C, 615 0x03B, 0x0001F913, 616 0x03C, 0x00042000, 617 0x03A, 0x0000010C, 618 0x03B, 0x00017F10, 619 0x03C, 0x00012000, 620 0x03A, 0x000000D0, 621 0x03B, 0x00008027, 622 0x03C, 0x000CA000, 623 0x03A, 0x00000244, 624 0x03B, 0x00078027, 625 0x03C, 0x00082000, 626 0x03A, 0x00000244, 627 0x03B, 0x00070113, 628 0x03C, 0x00082000, 629 0x03A, 0x0000014C, 630 0x03B, 0x00068027, 631 0x03C, 0x00082000, 632 0x03A, 0x000000CC, 633 0x03B, 0x00067027, 634 0x03C, 0x00042000, 635 0x03A, 0x0000014C, 636 0x03B, 0x0005F913, 637 0x03C, 0x00042000, 638 0x03A, 0x0000010C, 639 0x03B, 0x00057F10, 640 0x03C, 0x00012000, 641 0x03A, 0x000000D0, 642 0x03B, 0x00048027, 643 0x03C, 0x000CA000, 644 0x03A, 0x00000244, 645 0x03B, 0x000B8027, 646 0x03C, 0x00082000, 647 0x03A, 0x00000244, 648 0x03B, 0x000B0113, 649 0x03C, 0x00082000, 650 0x03A, 0x0000014C, 651 0x03B, 0x000A8027, 652 0x03C, 0x00082000, 653 0x03A, 0x000000CC, 654 0x03B, 0x000A7027, 655 0x03C, 0x00042000, 656 0x03A, 0x0000014C, 657 0x03B, 0x0009F913, 658 0x03C, 0x00042000, 659 0x03A, 0x0000010C, 660 0x03B, 0x00097F10, 661 0x03C, 0x00012000, 662 0x03A, 0x000000D0, 663 0x03B, 0x00088027, 664 0x03C, 0x000CA000, 665 0x0EF, 0x00000000, 666 0x0EF, 0x00001100, 667 0x80000111, 0x00000000, 0x40000000, 0x00000000, 668 0x034, 0x0004ADF3, 669 0x034, 0x00049DF0, 670 0x90000110, 0x00000000, 0x40000000, 0x00000000, 671 0x034, 0x0004ADF3, 672 0x034, 0x00049DF0, 673 0x90000210, 0x00000000, 0x40000000, 0x00000000, 674 0x034, 0x0004ADF5, 675 0x034, 0x00049DF2, 676 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 677 0x034, 0x0004A0F3, 678 0x034, 0x000490B1, 679 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 680 0x034, 0x0004A0F3, 681 0x034, 0x000490B1, 682 0x90000200, 0x00000000, 0x40000000, 0x00000000, 683 0x034, 0x0004ADF5, 684 0x034, 0x00049DF2, 685 0x90000410, 0x00000000, 0x40000000, 0x00000000, 686 0x034, 0x0004ADF3, 687 0x034, 0x00049DF0, 688 0xA0000000, 0x00000000, 689 0x034, 0x0004ADF7, 690 0x034, 0x00049DF3, 691 0xB0000000, 0x00000000, 692 0x80000111, 0x00000000, 0x40000000, 0x00000000, 693 0x034, 0x00048DED, 694 0x034, 0x00047DEA, 695 0x034, 0x00046DE7, 696 0x034, 0x00045CE9, 697 0x034, 0x00044CE6, 698 0x034, 0x000438C6, 699 0x034, 0x00042886, 700 0x034, 0x00041486, 701 0x034, 0x00040447, 702 0x90000110, 0x00000000, 0x40000000, 0x00000000, 703 0x034, 0x00048DED, 704 0x034, 0x00047DEA, 705 0x034, 0x00046DE7, 706 0x034, 0x00045CE9, 707 0x034, 0x00044CE6, 708 0x034, 0x000438C6, 709 0x034, 0x00042886, 710 0x034, 0x00041486, 711 0x034, 0x00040447, 712 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 713 0x034, 0x000480AE, 714 0x034, 0x000470AB, 715 0x034, 0x0004608B, 716 0x034, 0x00045069, 717 0x034, 0x00044048, 718 0x034, 0x00043045, 719 0x034, 0x00042026, 720 0x034, 0x00041023, 721 0x034, 0x00040002, 722 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 723 0x034, 0x000480AE, 724 0x034, 0x000470AB, 725 0x034, 0x0004608B, 726 0x034, 0x00045069, 727 0x034, 0x00044048, 728 0x034, 0x00043045, 729 0x034, 0x00042026, 730 0x034, 0x00041023, 731 0x034, 0x00040002, 732 0x90000410, 0x00000000, 0x40000000, 0x00000000, 733 0x034, 0x00048DED, 734 0x034, 0x00047DEA, 735 0x034, 0x00046DE7, 736 0x034, 0x00045CE9, 737 0x034, 0x00044CE6, 738 0x034, 0x000438C6, 739 0x034, 0x00042886, 740 0x034, 0x00041486, 741 0x034, 0x00040447, 742 0xA0000000, 0x00000000, 743 0x034, 0x00048DEF, 744 0x034, 0x00047DEC, 745 0x034, 0x00046DE9, 746 0x034, 0x00045CCB, 747 0x034, 0x0004488D, 748 0x034, 0x0004348D, 749 0x034, 0x0004248A, 750 0x034, 0x0004108D, 751 0x034, 0x0004008A, 752 0xB0000000, 0x00000000, 753 0x80000210, 0x00000000, 0x40000000, 0x00000000, 754 0x034, 0x0002ADF4, 755 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 756 0x034, 0x0002A0F3, 757 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 758 0x034, 0x0002A0F3, 759 0x90000200, 0x00000000, 0x40000000, 0x00000000, 760 0x034, 0x0002ADF4, 761 0xA0000000, 0x00000000, 762 0x034, 0x0002ADF7, 763 0xB0000000, 0x00000000, 764 0x80000111, 0x00000000, 0x40000000, 0x00000000, 765 0x034, 0x00029DF4, 766 0x90000110, 0x00000000, 0x40000000, 0x00000000, 767 0x034, 0x00029DF4, 768 0x90000210, 0x00000000, 0x40000000, 0x00000000, 769 0x034, 0x00029DF1, 770 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 771 0x034, 0x000290F0, 772 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 773 0x034, 0x000290F0, 774 0x90000200, 0x00000000, 0x40000000, 0x00000000, 775 0x034, 0x00029DF1, 776 0x90000410, 0x00000000, 0x40000000, 0x00000000, 777 0x034, 0x00029DF4, 778 0xA0000000, 0x00000000, 779 0x034, 0x00029DF2, 780 0xB0000000, 0x00000000, 781 0x80000111, 0x00000000, 0x40000000, 0x00000000, 782 0x034, 0x00028DF1, 783 0x034, 0x00027DEE, 784 0x034, 0x00026DEB, 785 0x034, 0x00025CEC, 786 0x034, 0x00024CE9, 787 0x034, 0x000238CA, 788 0x034, 0x00022889, 789 0x034, 0x00021489, 790 0x034, 0x0002044A, 791 0x90000110, 0x00000000, 0x40000000, 0x00000000, 792 0x034, 0x00028DF1, 793 0x034, 0x00027DEE, 794 0x034, 0x00026DEB, 795 0x034, 0x00025CEC, 796 0x034, 0x00024CE9, 797 0x034, 0x000238CA, 798 0x034, 0x00022889, 799 0x034, 0x00021489, 800 0x034, 0x0002044A, 801 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 802 0x034, 0x000280AF, 803 0x034, 0x000270AC, 804 0x034, 0x0002608B, 805 0x034, 0x00025069, 806 0x034, 0x00024048, 807 0x034, 0x00023045, 808 0x034, 0x00022026, 809 0x034, 0x00021023, 810 0x034, 0x00020002, 811 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 812 0x034, 0x000280AF, 813 0x034, 0x000270AC, 814 0x034, 0x0002608B, 815 0x034, 0x00025069, 816 0x034, 0x00024048, 817 0x034, 0x00023045, 818 0x034, 0x00022026, 819 0x034, 0x00021023, 820 0x034, 0x00020002, 821 0x90000410, 0x00000000, 0x40000000, 0x00000000, 822 0x034, 0x00028DF1, 823 0x034, 0x00027DEE, 824 0x034, 0x00026DEB, 825 0x034, 0x00025CEC, 826 0x034, 0x00024CE9, 827 0x034, 0x000238CA, 828 0x034, 0x00022889, 829 0x034, 0x00021489, 830 0x034, 0x0002044A, 831 0xA0000000, 0x00000000, 832 0x034, 0x00028DEE, 833 0x034, 0x00027DEB, 834 0x034, 0x00026CCD, 835 0x034, 0x00025CCA, 836 0x034, 0x0002488C, 837 0x034, 0x0002384C, 838 0x034, 0x00022849, 839 0x034, 0x00021449, 840 0x034, 0x0002004D, 841 0xB0000000, 0x00000000, 842 0x8000020c, 0x00000000, 0x40000000, 0x00000000, 843 0x034, 0x0000A0D7, 844 0x034, 0x000090D3, 845 0x034, 0x000080B1, 846 0x034, 0x000070AE, 847 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 848 0x034, 0x0000A0D7, 849 0x034, 0x000090D3, 850 0x034, 0x000080B1, 851 0x034, 0x000070AE, 852 0xA0000000, 0x00000000, 853 0x034, 0x0000ADF7, 854 0x034, 0x00009DF4, 855 0x034, 0x00008DF1, 856 0x034, 0x00007DEE, 857 0xB0000000, 0x00000000, 858 0x80000111, 0x00000000, 0x40000000, 0x00000000, 859 0x034, 0x00006DEB, 860 0x034, 0x00005CEC, 861 0x034, 0x00004CE9, 862 0x034, 0x000038CA, 863 0x034, 0x00002889, 864 0x034, 0x00001489, 865 0x034, 0x0000044A, 866 0x90000110, 0x00000000, 0x40000000, 0x00000000, 867 0x034, 0x00006DEB, 868 0x034, 0x00005CEC, 869 0x034, 0x00004CE9, 870 0x034, 0x000038CA, 871 0x034, 0x00002889, 872 0x034, 0x00001489, 873 0x034, 0x0000044A, 874 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 875 0x034, 0x0000608D, 876 0x034, 0x0000506B, 877 0x034, 0x0000404A, 878 0x034, 0x00003047, 879 0x034, 0x00002044, 880 0x034, 0x00001025, 881 0x034, 0x00000004, 882 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 883 0x034, 0x0000608D, 884 0x034, 0x0000506B, 885 0x034, 0x0000404A, 886 0x034, 0x00003047, 887 0x034, 0x00002044, 888 0x034, 0x00001025, 889 0x034, 0x00000004, 890 0x90000410, 0x00000000, 0x40000000, 0x00000000, 891 0x034, 0x00006DEB, 892 0x034, 0x00005CEC, 893 0x034, 0x00004CE9, 894 0x034, 0x000038CA, 895 0x034, 0x00002889, 896 0x034, 0x00001489, 897 0x034, 0x0000044A, 898 0xA0000000, 0x00000000, 899 0x034, 0x00006DCD, 900 0x034, 0x00005CCD, 901 0x034, 0x00004CCA, 902 0x034, 0x0000388C, 903 0x034, 0x00002888, 904 0x034, 0x00001488, 905 0x034, 0x00000486, 906 0xB0000000, 0x00000000, 907 0x0EF, 0x00000000, 908 0x018, 0x0001712A, 909 0x0EF, 0x00000040, 910 0x80000111, 0x00000000, 0x40000000, 0x00000000, 911 0x035, 0x00000187, 912 0x035, 0x00008187, 913 0x035, 0x00010187, 914 0x035, 0x00020188, 915 0x035, 0x00028188, 916 0x035, 0x00030188, 917 0x035, 0x00040188, 918 0x035, 0x00048188, 919 0x035, 0x00050188, 920 0x90000110, 0x00000000, 0x40000000, 0x00000000, 921 0x035, 0x00000187, 922 0x035, 0x00008187, 923 0x035, 0x00010187, 924 0x035, 0x00020188, 925 0x035, 0x00028188, 926 0x035, 0x00030188, 927 0x035, 0x00040188, 928 0x035, 0x00048188, 929 0x035, 0x00050188, 930 0x90000210, 0x00000000, 0x40000000, 0x00000000, 931 0x035, 0x00000128, 932 0x035, 0x00008128, 933 0x035, 0x00010128, 934 0x035, 0x000201C8, 935 0x035, 0x000281C8, 936 0x035, 0x000301C8, 937 0x035, 0x000401C8, 938 0x035, 0x000481C8, 939 0x035, 0x000501C8, 940 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 941 0x035, 0x00000145, 942 0x035, 0x00008145, 943 0x035, 0x00010145, 944 0x035, 0x00020196, 945 0x035, 0x00028196, 946 0x035, 0x00030196, 947 0x035, 0x000401C7, 948 0x035, 0x000481C7, 949 0x035, 0x000501C7, 950 0x90000200, 0x00000000, 0x40000000, 0x00000000, 951 0x035, 0x00000128, 952 0x035, 0x00008128, 953 0x035, 0x00010128, 954 0x035, 0x000201C8, 955 0x035, 0x000281C8, 956 0x035, 0x000301C8, 957 0x035, 0x000401C8, 958 0x035, 0x000481C8, 959 0x035, 0x000501C8, 960 0x90000410, 0x00000000, 0x40000000, 0x00000000, 961 0x035, 0x00000187, 962 0x035, 0x00008187, 963 0x035, 0x00010187, 964 0x035, 0x00020188, 965 0x035, 0x00028188, 966 0x035, 0x00030188, 967 0x035, 0x00040188, 968 0x035, 0x00048188, 969 0x035, 0x00050188, 970 0xA0000000, 0x00000000, 971 0x035, 0x00000145, 972 0x035, 0x00008145, 973 0x035, 0x00010145, 974 0x035, 0x00020196, 975 0x035, 0x00028196, 976 0x035, 0x00030196, 977 0x035, 0x000401C7, 978 0x035, 0x000481C7, 979 0x035, 0x000501C7, 980 0xB0000000, 0x00000000, 981 0x0EF, 0x00000000, 982 0x018, 0x0001712A, 983 0x0EF, 0x00000010, 984 0x80000111, 0x00000000, 0x40000000, 0x00000000, 985 0x036, 0x00085733, 986 0x036, 0x0008D733, 987 0x036, 0x00095733, 988 0x036, 0x0009D733, 989 0x036, 0x000A64B4, 990 0x036, 0x000AE4B4, 991 0x036, 0x000B64B4, 992 0x036, 0x000BE4B4, 993 0x036, 0x000C64B4, 994 0x036, 0x000CE4B4, 995 0x036, 0x000D64B4, 996 0x036, 0x000DE4B4, 997 0x90000110, 0x00000000, 0x40000000, 0x00000000, 998 0x036, 0x00085733, 999 0x036, 0x0008D733, 1000 0x036, 0x00095733, 1001 0x036, 0x0009D733, 1002 0x036, 0x000A64B4, 1003 0x036, 0x000AE4B4, 1004 0x036, 0x000B64B4, 1005 0x036, 0x000BE4B4, 1006 0x036, 0x000C64B4, 1007 0x036, 0x000CE4B4, 1008 0x036, 0x000D64B4, 1009 0x036, 0x000DE4B4, 1010 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1011 0x036, 0x000063B5, 1012 0x036, 0x0000E3B5, 1013 0x036, 0x000163B5, 1014 0x036, 0x0001E3B5, 1015 0x036, 0x000263B5, 1016 0x036, 0x0002E3B5, 1017 0x036, 0x000363B5, 1018 0x036, 0x0003E3B5, 1019 0x036, 0x000463B5, 1020 0x036, 0x0004E3B5, 1021 0x036, 0x000563B5, 1022 0x036, 0x0005E3B5, 1023 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1024 0x036, 0x000056B3, 1025 0x036, 0x0000D6B3, 1026 0x036, 0x000156B3, 1027 0x036, 0x0001D6B3, 1028 0x036, 0x00026634, 1029 0x036, 0x0002E634, 1030 0x036, 0x00036634, 1031 0x036, 0x0003E634, 1032 0x036, 0x000467B4, 1033 0x036, 0x0004E7B4, 1034 0x036, 0x000567B4, 1035 0x036, 0x0005E7B4, 1036 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1037 0x036, 0x000063B5, 1038 0x036, 0x0000E3B5, 1039 0x036, 0x000163B5, 1040 0x036, 0x0001E3B5, 1041 0x036, 0x000263B5, 1042 0x036, 0x0002E3B5, 1043 0x036, 0x000363B5, 1044 0x036, 0x0003E3B5, 1045 0x036, 0x000463B5, 1046 0x036, 0x0004E3B5, 1047 0x036, 0x000563B5, 1048 0x036, 0x0005E3B5, 1049 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1050 0x036, 0x00085733, 1051 0x036, 0x0008D733, 1052 0x036, 0x00095733, 1053 0x036, 0x0009D733, 1054 0x036, 0x000A64B4, 1055 0x036, 0x000AE4B4, 1056 0x036, 0x000B64B4, 1057 0x036, 0x000BE4B4, 1058 0x036, 0x000C64B4, 1059 0x036, 0x000CE4B4, 1060 0x036, 0x000D64B4, 1061 0x036, 0x000DE4B4, 1062 0xA0000000, 0x00000000, 1063 0x036, 0x000056B3, 1064 0x036, 0x0000D6B3, 1065 0x036, 0x000156B3, 1066 0x036, 0x0001D6B3, 1067 0x036, 0x00026634, 1068 0x036, 0x0002E634, 1069 0x036, 0x00036634, 1070 0x036, 0x0003E634, 1071 0x036, 0x000467B4, 1072 0x036, 0x0004E7B4, 1073 0x036, 0x000567B4, 1074 0x036, 0x0005E7B4, 1075 0xB0000000, 0x00000000, 1076 0x0EF, 0x00000000, 1077 0x0EF, 0x00000008, 1078 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1079 0x03C, 0x000001C8, 1080 0x03C, 0x00000492, 1081 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1082 0x03C, 0x000001C8, 1083 0x03C, 0x00000492, 1084 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1085 0x03C, 0x000001B6, 1086 0x03C, 0x00000492, 1087 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1088 0x03C, 0x0000022A, 1089 0x03C, 0x00000594, 1090 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1091 0x03C, 0x000001B6, 1092 0x03C, 0x00000492, 1093 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1094 0x03C, 0x000001C8, 1095 0x03C, 0x00000492, 1096 0xA0000000, 0x00000000, 1097 0x03C, 0x0000022A, 1098 0x03C, 0x00000594, 1099 0xB0000000, 0x00000000, 1100 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1101 0x03C, 0x00000800, 1102 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1103 0x03C, 0x00000800, 1104 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1105 0x03C, 0x00000800, 1106 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 1107 0x03C, 0x00000820, 1108 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1109 0x03C, 0x00000820, 1110 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1111 0x03C, 0x00000800, 1112 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1113 0x03C, 0x00000800, 1114 0xA0000000, 0x00000000, 1115 0x03C, 0x00000900, 1116 0xB0000000, 0x00000000, 1117 0x0EF, 0x00000000, 1118 0x018, 0x0001712A, 1119 0x0EF, 0x00000002, 1120 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1121 0x008, 0x0004E400, 1122 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1123 0x008, 0x0004E400, 1124 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1125 0x008, 0x00002000, 1126 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 1127 0x008, 0x00002000, 1128 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1129 0x008, 0x00002000, 1130 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1131 0x008, 0x00002000, 1132 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1133 0x008, 0x0004E400, 1134 0xA0000000, 0x00000000, 1135 0x008, 0x00002000, 1136 0xB0000000, 0x00000000, 1137 0x0EF, 0x00000000, 1138 0x0DF, 0x000000C0, 1139 0x01F, 0x00000064, 1140 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1141 0x058, 0x000A7284, 1142 0x059, 0x000600EC, 1143 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1144 0x058, 0x000A7284, 1145 0x059, 0x000600EC, 1146 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 1147 0x058, 0x00081184, 1148 0x059, 0x0006016C, 1149 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1150 0x058, 0x00081184, 1151 0x059, 0x0006016C, 1152 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1153 0x058, 0x00081184, 1154 0x059, 0x0006016C, 1155 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1156 0x058, 0x000A7284, 1157 0x059, 0x000600EC, 1158 0xA0000000, 0x00000000, 1159 0x058, 0x00081184, 1160 0x059, 0x0006016C, 1161 0xB0000000, 0x00000000, 1162 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1163 0x061, 0x000E8D73, 1164 0x062, 0x00093FC5, 1165 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1166 0x061, 0x000E8D73, 1167 0x062, 0x00093FC5, 1168 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1169 0x061, 0x000EFD83, 1170 0x062, 0x00093FCC, 1171 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1172 0x061, 0x000EAD53, 1173 0x062, 0x00093BC4, 1174 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1175 0x061, 0x000EFD83, 1176 0x062, 0x00093FCC, 1177 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1178 0x061, 0x000E8D73, 1179 0x062, 0x00093FC5, 1180 0xA0000000, 0x00000000, 1181 0x061, 0x000EAD53, 1182 0x062, 0x00093BC4, 1183 0xB0000000, 0x00000000, 1184 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1185 0x063, 0x000110E9, 1186 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1187 0x063, 0x000110E9, 1188 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1189 0x063, 0x000110EB, 1190 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 1191 0x063, 0x000110E9, 1192 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1193 0x063, 0x000110E9, 1194 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1195 0x063, 0x000110EB, 1196 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1197 0x063, 0x000110E9, 1198 0xA0000000, 0x00000000, 1199 0x063, 0x000714E9, 1200 0xB0000000, 0x00000000, 1201 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1202 0x064, 0x0001C27C, 1203 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1204 0x064, 0x0001C27C, 1205 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1206 0x064, 0x0001C27C, 1207 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1208 0x064, 0x0001C67C, 1209 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1210 0x064, 0x0001C27C, 1211 0x90000410, 0x00000000, 0x40000000, 0x00000000, 1212 0x064, 0x0001C27C, 1213 0xA0000000, 0x00000000, 1214 0x064, 0x0001C67C, 1215 0xB0000000, 0x00000000, 1216 0x80000111, 0x00000000, 0x40000000, 0x00000000, 1217 0x065, 0x00091016, 1218 0x90000110, 0x00000000, 0x40000000, 0x00000000, 1219 0x065, 0x00091016, 1220 0x90000210, 0x00000000, 0x40000000, 0x00000000, 1221 0x065, 0x00093016, 1222 0x9000020c, 0x00000000, 0x40000000, 0x00000000, 1223 0x065, 0x00093015, 1224 0x9000040c, 0x00000000, 0x40000000, 0x00000000, 1225 0x065, 0x00093015, 1226 0x90000200, 0x00000000, 0x40000000, 0x00000000, 1227 0x065, 0x00093016, 1228 0xA0000000, 0x00000000, 1229 0x065, 0x00091016, 1230 0xB0000000, 0x00000000, 1231 0x018, 0x00000006, 1232 0x0EF, 0x00002000, 1233 0x03B, 0x0003824B, 1234 0x03B, 0x0003024B, 1235 0x03B, 0x0002844B, 1236 0x03B, 0x00020F4B, 1237 0x03B, 0x00018F4B, 1238 0x03B, 0x000104B2, 1239 0x03B, 0x00008049, 1240 0x03B, 0x00000148, 1241 0x03B, 0x0007824B, 1242 0x03B, 0x0007024B, 1243 0x03B, 0x0006824B, 1244 0x03B, 0x00060F4B, 1245 0x03B, 0x00058F4B, 1246 0x03B, 0x000504B2, 1247 0x03B, 0x00048049, 1248 0x03B, 0x00040148, 1249 0x0EF, 0x00000000, 1250 0x0EF, 0x00000100, 1251 0x034, 0x0000ADF3, 1252 0x034, 0x00009DF0, 1253 0x034, 0x00008D70, 1254 0x034, 0x00007D6D, 1255 0x034, 0x00006CEE, 1256 0x034, 0x00005CCC, 1257 0x034, 0x000044EC, 1258 0x034, 0x000034AC, 1259 0x034, 0x0000246D, 1260 0x034, 0x0000106F, 1261 0x034, 0x0000006C, 1262 0x0EF, 0x00000000, 1263 0x0ED, 0x00000010, 1264 0x044, 0x0000ADF2, 1265 0x044, 0x00009DEF, 1266 0x044, 0x00008DEC, 1267 0x044, 0x00007DE9, 1268 0x044, 0x00006CEC, 1269 0x044, 0x00005CE9, 1270 0x044, 0x000044EC, 1271 0x044, 0x000034E9, 1272 0x044, 0x0000246C, 1273 0x044, 0x00001469, 1274 0x044, 0x0000006C, 1275 0x0ED, 0x00000000, 1276 0x0ED, 0x00000001, 1277 0x040, 0x00038DA7, 1278 0x040, 0x000300C2, 1279 0x040, 0x000288E2, 1280 0x040, 0x000200B8, 1281 0x040, 0x000188A5, 1282 0x040, 0x00010FBC, 1283 0x040, 0x00008F71, 1284 0x040, 0x00000240, 1285 0x0ED, 0x00000000, 1286 0x0EF, 0x000020A2, 1287 0x0DF, 0x00000080, 1288 0x035, 0x00000120, 1289 0x035, 0x00008120, 1290 0x035, 0x00010120, 1291 0x036, 0x00000085, 1292 0x036, 0x00008085, 1293 0x036, 0x00010085, 1294 0x036, 0x00018085, 1295 0x0EF, 0x00000000, 1296 0x051, 0x00000C31, 1297 0x052, 0x00000622, 1298 0x053, 0x000FC70B, 1299 0x054, 0x0000017E, 1300 0x056, 0x00051DF3, 1301 0x051, 0x00000C01, 1302 0x052, 0x000006D6, 1303 0x053, 0x000FC649, 1304 0x070, 0x00049661, 1305 0x071, 0x0007843E, 1306 0x072, 0x00000382, 1307 0x074, 0x00051400, 1308 0x035, 0x00000160, 1309 0x035, 0x00008160, 1310 0x035, 0x00010160, 1311 0x036, 0x00000124, 1312 0x036, 0x00008124, 1313 0x036, 0x00010124, 1314 0x036, 0x00018124, 1315 0x0ED, 0x0000000C, 1316 0x045, 0x00000140, 1317 0x045, 0x00008140, 1318 0x045, 0x00010140, 1319 0x046, 0x00000124, 1320 0x046, 0x00008124, 1321 0x046, 0x00010124, 1322 0x046, 0x00018124, 1323 0x0DF, 0x00000088, 1324 0x0B3, 0x000F0E18, 1325 0x0B4, 0x0001214C, 1326 0x0B7, 0x0003000C, 1327 0x01C, 0x000539D2, 1328 0x0C4, 0x000AFE00, 1329 0x018, 0x0001F12A, 1330 0xFFE, 0x00000000, 1331 0xFFE, 0x00000000, 1332 0x018, 0x0001712A, 1333 }; 1334 1335 RTW_DECL_TABLE_RF_RADIO(rtw8821a_rf_a, A); 1336 1337 static const struct rtw_txpwr_lmt_cfg_pair rtw8821a_txpwr_lmt[] = { 1338 { 0, 0, 0, 0, 1, 32, }, 1339 { 2, 0, 0, 0, 1, 28, }, 1340 { 1, 0, 0, 0, 1, 32, }, 1341 { 0, 0, 0, 0, 2, 32, }, 1342 { 2, 0, 0, 0, 2, 28, }, 1343 { 1, 0, 0, 0, 2, 32, }, 1344 { 0, 0, 0, 0, 3, 36, }, 1345 { 2, 0, 0, 0, 3, 28, }, 1346 { 1, 0, 0, 0, 3, 32, }, 1347 { 0, 0, 0, 0, 4, 36, }, 1348 { 2, 0, 0, 0, 4, 28, }, 1349 { 1, 0, 0, 0, 4, 32, }, 1350 { 0, 0, 0, 0, 5, 36, }, 1351 { 2, 0, 0, 0, 5, 28, }, 1352 { 1, 0, 0, 0, 5, 32, }, 1353 { 0, 0, 0, 0, 6, 36, }, 1354 { 2, 0, 0, 0, 6, 28, }, 1355 { 1, 0, 0, 0, 6, 32, }, 1356 { 0, 0, 0, 0, 7, 36, }, 1357 { 2, 0, 0, 0, 7, 28, }, 1358 { 1, 0, 0, 0, 7, 32, }, 1359 { 0, 0, 0, 0, 8, 36, }, 1360 { 2, 0, 0, 0, 8, 28, }, 1361 { 1, 0, 0, 0, 8, 32, }, 1362 { 0, 0, 0, 0, 9, 32, }, 1363 { 2, 0, 0, 0, 9, 28, }, 1364 { 1, 0, 0, 0, 9, 32, }, 1365 { 0, 0, 0, 0, 10, 32, }, 1366 { 2, 0, 0, 0, 10, 28, }, 1367 { 1, 0, 0, 0, 10, 32, }, 1368 { 0, 0, 0, 0, 11, 32, }, 1369 { 2, 0, 0, 0, 11, 28, }, 1370 { 1, 0, 0, 0, 11, 32, }, 1371 { 0, 0, 0, 0, 12, 28, }, 1372 { 2, 0, 0, 0, 12, 28, }, 1373 { 1, 0, 0, 0, 12, 32, }, 1374 { 0, 0, 0, 0, 13, 26, }, 1375 { 2, 0, 0, 0, 13, 28, }, 1376 { 1, 0, 0, 0, 13, 32, }, 1377 { 0, 0, 0, 0, 14, 63, }, 1378 { 2, 0, 0, 0, 14, 63, }, 1379 { 1, 0, 0, 0, 14, 32, }, 1380 { 0, 0, 0, 1, 1, 30, }, 1381 { 2, 0, 0, 1, 1, 30, }, 1382 { 1, 0, 0, 1, 1, 32, }, 1383 { 0, 0, 0, 1, 2, 30, }, 1384 { 2, 0, 0, 1, 2, 32, }, 1385 { 1, 0, 0, 1, 2, 32, }, 1386 { 0, 0, 0, 1, 3, 32, }, 1387 { 2, 0, 0, 1, 3, 32, }, 1388 { 1, 0, 0, 1, 3, 32, }, 1389 { 0, 0, 0, 1, 4, 32, }, 1390 { 2, 0, 0, 1, 4, 32, }, 1391 { 1, 0, 0, 1, 4, 32, }, 1392 { 0, 0, 0, 1, 5, 32, }, 1393 { 2, 0, 0, 1, 5, 32, }, 1394 { 1, 0, 0, 1, 5, 32, }, 1395 { 0, 0, 0, 1, 6, 32, }, 1396 { 2, 0, 0, 1, 6, 32, }, 1397 { 1, 0, 0, 1, 6, 32, }, 1398 { 0, 0, 0, 1, 7, 32, }, 1399 { 2, 0, 0, 1, 7, 32, }, 1400 { 1, 0, 0, 1, 7, 32, }, 1401 { 0, 0, 0, 1, 8, 32, }, 1402 { 2, 0, 0, 1, 8, 32, }, 1403 { 1, 0, 0, 1, 8, 32, }, 1404 { 0, 0, 0, 1, 9, 30, }, 1405 { 2, 0, 0, 1, 9, 32, }, 1406 { 1, 0, 0, 1, 9, 32, }, 1407 { 0, 0, 0, 1, 10, 30, }, 1408 { 2, 0, 0, 1, 10, 32, }, 1409 { 1, 0, 0, 1, 10, 32, }, 1410 { 0, 0, 0, 1, 11, 30, }, 1411 { 2, 0, 0, 1, 11, 32, }, 1412 { 1, 0, 0, 1, 11, 32, }, 1413 { 0, 0, 0, 1, 12, 26, }, 1414 { 2, 0, 0, 1, 12, 32, }, 1415 { 1, 0, 0, 1, 12, 32, }, 1416 { 0, 0, 0, 1, 13, 24, }, 1417 { 2, 0, 0, 1, 13, 30, }, 1418 { 1, 0, 0, 1, 13, 32, }, 1419 { 0, 0, 0, 1, 14, 63, }, 1420 { 2, 0, 0, 1, 14, 63, }, 1421 { 1, 0, 0, 1, 14, 63, }, 1422 { 0, 0, 0, 2, 1, 26, }, 1423 { 2, 0, 0, 2, 1, 26, }, 1424 { 1, 0, 0, 2, 1, 32, }, 1425 { 0, 0, 0, 2, 2, 26, }, 1426 { 2, 0, 0, 2, 2, 32, }, 1427 { 1, 0, 0, 2, 2, 32, }, 1428 { 0, 0, 0, 2, 3, 32, }, 1429 { 2, 0, 0, 2, 3, 32, }, 1430 { 1, 0, 0, 2, 3, 32, }, 1431 { 0, 0, 0, 2, 4, 32, }, 1432 { 2, 0, 0, 2, 4, 32, }, 1433 { 1, 0, 0, 2, 4, 32, }, 1434 { 0, 0, 0, 2, 5, 32, }, 1435 { 2, 0, 0, 2, 5, 32, }, 1436 { 1, 0, 0, 2, 5, 32, }, 1437 { 0, 0, 0, 2, 6, 32, }, 1438 { 2, 0, 0, 2, 6, 32, }, 1439 { 1, 0, 0, 2, 6, 32, }, 1440 { 0, 0, 0, 2, 7, 32, }, 1441 { 2, 0, 0, 2, 7, 32, }, 1442 { 1, 0, 0, 2, 7, 32, }, 1443 { 0, 0, 0, 2, 8, 32, }, 1444 { 2, 0, 0, 2, 8, 32, }, 1445 { 1, 0, 0, 2, 8, 32, }, 1446 { 0, 0, 0, 2, 9, 26, }, 1447 { 2, 0, 0, 2, 9, 32, }, 1448 { 1, 0, 0, 2, 9, 32, }, 1449 { 0, 0, 0, 2, 10, 26, }, 1450 { 2, 0, 0, 2, 10, 32, }, 1451 { 1, 0, 0, 2, 10, 32, }, 1452 { 0, 0, 0, 2, 11, 26, }, 1453 { 2, 0, 0, 2, 11, 32, }, 1454 { 1, 0, 0, 2, 11, 32, }, 1455 { 0, 0, 0, 2, 12, 26, }, 1456 { 2, 0, 0, 2, 12, 32, }, 1457 { 1, 0, 0, 2, 12, 32, }, 1458 { 0, 0, 0, 2, 13, 24, }, 1459 { 2, 0, 0, 2, 13, 26, }, 1460 { 1, 0, 0, 2, 13, 32, }, 1461 { 0, 0, 0, 2, 14, 63, }, 1462 { 2, 0, 0, 2, 14, 63, }, 1463 { 1, 0, 0, 2, 14, 63, }, 1464 { 0, 0, 0, 3, 1, 30, }, 1465 { 2, 0, 0, 3, 1, 32, }, 1466 { 1, 0, 0, 3, 1, 32, }, 1467 { 0, 0, 0, 3, 2, 32, }, 1468 { 2, 0, 0, 3, 2, 32, }, 1469 { 1, 0, 0, 3, 2, 32, }, 1470 { 0, 0, 0, 3, 3, 32, }, 1471 { 2, 0, 0, 3, 3, 32, }, 1472 { 1, 0, 0, 3, 3, 32, }, 1473 { 0, 0, 0, 3, 4, 32, }, 1474 { 2, 0, 0, 3, 4, 32, }, 1475 { 1, 0, 0, 3, 4, 32, }, 1476 { 0, 0, 0, 3, 5, 32, }, 1477 { 2, 0, 0, 3, 5, 32, }, 1478 { 1, 0, 0, 3, 5, 32, }, 1479 { 0, 0, 0, 3, 6, 32, }, 1480 { 2, 0, 0, 3, 6, 32, }, 1481 { 1, 0, 0, 3, 6, 32, }, 1482 { 0, 0, 0, 3, 7, 32, }, 1483 { 2, 0, 0, 3, 7, 32, }, 1484 { 1, 0, 0, 3, 7, 32, }, 1485 { 0, 0, 0, 3, 8, 32, }, 1486 { 2, 0, 0, 3, 8, 32, }, 1487 { 1, 0, 0, 3, 8, 32, }, 1488 { 0, 0, 0, 3, 9, 32, }, 1489 { 2, 0, 0, 3, 9, 32, }, 1490 { 1, 0, 0, 3, 9, 32, }, 1491 { 0, 0, 0, 3, 10, 32, }, 1492 { 2, 0, 0, 3, 10, 32, }, 1493 { 1, 0, 0, 3, 10, 32, }, 1494 { 0, 0, 0, 3, 11, 30, }, 1495 { 2, 0, 0, 3, 11, 32, }, 1496 { 1, 0, 0, 3, 11, 32, }, 1497 { 0, 0, 0, 3, 12, 63, }, 1498 { 2, 0, 0, 3, 12, 32, }, 1499 { 1, 0, 0, 3, 12, 32, }, 1500 { 0, 0, 0, 3, 13, 63, }, 1501 { 2, 0, 0, 3, 13, 32, }, 1502 { 1, 0, 0, 3, 13, 32, }, 1503 { 0, 0, 0, 3, 14, 63, }, 1504 { 2, 0, 0, 3, 14, 63, }, 1505 { 1, 0, 0, 3, 14, 63, }, 1506 { 0, 0, 1, 2, 1, 63, }, 1507 { 2, 0, 1, 2, 1, 63, }, 1508 { 1, 0, 1, 2, 1, 63, }, 1509 { 0, 0, 1, 2, 2, 63, }, 1510 { 2, 0, 1, 2, 2, 63, }, 1511 { 1, 0, 1, 2, 2, 63, }, 1512 { 0, 0, 1, 2, 3, 26, }, 1513 { 2, 0, 1, 2, 3, 26, }, 1514 { 1, 0, 1, 2, 3, 32, }, 1515 { 0, 0, 1, 2, 4, 26, }, 1516 { 2, 0, 1, 2, 4, 32, }, 1517 { 1, 0, 1, 2, 4, 32, }, 1518 { 0, 0, 1, 2, 5, 26, }, 1519 { 2, 0, 1, 2, 5, 32, }, 1520 { 1, 0, 1, 2, 5, 32, }, 1521 { 0, 0, 1, 2, 6, 32, }, 1522 { 2, 0, 1, 2, 6, 32, }, 1523 { 1, 0, 1, 2, 6, 32, }, 1524 { 0, 0, 1, 2, 7, 32, }, 1525 { 2, 0, 1, 2, 7, 32, }, 1526 { 1, 0, 1, 2, 7, 32, }, 1527 { 0, 0, 1, 2, 8, 32, }, 1528 { 2, 0, 1, 2, 8, 32, }, 1529 { 1, 0, 1, 2, 8, 32, }, 1530 { 0, 0, 1, 2, 9, 26, }, 1531 { 2, 0, 1, 2, 9, 32, }, 1532 { 1, 0, 1, 2, 9, 32, }, 1533 { 0, 0, 1, 2, 10, 24, }, 1534 { 2, 0, 1, 2, 10, 32, }, 1535 { 1, 0, 1, 2, 10, 32, }, 1536 { 0, 0, 1, 2, 11, 22, }, 1537 { 2, 0, 1, 2, 11, 26, }, 1538 { 1, 0, 1, 2, 11, 32, }, 1539 { 0, 0, 1, 2, 12, 63, }, 1540 { 2, 0, 1, 2, 12, 63, }, 1541 { 1, 0, 1, 2, 12, 63, }, 1542 { 0, 0, 1, 2, 13, 63, }, 1543 { 2, 0, 1, 2, 13, 63, }, 1544 { 1, 0, 1, 2, 13, 63, }, 1545 { 0, 0, 1, 2, 14, 63, }, 1546 { 2, 0, 1, 2, 14, 63, }, 1547 { 1, 0, 1, 2, 14, 63, }, 1548 { 0, 0, 1, 3, 1, 63, }, 1549 { 2, 0, 1, 3, 1, 63, }, 1550 { 1, 0, 1, 3, 1, 63, }, 1551 { 0, 0, 1, 3, 2, 63, }, 1552 { 2, 0, 1, 3, 2, 63, }, 1553 { 1, 0, 1, 3, 2, 63, }, 1554 { 0, 0, 1, 3, 3, 30, }, 1555 { 2, 0, 1, 3, 3, 30, }, 1556 { 1, 0, 1, 3, 3, 30, }, 1557 { 0, 0, 1, 3, 4, 32, }, 1558 { 2, 0, 1, 3, 4, 30, }, 1559 { 1, 0, 1, 3, 4, 30, }, 1560 { 0, 0, 1, 3, 5, 32, }, 1561 { 2, 0, 1, 3, 5, 30, }, 1562 { 1, 0, 1, 3, 5, 30, }, 1563 { 0, 0, 1, 3, 6, 32, }, 1564 { 2, 0, 1, 3, 6, 30, }, 1565 { 1, 0, 1, 3, 6, 30, }, 1566 { 0, 0, 1, 3, 7, 32, }, 1567 { 2, 0, 1, 3, 7, 30, }, 1568 { 1, 0, 1, 3, 7, 30, }, 1569 { 0, 0, 1, 3, 8, 32, }, 1570 { 2, 0, 1, 3, 8, 30, }, 1571 { 1, 0, 1, 3, 8, 30, }, 1572 { 0, 0, 1, 3, 9, 32, }, 1573 { 2, 0, 1, 3, 9, 30, }, 1574 { 1, 0, 1, 3, 9, 30, }, 1575 { 0, 0, 1, 3, 10, 32, }, 1576 { 2, 0, 1, 3, 10, 30, }, 1577 { 1, 0, 1, 3, 10, 30, }, 1578 { 0, 0, 1, 3, 11, 30, }, 1579 { 2, 0, 1, 3, 11, 30, }, 1580 { 1, 0, 1, 3, 11, 30, }, 1581 { 0, 0, 1, 3, 12, 63, }, 1582 { 2, 0, 1, 3, 12, 32, }, 1583 { 1, 0, 1, 3, 12, 32, }, 1584 { 0, 0, 1, 3, 13, 63, }, 1585 { 2, 0, 1, 3, 13, 32, }, 1586 { 1, 0, 1, 3, 13, 32, }, 1587 { 0, 0, 1, 3, 14, 63, }, 1588 { 2, 0, 1, 3, 14, 63, }, 1589 { 1, 0, 1, 3, 14, 63, }, 1590 { 0, 1, 0, 1, 36, 32, }, 1591 { 2, 1, 0, 1, 36, 30, }, 1592 { 1, 1, 0, 1, 36, 30, }, 1593 { 0, 1, 0, 1, 40, 32, }, 1594 { 2, 1, 0, 1, 40, 30, }, 1595 { 1, 1, 0, 1, 40, 30, }, 1596 { 0, 1, 0, 1, 44, 32, }, 1597 { 2, 1, 0, 1, 44, 30, }, 1598 { 1, 1, 0, 1, 44, 30, }, 1599 { 0, 1, 0, 1, 48, 32, }, 1600 { 2, 1, 0, 1, 48, 30, }, 1601 { 1, 1, 0, 1, 48, 30, }, 1602 { 0, 1, 0, 1, 52, 32, }, 1603 { 2, 1, 0, 1, 52, 30, }, 1604 { 1, 1, 0, 1, 52, 30, }, 1605 { 0, 1, 0, 1, 56, 32, }, 1606 { 2, 1, 0, 1, 56, 30, }, 1607 { 1, 1, 0, 1, 56, 30, }, 1608 { 0, 1, 0, 1, 60, 32, }, 1609 { 2, 1, 0, 1, 60, 30, }, 1610 { 1, 1, 0, 1, 60, 30, }, 1611 { 0, 1, 0, 1, 64, 32, }, 1612 { 2, 1, 0, 1, 64, 30, }, 1613 { 1, 1, 0, 1, 64, 30, }, 1614 { 0, 1, 0, 1, 100, 32, }, 1615 { 2, 1, 0, 1, 100, 30, }, 1616 { 1, 1, 0, 1, 100, 30, }, 1617 { 0, 1, 0, 1, 104, 32, }, 1618 { 2, 1, 0, 1, 104, 30, }, 1619 { 1, 1, 0, 1, 104, 30, }, 1620 { 0, 1, 0, 1, 108, 32, }, 1621 { 2, 1, 0, 1, 108, 30, }, 1622 { 1, 1, 0, 1, 108, 30, }, 1623 { 0, 1, 0, 1, 112, 32, }, 1624 { 2, 1, 0, 1, 112, 30, }, 1625 { 1, 1, 0, 1, 112, 30, }, 1626 { 0, 1, 0, 1, 116, 32, }, 1627 { 2, 1, 0, 1, 116, 30, }, 1628 { 1, 1, 0, 1, 116, 30, }, 1629 { 0, 1, 0, 1, 120, 32, }, 1630 { 2, 1, 0, 1, 120, 30, }, 1631 { 1, 1, 0, 1, 120, 30, }, 1632 { 0, 1, 0, 1, 124, 32, }, 1633 { 2, 1, 0, 1, 124, 30, }, 1634 { 1, 1, 0, 1, 124, 30, }, 1635 { 0, 1, 0, 1, 128, 32, }, 1636 { 2, 1, 0, 1, 128, 30, }, 1637 { 1, 1, 0, 1, 128, 30, }, 1638 { 0, 1, 0, 1, 132, 32, }, 1639 { 2, 1, 0, 1, 132, 30, }, 1640 { 1, 1, 0, 1, 132, 30, }, 1641 { 0, 1, 0, 1, 136, 32, }, 1642 { 2, 1, 0, 1, 136, 30, }, 1643 { 1, 1, 0, 1, 136, 30, }, 1644 { 0, 1, 0, 1, 140, 32, }, 1645 { 2, 1, 0, 1, 140, 30, }, 1646 { 1, 1, 0, 1, 140, 30, }, 1647 { 0, 1, 0, 1, 149, 32, }, 1648 { 2, 1, 0, 1, 149, 30, }, 1649 { 1, 1, 0, 1, 149, 63, }, 1650 { 0, 1, 0, 1, 153, 32, }, 1651 { 2, 1, 0, 1, 153, 30, }, 1652 { 1, 1, 0, 1, 153, 63, }, 1653 { 0, 1, 0, 1, 157, 32, }, 1654 { 2, 1, 0, 1, 157, 30, }, 1655 { 1, 1, 0, 1, 157, 63, }, 1656 { 0, 1, 0, 1, 161, 32, }, 1657 { 2, 1, 0, 1, 161, 30, }, 1658 { 1, 1, 0, 1, 161, 63, }, 1659 { 0, 1, 0, 1, 165, 32, }, 1660 { 2, 1, 0, 1, 165, 30, }, 1661 { 1, 1, 0, 1, 165, 63, }, 1662 { 0, 1, 0, 2, 36, 32, }, 1663 { 2, 1, 0, 2, 36, 30, }, 1664 { 1, 1, 0, 2, 36, 30, }, 1665 { 0, 1, 0, 2, 40, 32, }, 1666 { 2, 1, 0, 2, 40, 30, }, 1667 { 1, 1, 0, 2, 40, 30, }, 1668 { 0, 1, 0, 2, 44, 32, }, 1669 { 2, 1, 0, 2, 44, 30, }, 1670 { 1, 1, 0, 2, 44, 30, }, 1671 { 0, 1, 0, 2, 48, 32, }, 1672 { 2, 1, 0, 2, 48, 30, }, 1673 { 1, 1, 0, 2, 48, 30, }, 1674 { 0, 1, 0, 2, 52, 32, }, 1675 { 2, 1, 0, 2, 52, 30, }, 1676 { 1, 1, 0, 2, 52, 30, }, 1677 { 0, 1, 0, 2, 56, 32, }, 1678 { 2, 1, 0, 2, 56, 30, }, 1679 { 1, 1, 0, 2, 56, 30, }, 1680 { 0, 1, 0, 2, 60, 32, }, 1681 { 2, 1, 0, 2, 60, 30, }, 1682 { 1, 1, 0, 2, 60, 30, }, 1683 { 0, 1, 0, 2, 64, 32, }, 1684 { 2, 1, 0, 2, 64, 30, }, 1685 { 1, 1, 0, 2, 64, 30, }, 1686 { 0, 1, 0, 2, 100, 32, }, 1687 { 2, 1, 0, 2, 100, 30, }, 1688 { 1, 1, 0, 2, 100, 30, }, 1689 { 0, 1, 0, 2, 104, 32, }, 1690 { 2, 1, 0, 2, 104, 30, }, 1691 { 1, 1, 0, 2, 104, 30, }, 1692 { 0, 1, 0, 2, 108, 32, }, 1693 { 2, 1, 0, 2, 108, 30, }, 1694 { 1, 1, 0, 2, 108, 30, }, 1695 { 0, 1, 0, 2, 112, 32, }, 1696 { 2, 1, 0, 2, 112, 30, }, 1697 { 1, 1, 0, 2, 112, 30, }, 1698 { 0, 1, 0, 2, 116, 32, }, 1699 { 2, 1, 0, 2, 116, 30, }, 1700 { 1, 1, 0, 2, 116, 30, }, 1701 { 0, 1, 0, 2, 120, 32, }, 1702 { 2, 1, 0, 2, 120, 30, }, 1703 { 1, 1, 0, 2, 120, 30, }, 1704 { 0, 1, 0, 2, 124, 32, }, 1705 { 2, 1, 0, 2, 124, 30, }, 1706 { 1, 1, 0, 2, 124, 30, }, 1707 { 0, 1, 0, 2, 128, 32, }, 1708 { 2, 1, 0, 2, 128, 30, }, 1709 { 1, 1, 0, 2, 128, 30, }, 1710 { 0, 1, 0, 2, 132, 32, }, 1711 { 2, 1, 0, 2, 132, 30, }, 1712 { 1, 1, 0, 2, 132, 30, }, 1713 { 0, 1, 0, 2, 136, 32, }, 1714 { 2, 1, 0, 2, 136, 30, }, 1715 { 1, 1, 0, 2, 136, 30, }, 1716 { 0, 1, 0, 2, 140, 32, }, 1717 { 2, 1, 0, 2, 140, 30, }, 1718 { 1, 1, 0, 2, 140, 30, }, 1719 { 0, 1, 0, 2, 149, 32, }, 1720 { 2, 1, 0, 2, 149, 30, }, 1721 { 1, 1, 0, 2, 149, 63, }, 1722 { 0, 1, 0, 2, 153, 32, }, 1723 { 2, 1, 0, 2, 153, 30, }, 1724 { 1, 1, 0, 2, 153, 63, }, 1725 { 0, 1, 0, 2, 157, 32, }, 1726 { 2, 1, 0, 2, 157, 30, }, 1727 { 1, 1, 0, 2, 157, 63, }, 1728 { 0, 1, 0, 2, 161, 32, }, 1729 { 2, 1, 0, 2, 161, 30, }, 1730 { 1, 1, 0, 2, 161, 63, }, 1731 { 0, 1, 0, 2, 165, 32, }, 1732 { 2, 1, 0, 2, 165, 30, }, 1733 { 1, 1, 0, 2, 165, 63, }, 1734 { 0, 1, 0, 3, 36, 28, }, 1735 { 2, 1, 0, 3, 36, 30, }, 1736 { 1, 1, 0, 3, 36, 30, }, 1737 { 0, 1, 0, 3, 40, 28, }, 1738 { 2, 1, 0, 3, 40, 30, }, 1739 { 1, 1, 0, 3, 40, 30, }, 1740 { 0, 1, 0, 3, 44, 28, }, 1741 { 2, 1, 0, 3, 44, 30, }, 1742 { 1, 1, 0, 3, 44, 30, }, 1743 { 0, 1, 0, 3, 48, 28, }, 1744 { 2, 1, 0, 3, 48, 30, }, 1745 { 1, 1, 0, 3, 48, 30, }, 1746 { 0, 1, 0, 3, 52, 34, }, 1747 { 2, 1, 0, 3, 52, 30, }, 1748 { 1, 1, 0, 3, 52, 30, }, 1749 { 0, 1, 0, 3, 56, 32, }, 1750 { 2, 1, 0, 3, 56, 30, }, 1751 { 1, 1, 0, 3, 56, 30, }, 1752 { 0, 1, 0, 3, 60, 30, }, 1753 { 2, 1, 0, 3, 60, 30, }, 1754 { 1, 1, 0, 3, 60, 30, }, 1755 { 0, 1, 0, 3, 64, 26, }, 1756 { 2, 1, 0, 3, 64, 30, }, 1757 { 1, 1, 0, 3, 64, 30, }, 1758 { 0, 1, 0, 3, 100, 28, }, 1759 { 2, 1, 0, 3, 100, 30, }, 1760 { 1, 1, 0, 3, 100, 30, }, 1761 { 0, 1, 0, 3, 104, 28, }, 1762 { 2, 1, 0, 3, 104, 30, }, 1763 { 1, 1, 0, 3, 104, 30, }, 1764 { 0, 1, 0, 3, 108, 30, }, 1765 { 2, 1, 0, 3, 108, 30, }, 1766 { 1, 1, 0, 3, 108, 30, }, 1767 { 0, 1, 0, 3, 112, 32, }, 1768 { 2, 1, 0, 3, 112, 30, }, 1769 { 1, 1, 0, 3, 112, 30, }, 1770 { 0, 1, 0, 3, 116, 32, }, 1771 { 2, 1, 0, 3, 116, 30, }, 1772 { 1, 1, 0, 3, 116, 30, }, 1773 { 0, 1, 0, 3, 120, 34, }, 1774 { 2, 1, 0, 3, 120, 30, }, 1775 { 1, 1, 0, 3, 120, 30, }, 1776 { 0, 1, 0, 3, 124, 32, }, 1777 { 2, 1, 0, 3, 124, 30, }, 1778 { 1, 1, 0, 3, 124, 30, }, 1779 { 0, 1, 0, 3, 128, 30, }, 1780 { 2, 1, 0, 3, 128, 30, }, 1781 { 1, 1, 0, 3, 128, 30, }, 1782 { 0, 1, 0, 3, 132, 28, }, 1783 { 2, 1, 0, 3, 132, 30, }, 1784 { 1, 1, 0, 3, 132, 30, }, 1785 { 0, 1, 0, 3, 136, 28, }, 1786 { 2, 1, 0, 3, 136, 30, }, 1787 { 1, 1, 0, 3, 136, 30, }, 1788 { 0, 1, 0, 3, 140, 26, }, 1789 { 2, 1, 0, 3, 140, 30, }, 1790 { 1, 1, 0, 3, 140, 30, }, 1791 { 0, 1, 0, 3, 149, 34, }, 1792 { 2, 1, 0, 3, 149, 30, }, 1793 { 1, 1, 0, 3, 149, 63, }, 1794 { 0, 1, 0, 3, 153, 34, }, 1795 { 2, 1, 0, 3, 153, 30, }, 1796 { 1, 1, 0, 3, 153, 63, }, 1797 { 0, 1, 0, 3, 157, 34, }, 1798 { 2, 1, 0, 3, 157, 30, }, 1799 { 1, 1, 0, 3, 157, 63, }, 1800 { 0, 1, 0, 3, 161, 34, }, 1801 { 2, 1, 0, 3, 161, 30, }, 1802 { 1, 1, 0, 3, 161, 63, }, 1803 { 0, 1, 0, 3, 165, 34, }, 1804 { 2, 1, 0, 3, 165, 30, }, 1805 { 1, 1, 0, 3, 165, 63, }, 1806 { 0, 1, 1, 2, 38, 26, }, 1807 { 2, 1, 1, 2, 38, 30, }, 1808 { 1, 1, 1, 2, 38, 30, }, 1809 { 0, 1, 1, 2, 46, 32, }, 1810 { 2, 1, 1, 2, 46, 30, }, 1811 { 1, 1, 1, 2, 46, 30, }, 1812 { 0, 1, 1, 2, 54, 32, }, 1813 { 2, 1, 1, 2, 54, 30, }, 1814 { 1, 1, 1, 2, 54, 30, }, 1815 { 0, 1, 1, 2, 62, 24, }, 1816 { 2, 1, 1, 2, 62, 30, }, 1817 { 1, 1, 1, 2, 62, 30, }, 1818 { 0, 1, 1, 2, 102, 24, }, 1819 { 2, 1, 1, 2, 102, 30, }, 1820 { 1, 1, 1, 2, 102, 30, }, 1821 { 0, 1, 1, 2, 110, 32, }, 1822 { 2, 1, 1, 2, 110, 30, }, 1823 { 1, 1, 1, 2, 110, 30, }, 1824 { 0, 1, 1, 2, 118, 32, }, 1825 { 2, 1, 1, 2, 118, 30, }, 1826 { 1, 1, 1, 2, 118, 30, }, 1827 { 0, 1, 1, 2, 126, 32, }, 1828 { 2, 1, 1, 2, 126, 30, }, 1829 { 1, 1, 1, 2, 126, 30, }, 1830 { 0, 1, 1, 2, 134, 32, }, 1831 { 2, 1, 1, 2, 134, 30, }, 1832 { 1, 1, 1, 2, 134, 30, }, 1833 { 0, 1, 1, 2, 151, 30, }, 1834 { 2, 1, 1, 2, 151, 30, }, 1835 { 1, 1, 1, 2, 151, 63, }, 1836 { 0, 1, 1, 2, 159, 32, }, 1837 { 2, 1, 1, 2, 159, 30, }, 1838 { 1, 1, 1, 2, 159, 63, }, 1839 { 0, 1, 1, 3, 38, 28, }, 1840 { 2, 1, 1, 3, 38, 30, }, 1841 { 1, 1, 1, 3, 38, 30, }, 1842 { 0, 1, 1, 3, 46, 28, }, 1843 { 2, 1, 1, 3, 46, 30, }, 1844 { 1, 1, 1, 3, 46, 30, }, 1845 { 0, 1, 1, 3, 54, 30, }, 1846 { 2, 1, 1, 3, 54, 30, }, 1847 { 1, 1, 1, 3, 54, 30, }, 1848 { 0, 1, 1, 3, 62, 30, }, 1849 { 2, 1, 1, 3, 62, 30, }, 1850 { 1, 1, 1, 3, 62, 30, }, 1851 { 0, 1, 1, 3, 102, 26, }, 1852 { 2, 1, 1, 3, 102, 30, }, 1853 { 1, 1, 1, 3, 102, 30, }, 1854 { 0, 1, 1, 3, 110, 30, }, 1855 { 2, 1, 1, 3, 110, 30, }, 1856 { 1, 1, 1, 3, 110, 30, }, 1857 { 0, 1, 1, 3, 118, 34, }, 1858 { 2, 1, 1, 3, 118, 30, }, 1859 { 1, 1, 1, 3, 118, 30, }, 1860 { 0, 1, 1, 3, 126, 32, }, 1861 { 2, 1, 1, 3, 126, 30, }, 1862 { 1, 1, 1, 3, 126, 30, }, 1863 { 0, 1, 1, 3, 134, 30, }, 1864 { 2, 1, 1, 3, 134, 30, }, 1865 { 1, 1, 1, 3, 134, 30, }, 1866 { 0, 1, 1, 3, 151, 34, }, 1867 { 2, 1, 1, 3, 151, 30, }, 1868 { 1, 1, 1, 3, 151, 63, }, 1869 { 0, 1, 1, 3, 159, 34, }, 1870 { 2, 1, 1, 3, 159, 30, }, 1871 { 1, 1, 1, 3, 159, 63, }, 1872 { 0, 1, 2, 4, 42, 22, }, 1873 { 2, 1, 2, 4, 42, 30, }, 1874 { 1, 1, 2, 4, 42, 30, }, 1875 { 0, 1, 2, 4, 58, 20, }, 1876 { 2, 1, 2, 4, 58, 30, }, 1877 { 1, 1, 2, 4, 58, 30, }, 1878 { 0, 1, 2, 4, 106, 20, }, 1879 { 2, 1, 2, 4, 106, 30, }, 1880 { 1, 1, 2, 4, 106, 30, }, 1881 { 0, 1, 2, 4, 122, 20, }, 1882 { 2, 1, 2, 4, 122, 30, }, 1883 { 1, 1, 2, 4, 122, 30, }, 1884 { 0, 1, 2, 4, 155, 28, }, 1885 { 2, 1, 2, 4, 155, 30, }, 1886 { 1, 1, 2, 4, 155, 63, }, 1887 { 0, 1, 2, 5, 42, 28, }, 1888 { 2, 1, 2, 5, 42, 30, }, 1889 { 1, 1, 2, 5, 42, 30, }, 1890 { 0, 1, 2, 5, 58, 26, }, 1891 { 2, 1, 2, 5, 58, 30, }, 1892 { 1, 1, 2, 5, 58, 30, }, 1893 { 0, 1, 2, 5, 106, 28, }, 1894 { 2, 1, 2, 5, 106, 30, }, 1895 { 1, 1, 2, 5, 106, 30, }, 1896 { 0, 1, 2, 5, 122, 32, }, 1897 { 2, 1, 2, 5, 122, 30, }, 1898 { 1, 1, 2, 5, 122, 30, }, 1899 { 0, 1, 2, 5, 155, 34, }, 1900 { 2, 1, 2, 5, 155, 30, }, 1901 { 1, 1, 2, 5, 155, 63, }, 1902 }; 1903 1904 RTW_DECL_TABLE_TXPWR_LMT(rtw8821a_txpwr_lmt); 1905 1906 static const struct rtw_pwr_seq_cmd trans_carddis_to_cardemu_8821a[] = { 1907 {0x0005, 1908 RTW_PWR_CUT_ALL_MSK, 1909 RTW_PWR_INTF_ALL_MSK, 1910 RTW_PWR_ADDR_MAC, 1911 RTW_PWR_CMD_WRITE, BIT(3) | BIT(7), 0}, 1912 {0x0086, 1913 RTW_PWR_CUT_ALL_MSK, 1914 RTW_PWR_INTF_SDIO_MSK, 1915 RTW_PWR_ADDR_SDIO, 1916 RTW_PWR_CMD_WRITE, BIT(0), 0}, 1917 {0x0086, 1918 RTW_PWR_CUT_ALL_MSK, 1919 RTW_PWR_INTF_SDIO_MSK, 1920 RTW_PWR_ADDR_SDIO, 1921 RTW_PWR_CMD_POLLING, BIT(1), BIT(1)}, 1922 {0x004A, 1923 RTW_PWR_CUT_ALL_MSK, 1924 RTW_PWR_INTF_USB_MSK, 1925 RTW_PWR_ADDR_MAC, 1926 RTW_PWR_CMD_WRITE, BIT(0), 0}, 1927 {0x0005, 1928 RTW_PWR_CUT_ALL_MSK, 1929 RTW_PWR_INTF_ALL_MSK, 1930 RTW_PWR_ADDR_MAC, 1931 RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), 0}, 1932 {0x0023, 1933 RTW_PWR_CUT_ALL_MSK, 1934 RTW_PWR_INTF_SDIO_MSK, 1935 RTW_PWR_ADDR_MAC, 1936 RTW_PWR_CMD_WRITE, BIT(4), 0}, 1937 {0x0301, 1938 RTW_PWR_CUT_ALL_MSK, 1939 RTW_PWR_INTF_PCI_MSK, 1940 RTW_PWR_ADDR_MAC, 1941 RTW_PWR_CMD_WRITE, 0xFF, 0}, 1942 {0xFFFF, 1943 RTW_PWR_CUT_ALL_MSK, 1944 RTW_PWR_INTF_ALL_MSK, 1945 0, 1946 RTW_PWR_CMD_END, 0, 0}, 1947 }; 1948 1949 static const struct rtw_pwr_seq_cmd trans_cardemu_to_act_8821a[] = { 1950 {0x0020, 1951 RTW_PWR_CUT_ALL_MSK, 1952 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 1953 RTW_PWR_ADDR_MAC, 1954 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 1955 {0x0067, 1956 RTW_PWR_CUT_ALL_MSK, 1957 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 1958 RTW_PWR_ADDR_MAC, 1959 RTW_PWR_CMD_WRITE, BIT(4), 0}, 1960 {0x0001, 1961 RTW_PWR_CUT_ALL_MSK, 1962 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 1963 RTW_PWR_ADDR_MAC, 1964 RTW_PWR_CMD_DELAY, 1, RTW_PWR_DELAY_MS}, 1965 {0x0000, 1966 RTW_PWR_CUT_ALL_MSK, 1967 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 1968 RTW_PWR_ADDR_MAC, 1969 RTW_PWR_CMD_WRITE, BIT(5), 0}, 1970 {0x0005, 1971 RTW_PWR_CUT_ALL_MSK, 1972 RTW_PWR_INTF_ALL_MSK, 1973 RTW_PWR_ADDR_MAC, 1974 RTW_PWR_CMD_WRITE, BIT(4) | BIT(3) | BIT(2), 0}, 1975 {0x0075, 1976 RTW_PWR_CUT_ALL_MSK, 1977 RTW_PWR_INTF_PCI_MSK, 1978 RTW_PWR_ADDR_MAC, 1979 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 1980 {0x0006, 1981 RTW_PWR_CUT_ALL_MSK, 1982 RTW_PWR_INTF_ALL_MSK, 1983 RTW_PWR_ADDR_MAC, 1984 RTW_PWR_CMD_POLLING, BIT(1), BIT(1)}, 1985 {0x0075, 1986 RTW_PWR_CUT_ALL_MSK, 1987 RTW_PWR_INTF_PCI_MSK, 1988 RTW_PWR_ADDR_MAC, 1989 RTW_PWR_CMD_WRITE, BIT(0), 0}, 1990 {0x0006, 1991 RTW_PWR_CUT_ALL_MSK, 1992 RTW_PWR_INTF_ALL_MSK, 1993 RTW_PWR_ADDR_MAC, 1994 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 1995 {0x0005, 1996 RTW_PWR_CUT_ALL_MSK, 1997 RTW_PWR_INTF_ALL_MSK, 1998 RTW_PWR_ADDR_MAC, 1999 RTW_PWR_CMD_WRITE, BIT(7), 0}, 2000 {0x0005, 2001 RTW_PWR_CUT_ALL_MSK, 2002 RTW_PWR_INTF_ALL_MSK, 2003 RTW_PWR_ADDR_MAC, 2004 RTW_PWR_CMD_WRITE, BIT(4) | BIT(3), 0}, 2005 {0x0005, 2006 RTW_PWR_CUT_ALL_MSK, 2007 RTW_PWR_INTF_ALL_MSK, 2008 RTW_PWR_ADDR_MAC, 2009 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2010 {0x0005, 2011 RTW_PWR_CUT_ALL_MSK, 2012 RTW_PWR_INTF_ALL_MSK, 2013 RTW_PWR_ADDR_MAC, 2014 RTW_PWR_CMD_POLLING, BIT(0), 0}, 2015 {0x004F, 2016 RTW_PWR_CUT_ALL_MSK, 2017 RTW_PWR_INTF_ALL_MSK, 2018 RTW_PWR_ADDR_MAC, 2019 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2020 {0x0067, 2021 RTW_PWR_CUT_ALL_MSK, 2022 RTW_PWR_INTF_ALL_MSK, 2023 RTW_PWR_ADDR_MAC, 2024 RTW_PWR_CMD_WRITE, BIT(5) | BIT(4), BIT(5) | BIT(4)}, 2025 {0x0025, 2026 RTW_PWR_CUT_ALL_MSK, 2027 RTW_PWR_INTF_ALL_MSK, 2028 RTW_PWR_ADDR_MAC, 2029 RTW_PWR_CMD_WRITE, BIT(6), 0}, 2030 {0x0049, 2031 RTW_PWR_CUT_ALL_MSK, 2032 RTW_PWR_INTF_ALL_MSK, 2033 RTW_PWR_ADDR_MAC, 2034 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)}, 2035 {0x0063, 2036 RTW_PWR_CUT_ALL_MSK, 2037 RTW_PWR_INTF_ALL_MSK, 2038 RTW_PWR_ADDR_MAC, 2039 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)}, 2040 {0x0062, 2041 RTW_PWR_CUT_ALL_MSK, 2042 RTW_PWR_INTF_ALL_MSK, 2043 RTW_PWR_ADDR_MAC, 2044 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2045 {0x0058, 2046 RTW_PWR_CUT_ALL_MSK, 2047 RTW_PWR_INTF_ALL_MSK, 2048 RTW_PWR_ADDR_MAC, 2049 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2050 {0x005A, 2051 RTW_PWR_CUT_ALL_MSK, 2052 RTW_PWR_INTF_ALL_MSK, 2053 RTW_PWR_ADDR_MAC, 2054 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)}, 2055 {0x002E, 2056 RTW_PWR_CUT_ALL_MSK, 2057 RTW_PWR_INTF_ALL_MSK, 2058 RTW_PWR_ADDR_MAC, 2059 RTW_PWR_CMD_WRITE, 0xFF, 0x82}, 2060 {0x0010, 2061 RTW_PWR_CUT_ALL_MSK, 2062 RTW_PWR_INTF_ALL_MSK, 2063 RTW_PWR_ADDR_MAC, 2064 RTW_PWR_CMD_WRITE, BIT(6), BIT(6)}, 2065 {0xFFFF, 2066 RTW_PWR_CUT_ALL_MSK, 2067 RTW_PWR_INTF_ALL_MSK, 2068 0, 2069 RTW_PWR_CMD_END, 0, 0}, 2070 }; 2071 2072 static const struct rtw_pwr_seq_cmd trans_act_to_lps_8821a[] = { 2073 {0x0301, 2074 RTW_PWR_CUT_ALL_MSK, 2075 RTW_PWR_INTF_PCI_MSK, 2076 RTW_PWR_ADDR_MAC, 2077 RTW_PWR_CMD_WRITE, 0xFF, 0xFF}, 2078 {0x0522, 2079 RTW_PWR_CUT_ALL_MSK, 2080 RTW_PWR_INTF_ALL_MSK, 2081 RTW_PWR_ADDR_MAC, 2082 RTW_PWR_CMD_WRITE, 0xFF, 0xFF}, 2083 {0x05F8, 2084 RTW_PWR_CUT_ALL_MSK, 2085 RTW_PWR_INTF_ALL_MSK, 2086 RTW_PWR_ADDR_MAC, 2087 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2088 {0x05F9, 2089 RTW_PWR_CUT_ALL_MSK, 2090 RTW_PWR_INTF_ALL_MSK, 2091 RTW_PWR_ADDR_MAC, 2092 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2093 {0x05FA, 2094 RTW_PWR_CUT_ALL_MSK, 2095 RTW_PWR_INTF_ALL_MSK, 2096 RTW_PWR_ADDR_MAC, 2097 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2098 {0x05FB, 2099 RTW_PWR_CUT_ALL_MSK, 2100 RTW_PWR_INTF_ALL_MSK, 2101 RTW_PWR_ADDR_MAC, 2102 RTW_PWR_CMD_POLLING, 0xFF, 0}, 2103 {0x0002, 2104 RTW_PWR_CUT_ALL_MSK, 2105 RTW_PWR_INTF_ALL_MSK, 2106 RTW_PWR_ADDR_MAC, 2107 RTW_PWR_CMD_WRITE, BIT(0), 0}, 2108 {0x0002, 2109 RTW_PWR_CUT_ALL_MSK, 2110 RTW_PWR_INTF_ALL_MSK, 2111 RTW_PWR_ADDR_MAC, 2112 RTW_PWR_CMD_DELAY, 0, RTW_PWR_DELAY_US}, 2113 {0x0002, 2114 RTW_PWR_CUT_ALL_MSK, 2115 RTW_PWR_INTF_ALL_MSK, 2116 RTW_PWR_ADDR_MAC, 2117 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2118 {0x0100, 2119 RTW_PWR_CUT_ALL_MSK, 2120 RTW_PWR_INTF_ALL_MSK, 2121 RTW_PWR_ADDR_MAC, 2122 RTW_PWR_CMD_WRITE, 0xFF, 0x03}, 2123 {0x0101, 2124 RTW_PWR_CUT_ALL_MSK, 2125 RTW_PWR_INTF_ALL_MSK, 2126 RTW_PWR_ADDR_MAC, 2127 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2128 {0x0093, 2129 RTW_PWR_CUT_ALL_MSK, 2130 RTW_PWR_INTF_SDIO_MSK, 2131 RTW_PWR_ADDR_MAC, 2132 RTW_PWR_CMD_WRITE, 0xFF, 0x00}, 2133 {0x0553, 2134 RTW_PWR_CUT_ALL_MSK, 2135 RTW_PWR_INTF_ALL_MSK, 2136 RTW_PWR_ADDR_MAC, 2137 RTW_PWR_CMD_WRITE, BIT(5), BIT(5)}, 2138 {0xFFFF, 2139 RTW_PWR_CUT_ALL_MSK, 2140 RTW_PWR_INTF_ALL_MSK, 2141 0, 2142 RTW_PWR_CMD_END, 0, 0}, 2143 }; 2144 2145 static const struct rtw_pwr_seq_cmd trans_act_to_cardemu_8821a[] = { 2146 {0x001F, 2147 RTW_PWR_CUT_ALL_MSK, 2148 RTW_PWR_INTF_ALL_MSK, 2149 RTW_PWR_ADDR_MAC, 2150 RTW_PWR_CMD_WRITE, 0xFF, 0}, 2151 {0x004F, 2152 RTW_PWR_CUT_ALL_MSK, 2153 RTW_PWR_INTF_ALL_MSK, 2154 RTW_PWR_ADDR_MAC, 2155 RTW_PWR_CMD_WRITE, BIT(0), 0}, 2156 {0x0049, 2157 RTW_PWR_CUT_ALL_MSK, 2158 RTW_PWR_INTF_ALL_MSK, 2159 RTW_PWR_ADDR_MAC, 2160 RTW_PWR_CMD_WRITE, BIT(1), 0}, 2161 {0x0006, 2162 RTW_PWR_CUT_ALL_MSK, 2163 RTW_PWR_INTF_USB_MSK, 2164 RTW_PWR_ADDR_MAC, 2165 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2166 {0x0005, 2167 RTW_PWR_CUT_ALL_MSK, 2168 RTW_PWR_INTF_ALL_MSK, 2169 RTW_PWR_ADDR_MAC, 2170 RTW_PWR_CMD_WRITE, BIT(1), BIT(1)}, 2171 {0x0005, 2172 RTW_PWR_CUT_ALL_MSK, 2173 RTW_PWR_INTF_ALL_MSK, 2174 RTW_PWR_ADDR_MAC, 2175 RTW_PWR_CMD_POLLING, BIT(1), 0}, 2176 {0x0000, 2177 RTW_PWR_CUT_ALL_MSK, 2178 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 2179 RTW_PWR_ADDR_MAC, 2180 RTW_PWR_CMD_WRITE, BIT(5), BIT(5)}, 2181 {0x0020, 2182 RTW_PWR_CUT_ALL_MSK, 2183 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 2184 RTW_PWR_ADDR_MAC, 2185 RTW_PWR_CMD_WRITE, BIT(0), 0}, 2186 {0xFFFF, 2187 RTW_PWR_CUT_ALL_MSK, 2188 RTW_PWR_INTF_ALL_MSK, 2189 0, 2190 RTW_PWR_CMD_END, 0, 0}, 2191 }; 2192 2193 static const struct rtw_pwr_seq_cmd trans_cardemu_to_carddis_8821a[] = { 2194 {0x0007, 2195 RTW_PWR_CUT_ALL_MSK, 2196 RTW_PWR_INTF_SDIO_MSK, 2197 RTW_PWR_ADDR_MAC, 2198 RTW_PWR_CMD_WRITE, 0xFF, 0x20}, 2199 {0x0005, 2200 RTW_PWR_CUT_ALL_MSK, 2201 RTW_PWR_INTF_USB_MSK | RTW_PWR_INTF_SDIO_MSK, 2202 RTW_PWR_ADDR_MAC, 2203 RTW_PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, 2204 {0x0005, 2205 RTW_PWR_CUT_ALL_MSK, 2206 RTW_PWR_INTF_PCI_MSK, 2207 RTW_PWR_ADDR_MAC, 2208 RTW_PWR_CMD_WRITE, BIT(2), BIT(2)}, 2209 {0x004A, 2210 RTW_PWR_CUT_ALL_MSK, 2211 RTW_PWR_INTF_USB_MSK, 2212 RTW_PWR_ADDR_MAC, 2213 RTW_PWR_CMD_WRITE, BIT(0), 1}, 2214 {0x0023, 2215 RTW_PWR_CUT_ALL_MSK, 2216 RTW_PWR_INTF_SDIO_MSK, 2217 RTW_PWR_ADDR_MAC, 2218 RTW_PWR_CMD_WRITE, BIT(4), BIT(4)}, 2219 {0x0086, 2220 RTW_PWR_CUT_ALL_MSK, 2221 RTW_PWR_INTF_SDIO_MSK, 2222 RTW_PWR_ADDR_SDIO, 2223 RTW_PWR_CMD_WRITE, BIT(0), BIT(0)}, 2224 {0x0086, 2225 RTW_PWR_CUT_ALL_MSK, 2226 RTW_PWR_INTF_SDIO_MSK, 2227 RTW_PWR_ADDR_SDIO, 2228 RTW_PWR_CMD_POLLING, BIT(1), 0}, 2229 {0xFFFF, 2230 RTW_PWR_CUT_ALL_MSK, 2231 RTW_PWR_INTF_ALL_MSK, 2232 0, 2233 RTW_PWR_CMD_END, 0, 0}, 2234 }; 2235 2236 const struct rtw_pwr_seq_cmd * const card_enable_flow_8821a[] = { 2237 trans_carddis_to_cardemu_8821a, 2238 trans_cardemu_to_act_8821a, 2239 NULL 2240 }; 2241 2242 const struct rtw_pwr_seq_cmd * const enter_lps_flow_8821a[] = { 2243 trans_act_to_lps_8821a, 2244 NULL 2245 }; 2246 2247 const struct rtw_pwr_seq_cmd * const card_disable_flow_8821a[] = { 2248 trans_act_to_cardemu_8821a, 2249 trans_cardemu_to_carddis_8821a, 2250 NULL 2251 }; 2252 2253 static const u8 rtw8821a_pwrtrk_5gb_n[][RTW_PWR_TRK_TBL_SZ] = { 2254 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2255 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2256 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2257 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2258 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2259 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2260 }; 2261 2262 static const u8 rtw8821a_pwrtrk_5gb_p[][RTW_PWR_TRK_TBL_SZ] = { 2263 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2264 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2265 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2266 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2267 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2268 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2269 }; 2270 2271 static const u8 rtw8821a_pwrtrk_5ga_n[][RTW_PWR_TRK_TBL_SZ] = { 2272 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2273 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2274 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2275 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2276 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2277 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2278 }; 2279 2280 static const u8 rtw8821a_pwrtrk_5ga_p[][RTW_PWR_TRK_TBL_SZ] = { 2281 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2282 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2283 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2284 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2285 {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 2286 15, 16, 16, 16, 16, 16, 16, 16, 16}, 2287 }; 2288 2289 static const u8 rtw8821a_pwrtrk_2gb_n[] = { 2290 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2291 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10 2292 }; 2293 2294 static const u8 rtw8821a_pwrtrk_2gb_p[] = { 2295 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 2296 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12 2297 }; 2298 2299 static const u8 rtw8821a_pwrtrk_2ga_n[] = { 2300 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2301 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10 2302 }; 2303 2304 static const u8 rtw8821a_pwrtrk_2ga_p[] = { 2305 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 2306 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12 2307 }; 2308 2309 static const u8 rtw8821a_pwrtrk_2g_cck_b_n[] = { 2310 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2311 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10 2312 }; 2313 2314 static const u8 rtw8821a_pwrtrk_2g_cck_b_p[] = { 2315 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 2316 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12 2317 }; 2318 2319 static const u8 rtw8821a_pwrtrk_2g_cck_a_n[] = { 2320 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 2321 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10 2322 }; 2323 2324 static const u8 rtw8821a_pwrtrk_2g_cck_a_p[] = { 2325 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 2326 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12 2327 }; 2328 2329 const struct rtw_pwr_track_tbl rtw8821a_rtw_pwr_track_tbl = { 2330 .pwrtrk_5gb_n[0] = rtw8821a_pwrtrk_5gb_n[0], 2331 .pwrtrk_5gb_n[1] = rtw8821a_pwrtrk_5gb_n[1], 2332 .pwrtrk_5gb_n[2] = rtw8821a_pwrtrk_5gb_n[2], 2333 .pwrtrk_5gb_p[0] = rtw8821a_pwrtrk_5gb_p[0], 2334 .pwrtrk_5gb_p[1] = rtw8821a_pwrtrk_5gb_p[1], 2335 .pwrtrk_5gb_p[2] = rtw8821a_pwrtrk_5gb_p[2], 2336 .pwrtrk_5ga_n[0] = rtw8821a_pwrtrk_5ga_n[0], 2337 .pwrtrk_5ga_n[1] = rtw8821a_pwrtrk_5ga_n[1], 2338 .pwrtrk_5ga_n[2] = rtw8821a_pwrtrk_5ga_n[2], 2339 .pwrtrk_5ga_p[0] = rtw8821a_pwrtrk_5ga_p[0], 2340 .pwrtrk_5ga_p[1] = rtw8821a_pwrtrk_5ga_p[1], 2341 .pwrtrk_5ga_p[2] = rtw8821a_pwrtrk_5ga_p[2], 2342 .pwrtrk_2gb_n = rtw8821a_pwrtrk_2gb_n, 2343 .pwrtrk_2gb_p = rtw8821a_pwrtrk_2gb_p, 2344 .pwrtrk_2ga_n = rtw8821a_pwrtrk_2ga_n, 2345 .pwrtrk_2ga_p = rtw8821a_pwrtrk_2ga_p, 2346 .pwrtrk_2g_cckb_n = rtw8821a_pwrtrk_2g_cck_b_n, 2347 .pwrtrk_2g_cckb_p = rtw8821a_pwrtrk_2g_cck_b_p, 2348 .pwrtrk_2g_ccka_n = rtw8821a_pwrtrk_2g_cck_a_n, 2349 .pwrtrk_2g_ccka_p = rtw8821a_pwrtrk_2g_cck_a_p, 2350 }; 2351