1 /* 2 * Copyright (c) 2010 Broadcom Corporation 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 11 * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 13 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 #include <types.h> 18 #include "phytbl_lcn.h" 19 20 static const u32 dot11lcn_gain_tbl_rev0[] = { 21 0x00000000, 22 0x00000000, 23 0x00000000, 24 0x00000000, 25 0x00000000, 26 0x00000000, 27 0x00000000, 28 0x00000000, 29 0x00000004, 30 0x00000000, 31 0x00000004, 32 0x00000008, 33 0x00000001, 34 0x00000005, 35 0x00000009, 36 0x0000000d, 37 0x0000004d, 38 0x0000008d, 39 0x0000000d, 40 0x0000004d, 41 0x0000008d, 42 0x000000cd, 43 0x0000004f, 44 0x0000008f, 45 0x000000cf, 46 0x000000d3, 47 0x00000113, 48 0x00000513, 49 0x00000913, 50 0x00000953, 51 0x00000d53, 52 0x00001153, 53 0x00001193, 54 0x00005193, 55 0x00009193, 56 0x0000d193, 57 0x00011193, 58 0x00000000, 59 0x00000000, 60 0x00000000, 61 0x00000000, 62 0x00000000, 63 0x00000000, 64 0x00000004, 65 0x00000000, 66 0x00000004, 67 0x00000008, 68 0x00000001, 69 0x00000005, 70 0x00000009, 71 0x0000000d, 72 0x0000004d, 73 0x0000008d, 74 0x0000000d, 75 0x0000004d, 76 0x0000008d, 77 0x000000cd, 78 0x0000004f, 79 0x0000008f, 80 0x000000cf, 81 0x000000d3, 82 0x00000113, 83 0x00000513, 84 0x00000913, 85 0x00000953, 86 0x00000d53, 87 0x00001153, 88 0x00005153, 89 0x00009153, 90 0x0000d153, 91 0x00011153, 92 0x00015153, 93 0x00019153, 94 0x0001d153, 95 0x00000000, 96 0x00000000, 97 0x00000000, 98 0x00000000, 99 0x00000000, 100 0x00000000, 101 0x00000000, 102 0x00000000, 103 0x00000000, 104 0x00000000, 105 0x00000000, 106 0x00000000, 107 0x00000000, 108 0x00000000, 109 0x00000000, 110 0x00000000, 111 0x00000000, 112 0x00000000, 113 0x00000000, 114 0x00000000, 115 0x00000000, 116 0x00000000, 117 }; 118 119 static const u32 dot11lcn_gain_tbl_rev1[] = { 120 0x00000000, 121 0x00000000, 122 0x00000000, 123 0x00000000, 124 0x00000000, 125 0x00000000, 126 0x00000000, 127 0x00000000, 128 0x00000008, 129 0x00000004, 130 0x00000008, 131 0x00000001, 132 0x00000005, 133 0x00000009, 134 0x0000000D, 135 0x00000011, 136 0x00000051, 137 0x00000091, 138 0x00000011, 139 0x00000051, 140 0x00000091, 141 0x000000d1, 142 0x00000053, 143 0x00000093, 144 0x000000d3, 145 0x000000d7, 146 0x00000117, 147 0x00000517, 148 0x00000917, 149 0x00000957, 150 0x00000d57, 151 0x00001157, 152 0x00001197, 153 0x00005197, 154 0x00009197, 155 0x0000d197, 156 0x00011197, 157 0x00000000, 158 0x00000000, 159 0x00000000, 160 0x00000000, 161 0x00000000, 162 0x00000000, 163 0x00000008, 164 0x00000004, 165 0x00000008, 166 0x00000001, 167 0x00000005, 168 0x00000009, 169 0x0000000D, 170 0x00000011, 171 0x00000051, 172 0x00000091, 173 0x00000011, 174 0x00000051, 175 0x00000091, 176 0x000000d1, 177 0x00000053, 178 0x00000093, 179 0x000000d3, 180 0x000000d7, 181 0x00000117, 182 0x00000517, 183 0x00000917, 184 0x00000957, 185 0x00000d57, 186 0x00001157, 187 0x00005157, 188 0x00009157, 189 0x0000d157, 190 0x00011157, 191 0x00015157, 192 0x00019157, 193 0x0001d157, 194 0x00000000, 195 0x00000000, 196 0x00000000, 197 0x00000000, 198 0x00000000, 199 0x00000000, 200 0x00000000, 201 0x00000000, 202 0x00000000, 203 0x00000000, 204 0x00000000, 205 0x00000000, 206 0x00000000, 207 0x00000000, 208 0x00000000, 209 0x00000000, 210 0x00000000, 211 0x00000000, 212 0x00000000, 213 0x00000000, 214 0x00000000, 215 0x00000000, 216 }; 217 218 static const u16 dot11lcn_aux_gain_idx_tbl_rev0[] = { 219 0x0401, 220 0x0402, 221 0x0403, 222 0x0404, 223 0x0405, 224 0x0406, 225 0x0407, 226 0x0408, 227 0x0409, 228 0x040a, 229 0x058b, 230 0x058c, 231 0x058d, 232 0x058e, 233 0x058f, 234 0x0090, 235 0x0091, 236 0x0092, 237 0x0193, 238 0x0194, 239 0x0195, 240 0x0196, 241 0x0197, 242 0x0198, 243 0x0199, 244 0x019a, 245 0x019b, 246 0x019c, 247 0x019d, 248 0x019e, 249 0x019f, 250 0x01a0, 251 0x01a1, 252 0x01a2, 253 0x01a3, 254 0x01a4, 255 0x01a5, 256 0x0000, 257 }; 258 259 static const u32 dot11lcn_gain_idx_tbl_rev0[] = { 260 0x00000000, 261 0x00000000, 262 0x10000000, 263 0x00000000, 264 0x20000000, 265 0x00000000, 266 0x30000000, 267 0x00000000, 268 0x40000000, 269 0x00000000, 270 0x50000000, 271 0x00000000, 272 0x60000000, 273 0x00000000, 274 0x70000000, 275 0x00000000, 276 0x80000000, 277 0x00000000, 278 0x90000000, 279 0x00000008, 280 0xa0000000, 281 0x00000008, 282 0xb0000000, 283 0x00000008, 284 0xc0000000, 285 0x00000008, 286 0xd0000000, 287 0x00000008, 288 0xe0000000, 289 0x00000008, 290 0xf0000000, 291 0x00000008, 292 0x00000000, 293 0x00000009, 294 0x10000000, 295 0x00000009, 296 0x20000000, 297 0x00000019, 298 0x30000000, 299 0x00000019, 300 0x40000000, 301 0x00000019, 302 0x50000000, 303 0x00000019, 304 0x60000000, 305 0x00000019, 306 0x70000000, 307 0x00000019, 308 0x80000000, 309 0x00000019, 310 0x90000000, 311 0x00000019, 312 0xa0000000, 313 0x00000019, 314 0xb0000000, 315 0x00000019, 316 0xc0000000, 317 0x00000019, 318 0xd0000000, 319 0x00000019, 320 0xe0000000, 321 0x00000019, 322 0xf0000000, 323 0x00000019, 324 0x00000000, 325 0x0000001a, 326 0x10000000, 327 0x0000001a, 328 0x20000000, 329 0x0000001a, 330 0x30000000, 331 0x0000001a, 332 0x40000000, 333 0x0000001a, 334 0x50000000, 335 0x00000002, 336 0x60000000, 337 0x00000002, 338 0x70000000, 339 0x00000002, 340 0x80000000, 341 0x00000002, 342 0x90000000, 343 0x00000002, 344 0xa0000000, 345 0x00000002, 346 0xb0000000, 347 0x00000002, 348 0xc0000000, 349 0x0000000a, 350 0xd0000000, 351 0x0000000a, 352 0xe0000000, 353 0x0000000a, 354 0xf0000000, 355 0x0000000a, 356 0x00000000, 357 0x0000000b, 358 0x10000000, 359 0x0000000b, 360 0x20000000, 361 0x0000000b, 362 0x30000000, 363 0x0000000b, 364 0x40000000, 365 0x0000000b, 366 0x50000000, 367 0x0000001b, 368 0x60000000, 369 0x0000001b, 370 0x70000000, 371 0x0000001b, 372 0x80000000, 373 0x0000001b, 374 0x90000000, 375 0x0000001b, 376 0xa0000000, 377 0x0000001b, 378 0xb0000000, 379 0x0000001b, 380 0xc0000000, 381 0x0000001b, 382 0xd0000000, 383 0x0000001b, 384 0xe0000000, 385 0x0000001b, 386 0xf0000000, 387 0x0000001b, 388 0x00000000, 389 0x0000001c, 390 0x10000000, 391 0x0000001c, 392 0x20000000, 393 0x0000001c, 394 0x30000000, 395 0x0000001c, 396 0x40000000, 397 0x0000001c, 398 0x50000000, 399 0x0000001c, 400 0x60000000, 401 0x0000001c, 402 0x70000000, 403 0x0000001c, 404 0x80000000, 405 0x0000001c, 406 0x90000000, 407 0x0000001c, 408 }; 409 410 static const u16 dot11lcn_aux_gain_idx_tbl_2G[] = { 411 0x0000, 412 0x0000, 413 0x0000, 414 0x0000, 415 0x0001, 416 0x0080, 417 0x0081, 418 0x0100, 419 0x0101, 420 0x0180, 421 0x0181, 422 0x0182, 423 0x0183, 424 0x0184, 425 0x0185, 426 0x0186, 427 0x0187, 428 0x0188, 429 0x0285, 430 0x0289, 431 0x028a, 432 0x028b, 433 0x028c, 434 0x028d, 435 0x028e, 436 0x028f, 437 0x0290, 438 0x0291, 439 0x0292, 440 0x0293, 441 0x0294, 442 0x0295, 443 0x0296, 444 0x0297, 445 0x0298, 446 0x0299, 447 0x029a, 448 0x0000 449 }; 450 451 static const u8 dot11lcn_gain_val_tbl_2G[] = { 452 0xfc, 453 0x02, 454 0x08, 455 0x0e, 456 0x13, 457 0x1b, 458 0xfc, 459 0x02, 460 0x08, 461 0x0e, 462 0x13, 463 0x1b, 464 0xfc, 465 0x00, 466 0x0c, 467 0x03, 468 0xeb, 469 0xfe, 470 0x07, 471 0x0b, 472 0x0f, 473 0xfb, 474 0xfe, 475 0x01, 476 0x05, 477 0x08, 478 0x0b, 479 0x0e, 480 0x11, 481 0x14, 482 0x17, 483 0x00, 484 0x00, 485 0x00, 486 0x00, 487 0x00, 488 0x00, 489 0x00, 490 0x03, 491 0x06, 492 0x09, 493 0x0c, 494 0x0f, 495 0x12, 496 0x00, 497 0x00, 498 0x00, 499 0x00, 500 0x00, 501 0x00, 502 0x00, 503 0x00, 504 0x00, 505 0x00, 506 0x03, 507 0x06, 508 0x09, 509 0x0c, 510 0x0f, 511 0x12, 512 0x15, 513 0x18, 514 0x1b, 515 0x00, 516 0x00, 517 0x00, 518 0x00, 519 0x00 520 }; 521 522 static const u32 dot11lcn_gain_idx_tbl_2G[] = { 523 0x00000000, 524 0x00000000, 525 0x00000000, 526 0x00000000, 527 0x00000000, 528 0x00000000, 529 0x00000000, 530 0x00000000, 531 0x10000000, 532 0x00000000, 533 0x00000000, 534 0x00000008, 535 0x10000000, 536 0x00000008, 537 0x00000000, 538 0x00000010, 539 0x10000000, 540 0x00000010, 541 0x00000000, 542 0x00000018, 543 0x10000000, 544 0x00000018, 545 0x20000000, 546 0x00000018, 547 0x30000000, 548 0x00000018, 549 0x40000000, 550 0x00000018, 551 0x50000000, 552 0x00000018, 553 0x60000000, 554 0x00000018, 555 0x70000000, 556 0x00000018, 557 0x80000000, 558 0x00000018, 559 0x50000000, 560 0x00000028, 561 0x90000000, 562 0x00000028, 563 0xa0000000, 564 0x00000028, 565 0xb0000000, 566 0x00000028, 567 0xc0000000, 568 0x00000028, 569 0xd0000000, 570 0x00000028, 571 0xe0000000, 572 0x00000028, 573 0xf0000000, 574 0x00000028, 575 0x00000000, 576 0x00000029, 577 0x10000000, 578 0x00000029, 579 0x20000000, 580 0x00000029, 581 0x30000000, 582 0x00000029, 583 0x40000000, 584 0x00000029, 585 0x50000000, 586 0x00000029, 587 0x60000000, 588 0x00000029, 589 0x70000000, 590 0x00000029, 591 0x80000000, 592 0x00000029, 593 0x90000000, 594 0x00000029, 595 0xa0000000, 596 0x00000029, 597 0x00000000, 598 0x00000000, 599 0x00000000, 600 0x00000000, 601 0x10000000, 602 0x00000000, 603 0x00000000, 604 0x00000008, 605 0x10000000, 606 0x00000008, 607 0x00000000, 608 0x00000010, 609 0x10000000, 610 0x00000010, 611 0x00000000, 612 0x00000018, 613 0x10000000, 614 0x00000018, 615 0x20000000, 616 0x00000018, 617 0x30000000, 618 0x00000018, 619 0x40000000, 620 0x00000018, 621 0x50000000, 622 0x00000018, 623 0x60000000, 624 0x00000018, 625 0x70000000, 626 0x00000018, 627 0x80000000, 628 0x00000018, 629 0x50000000, 630 0x00000028, 631 0x90000000, 632 0x00000028, 633 0xa0000000, 634 0x00000028, 635 0xb0000000, 636 0x00000028, 637 0xc0000000, 638 0x00000028, 639 0xd0000000, 640 0x00000028, 641 0xe0000000, 642 0x00000028, 643 0xf0000000, 644 0x00000028, 645 0x00000000, 646 0x00000029, 647 0x10000000, 648 0x00000029, 649 0x20000000, 650 0x00000029, 651 0x30000000, 652 0x00000029, 653 0x40000000, 654 0x00000029, 655 0x50000000, 656 0x00000029, 657 0x60000000, 658 0x00000029, 659 0x70000000, 660 0x00000029, 661 0x80000000, 662 0x00000029, 663 0x90000000, 664 0x00000029, 665 0xa0000000, 666 0x00000029, 667 0xb0000000, 668 0x00000029, 669 0xc0000000, 670 0x00000029, 671 0x00000000, 672 0x00000000, 673 0x00000000, 674 0x00000000 675 }; 676 677 static const u32 dot11lcn_gain_tbl_2G[] = { 678 0x00000000, 679 0x00000004, 680 0x00000008, 681 0x00000001, 682 0x00000005, 683 0x00000009, 684 0x0000000d, 685 0x0000004d, 686 0x0000008d, 687 0x00000049, 688 0x00000089, 689 0x000000c9, 690 0x0000004b, 691 0x0000008b, 692 0x000000cb, 693 0x000000cf, 694 0x0000010f, 695 0x0000050f, 696 0x0000090f, 697 0x0000094f, 698 0x00000d4f, 699 0x0000114f, 700 0x0000118f, 701 0x0000518f, 702 0x0000918f, 703 0x0000d18f, 704 0x0001118f, 705 0x0001518f, 706 0x0001918f, 707 0x00000000, 708 0x00000000, 709 0x00000000, 710 0x00000000, 711 0x00000000, 712 0x00000000, 713 0x00000000, 714 0x00000000, 715 0x00000000, 716 0x00000000, 717 0x00000000, 718 0x00000000, 719 0x00000000, 720 0x00000000, 721 0x00000000, 722 0x00000000, 723 0x00000000, 724 0x00000000, 725 0x00000000, 726 0x00000000, 727 0x00000000, 728 0x00000000, 729 0x00000000, 730 0x00000000, 731 0x00000000, 732 0x00000000, 733 0x00000000, 734 0x00000000, 735 0x00000000, 736 0x00000000, 737 0x00000000, 738 0x00000000, 739 0x00000000, 740 0x00000000, 741 0x00000000, 742 0x00000000, 743 0x00000000, 744 0x00000000, 745 0x00000000, 746 0x00000000, 747 0x00000000, 748 0x00000000, 749 0x00000000, 750 0x00000000, 751 0x00000000, 752 0x00000000, 753 0x00000000, 754 0x00000000, 755 0x00000000, 756 0x00000000, 757 0x00000000, 758 0x00000000, 759 0x00000000, 760 0x00000000, 761 0x00000000, 762 0x00000000, 763 0x00000000, 764 0x00000000, 765 0x00000000, 766 0x00000000, 767 0x00000000, 768 0x00000000, 769 0x00000000, 770 0x00000000, 771 0x00000000, 772 0x00000000, 773 0x00000000 774 }; 775 776 static const u32 dot11lcn_gain_tbl_extlna_2G[] = { 777 0x00000000, 778 0x00000004, 779 0x00000008, 780 0x00000001, 781 0x00000005, 782 0x00000009, 783 0x0000000d, 784 0x00000003, 785 0x00000007, 786 0x0000000b, 787 0x0000000f, 788 0x0000004f, 789 0x0000008f, 790 0x000000cf, 791 0x0000010f, 792 0x0000014f, 793 0x0000018f, 794 0x0000058f, 795 0x0000098f, 796 0x00000d8f, 797 0x00008000, 798 0x00008004, 799 0x00008008, 800 0x00008001, 801 0x00008005, 802 0x00008009, 803 0x0000800d, 804 0x00008003, 805 0x00008007, 806 0x0000800b, 807 0x0000800f, 808 0x0000804f, 809 0x0000808f, 810 0x000080cf, 811 0x0000810f, 812 0x0000814f, 813 0x0000818f, 814 0x0000858f, 815 0x0000898f, 816 0x00008d8f, 817 0x00000000, 818 0x00000000, 819 0x00000000, 820 0x00000000, 821 0x00000000, 822 0x00000000, 823 0x00000000, 824 0x00000000, 825 0x00000000, 826 0x00000000, 827 0x00000000, 828 0x00000000, 829 0x00000000, 830 0x00000000, 831 0x00000000, 832 0x00000000, 833 0x00000000, 834 0x00000000, 835 0x00000000, 836 0x00000000, 837 0x00000000, 838 0x00000000, 839 0x00000000, 840 0x00000000, 841 0x00000000, 842 0x00000000, 843 0x00000000, 844 0x00000000, 845 0x00000000, 846 0x00000000, 847 0x00000000, 848 0x00000000, 849 0x00000000, 850 0x00000000, 851 0x00000000, 852 0x00000000, 853 0x00000000, 854 0x00000000, 855 0x00000000, 856 0x00000000, 857 0x00000000, 858 0x00000000, 859 0x00000000, 860 0x00000000, 861 0x00000000, 862 0x00000000, 863 0x00000000, 864 0x00000000, 865 0x00000000, 866 0x00000000, 867 0x00000000, 868 0x00000000, 869 0x00000000, 870 0x00000000, 871 0x00000000, 872 0x00000000 873 }; 874 875 static const u16 dot11lcn_aux_gain_idx_tbl_extlna_2G[] = { 876 0x0400, 877 0x0400, 878 0x0400, 879 0x0400, 880 0x0400, 881 0x0400, 882 0x0400, 883 0x0400, 884 0x0400, 885 0x0401, 886 0x0402, 887 0x0403, 888 0x0404, 889 0x0483, 890 0x0484, 891 0x0485, 892 0x0486, 893 0x0583, 894 0x0584, 895 0x0585, 896 0x0587, 897 0x0588, 898 0x0589, 899 0x058a, 900 0x0687, 901 0x0688, 902 0x0689, 903 0x068a, 904 0x068b, 905 0x068c, 906 0x068d, 907 0x068e, 908 0x068f, 909 0x0690, 910 0x0691, 911 0x0692, 912 0x0693, 913 0x0000 914 }; 915 916 static const u8 dot11lcn_gain_val_tbl_extlna_2G[] = { 917 0xfc, 918 0x02, 919 0x08, 920 0x0e, 921 0x13, 922 0x1b, 923 0xfc, 924 0x02, 925 0x08, 926 0x0e, 927 0x13, 928 0x1b, 929 0xfc, 930 0x00, 931 0x0f, 932 0x03, 933 0xeb, 934 0xfe, 935 0x07, 936 0x0b, 937 0x0f, 938 0xfb, 939 0xfe, 940 0x01, 941 0x05, 942 0x08, 943 0x0b, 944 0x0e, 945 0x11, 946 0x14, 947 0x17, 948 0x00, 949 0x00, 950 0x00, 951 0x00, 952 0x00, 953 0x00, 954 0x00, 955 0x03, 956 0x06, 957 0x09, 958 0x0c, 959 0x0f, 960 0x12, 961 0x00, 962 0x00, 963 0x00, 964 0x00, 965 0x00, 966 0x00, 967 0x00, 968 0x00, 969 0x00, 970 0x00, 971 0x03, 972 0x06, 973 0x09, 974 0x0c, 975 0x0f, 976 0x12, 977 0x15, 978 0x18, 979 0x1b, 980 0x00, 981 0x00, 982 0x00, 983 0x00, 984 0x00 985 }; 986 987 static const u32 dot11lcn_gain_idx_tbl_extlna_2G[] = { 988 0x00000000, 989 0x00000040, 990 0x00000000, 991 0x00000040, 992 0x00000000, 993 0x00000040, 994 0x00000000, 995 0x00000040, 996 0x00000000, 997 0x00000040, 998 0x00000000, 999 0x00000040, 1000 0x00000000, 1001 0x00000040, 1002 0x00000000, 1003 0x00000040, 1004 0x00000000, 1005 0x00000040, 1006 0x10000000, 1007 0x00000040, 1008 0x20000000, 1009 0x00000040, 1010 0x30000000, 1011 0x00000040, 1012 0x40000000, 1013 0x00000040, 1014 0x30000000, 1015 0x00000048, 1016 0x40000000, 1017 0x00000048, 1018 0x50000000, 1019 0x00000048, 1020 0x60000000, 1021 0x00000048, 1022 0x30000000, 1023 0x00000058, 1024 0x40000000, 1025 0x00000058, 1026 0x50000000, 1027 0x00000058, 1028 0x70000000, 1029 0x00000058, 1030 0x80000000, 1031 0x00000058, 1032 0x90000000, 1033 0x00000058, 1034 0xa0000000, 1035 0x00000058, 1036 0x70000000, 1037 0x00000068, 1038 0x80000000, 1039 0x00000068, 1040 0x90000000, 1041 0x00000068, 1042 0xa0000000, 1043 0x00000068, 1044 0xb0000000, 1045 0x00000068, 1046 0xc0000000, 1047 0x00000068, 1048 0xd0000000, 1049 0x00000068, 1050 0xe0000000, 1051 0x00000068, 1052 0xf0000000, 1053 0x00000068, 1054 0x00000000, 1055 0x00000069, 1056 0x10000000, 1057 0x00000069, 1058 0x20000000, 1059 0x00000069, 1060 0x30000000, 1061 0x00000069, 1062 0x40000000, 1063 0x00000041, 1064 0x40000000, 1065 0x00000041, 1066 0x40000000, 1067 0x00000041, 1068 0x40000000, 1069 0x00000041, 1070 0x40000000, 1071 0x00000041, 1072 0x40000000, 1073 0x00000041, 1074 0x40000000, 1075 0x00000041, 1076 0x40000000, 1077 0x00000041, 1078 0x40000000, 1079 0x00000041, 1080 0x50000000, 1081 0x00000041, 1082 0x60000000, 1083 0x00000041, 1084 0x70000000, 1085 0x00000041, 1086 0x80000000, 1087 0x00000041, 1088 0x70000000, 1089 0x00000049, 1090 0x80000000, 1091 0x00000049, 1092 0x90000000, 1093 0x00000049, 1094 0xa0000000, 1095 0x00000049, 1096 0x70000000, 1097 0x00000059, 1098 0x80000000, 1099 0x00000059, 1100 0x90000000, 1101 0x00000059, 1102 0xb0000000, 1103 0x00000059, 1104 0xc0000000, 1105 0x00000059, 1106 0xd0000000, 1107 0x00000059, 1108 0xe0000000, 1109 0x00000059, 1110 0xb0000000, 1111 0x00000069, 1112 0xc0000000, 1113 0x00000069, 1114 0xd0000000, 1115 0x00000069, 1116 0xe0000000, 1117 0x00000069, 1118 0xf0000000, 1119 0x00000069, 1120 0x00000000, 1121 0x0000006a, 1122 0x10000000, 1123 0x0000006a, 1124 0x20000000, 1125 0x0000006a, 1126 0x30000000, 1127 0x0000006a, 1128 0x40000000, 1129 0x0000006a, 1130 0x50000000, 1131 0x0000006a, 1132 0x60000000, 1133 0x0000006a, 1134 0x70000000, 1135 0x0000006a, 1136 0x00000000, 1137 0x00000000, 1138 0x00000000, 1139 0x00000000 1140 }; 1141 1142 static const u32 dot11lcn_aux_gain_idx_tbl_5G[] = { 1143 0x0000, 1144 0x0000, 1145 0x0000, 1146 0x0000, 1147 0x0001, 1148 0x0002, 1149 0x0003, 1150 0x0004, 1151 0x0083, 1152 0x0084, 1153 0x0085, 1154 0x0086, 1155 0x0087, 1156 0x0186, 1157 0x0187, 1158 0x0188, 1159 0x0189, 1160 0x018a, 1161 0x018b, 1162 0x018c, 1163 0x018d, 1164 0x018e, 1165 0x018f, 1166 0x0190, 1167 0x0191, 1168 0x0192, 1169 0x0193, 1170 0x0194, 1171 0x0195, 1172 0x0196, 1173 0x0197, 1174 0x0198, 1175 0x0199, 1176 0x019a, 1177 0x019b, 1178 0x019c, 1179 0x019d, 1180 0x0000 1181 }; 1182 1183 static const u32 dot11lcn_gain_val_tbl_5G[] = { 1184 0xf7, 1185 0xfd, 1186 0x00, 1187 0x04, 1188 0x04, 1189 0x04, 1190 0xf7, 1191 0xfd, 1192 0x00, 1193 0x04, 1194 0x04, 1195 0x04, 1196 0xf6, 1197 0x00, 1198 0x0c, 1199 0x03, 1200 0xeb, 1201 0xfe, 1202 0x06, 1203 0x0a, 1204 0x10, 1205 0x00, 1206 0x03, 1207 0x06, 1208 0x09, 1209 0x0c, 1210 0x0f, 1211 0x12, 1212 0x15, 1213 0x18, 1214 0x1b, 1215 0x00, 1216 0x00, 1217 0x00, 1218 0x00, 1219 0x00, 1220 0x00, 1221 0x00, 1222 0x03, 1223 0x06, 1224 0x09, 1225 0x0c, 1226 0x0f, 1227 0x12, 1228 0x00, 1229 0x00, 1230 0x00, 1231 0x00, 1232 0x00, 1233 0x00, 1234 0x00, 1235 0x00, 1236 0x00, 1237 0x00, 1238 0x03, 1239 0x06, 1240 0x09, 1241 0x0c, 1242 0x0f, 1243 0x12, 1244 0x15, 1245 0x18, 1246 0x1b, 1247 0x00, 1248 0x00, 1249 0x00, 1250 0x00, 1251 0x00 1252 }; 1253 1254 static const u32 dot11lcn_gain_idx_tbl_5G[] = { 1255 0x00000000, 1256 0x00000000, 1257 0x00000000, 1258 0x00000000, 1259 0x00000000, 1260 0x00000000, 1261 0x00000000, 1262 0x00000000, 1263 0x10000000, 1264 0x00000000, 1265 0x20000000, 1266 0x00000000, 1267 0x30000000, 1268 0x00000000, 1269 0x40000000, 1270 0x00000000, 1271 0x30000000, 1272 0x00000008, 1273 0x40000000, 1274 0x00000008, 1275 0x50000000, 1276 0x00000008, 1277 0x60000000, 1278 0x00000008, 1279 0x70000000, 1280 0x00000008, 1281 0x60000000, 1282 0x00000018, 1283 0x70000000, 1284 0x00000018, 1285 0x80000000, 1286 0x00000018, 1287 0x90000000, 1288 0x00000018, 1289 0xa0000000, 1290 0x00000018, 1291 0xb0000000, 1292 0x00000018, 1293 0xc0000000, 1294 0x00000018, 1295 0xd0000000, 1296 0x00000018, 1297 0xe0000000, 1298 0x00000018, 1299 0xf0000000, 1300 0x00000018, 1301 0x00000000, 1302 0x00000019, 1303 0x10000000, 1304 0x00000019, 1305 0x20000000, 1306 0x00000019, 1307 0x30000000, 1308 0x00000019, 1309 0x40000000, 1310 0x00000019, 1311 0x50000000, 1312 0x00000019, 1313 0x60000000, 1314 0x00000019, 1315 0x70000000, 1316 0x00000019, 1317 0x80000000, 1318 0x00000019, 1319 0x90000000, 1320 0x00000019, 1321 0xa0000000, 1322 0x00000019, 1323 0xb0000000, 1324 0x00000019, 1325 0xc0000000, 1326 0x00000019, 1327 0xd0000000, 1328 0x00000019, 1329 0x00000000, 1330 0x00000000, 1331 0x00000000, 1332 0x00000000, 1333 0x00000000, 1334 0x00000000, 1335 0x00000000, 1336 0x00000000, 1337 0x00000000, 1338 0x00000000, 1339 0x00000000, 1340 0x00000000, 1341 0x00000000, 1342 0x00000000, 1343 0x00000000, 1344 0x00000000, 1345 0x00000000, 1346 0x00000000, 1347 0x00000000, 1348 0x00000000, 1349 0x00000000, 1350 0x00000000, 1351 0x00000000, 1352 0x00000000, 1353 0x00000000, 1354 0x00000000, 1355 0x00000000, 1356 0x00000000, 1357 0x00000000, 1358 0x00000000, 1359 0x00000000, 1360 0x00000000, 1361 0x00000000, 1362 0x00000000, 1363 0x00000000, 1364 0x00000000, 1365 0x00000000, 1366 0x00000000, 1367 0x00000000, 1368 0x00000000, 1369 0x00000000, 1370 0x00000000, 1371 0x00000000, 1372 0x00000000, 1373 0x00000000, 1374 0x00000000, 1375 0x00000000, 1376 0x00000000, 1377 0x00000000, 1378 0x00000000, 1379 0x00000000, 1380 0x00000000, 1381 0x00000000, 1382 0x00000000, 1383 0x00000000, 1384 0x00000000, 1385 0x00000000, 1386 0x00000000, 1387 0x00000000, 1388 0x00000000, 1389 0x00000000, 1390 0x00000000, 1391 0x00000000, 1392 0x00000000, 1393 0x00000000, 1394 0x00000000, 1395 0x00000000, 1396 0x00000000, 1397 0x00000000, 1398 0x00000000, 1399 0x00000000, 1400 0x00000000, 1401 0x00000000, 1402 0x00000000, 1403 0x00000000, 1404 0x00000000, 1405 0x00000000, 1406 0x00000000 1407 }; 1408 1409 static const u32 dot11lcn_gain_tbl_5G[] = { 1410 0x00000000, 1411 0x00000040, 1412 0x00000080, 1413 0x00000001, 1414 0x00000005, 1415 0x00000009, 1416 0x0000000d, 1417 0x00000011, 1418 0x00000015, 1419 0x00000055, 1420 0x00000095, 1421 0x00000017, 1422 0x0000001b, 1423 0x0000005b, 1424 0x0000009b, 1425 0x000000db, 1426 0x0000011b, 1427 0x0000015b, 1428 0x0000019b, 1429 0x0000059b, 1430 0x0000099b, 1431 0x00000d9b, 1432 0x0000119b, 1433 0x0000519b, 1434 0x0000919b, 1435 0x0000d19b, 1436 0x0001119b, 1437 0x0001519b, 1438 0x0001919b, 1439 0x0001d19b, 1440 0x00000000, 1441 0x00000000, 1442 0x00000000, 1443 0x00000000, 1444 0x00000000, 1445 0x00000000, 1446 0x00000000, 1447 0x00000000, 1448 0x00000000, 1449 0x00000000, 1450 0x00000000, 1451 0x00000000, 1452 0x00000000, 1453 0x00000000, 1454 0x00000000, 1455 0x00000000, 1456 0x00000000, 1457 0x00000000, 1458 0x00000000, 1459 0x00000000, 1460 0x00000000, 1461 0x00000000, 1462 0x00000000, 1463 0x00000000, 1464 0x00000000, 1465 0x00000000, 1466 0x00000000, 1467 0x00000000, 1468 0x00000000, 1469 0x00000000, 1470 0x00000000, 1471 0x00000000, 1472 0x00000000, 1473 0x00000000, 1474 0x00000000, 1475 0x00000000, 1476 0x00000000, 1477 0x00000000, 1478 0x00000000, 1479 0x00000000, 1480 0x00000000, 1481 0x00000000, 1482 0x00000000, 1483 0x00000000, 1484 0x00000000, 1485 0x00000000, 1486 0x00000000, 1487 0x00000000, 1488 0x00000000, 1489 0x00000000, 1490 0x00000000, 1491 0x00000000, 1492 0x00000000, 1493 0x00000000, 1494 0x00000000, 1495 0x00000000, 1496 0x00000000, 1497 0x00000000, 1498 0x00000000, 1499 0x00000000, 1500 0x00000000, 1501 0x00000000, 1502 0x00000000, 1503 0x00000000, 1504 0x00000000, 1505 0x00000000 1506 }; 1507 1508 const struct phytbl_info dot11lcnphytbl_rx_gain_info_rev0[] = { 1509 {&dot11lcn_gain_tbl_rev0, 1510 sizeof(dot11lcn_gain_tbl_rev0) / sizeof(dot11lcn_gain_tbl_rev0[0]), 18, 1511 0, 32} 1512 , 1513 {&dot11lcn_aux_gain_idx_tbl_rev0, 1514 sizeof(dot11lcn_aux_gain_idx_tbl_rev0) / 1515 sizeof(dot11lcn_aux_gain_idx_tbl_rev0[0]), 14, 0, 16} 1516 , 1517 {&dot11lcn_gain_idx_tbl_rev0, 1518 sizeof(dot11lcn_gain_idx_tbl_rev0) / 1519 sizeof(dot11lcn_gain_idx_tbl_rev0[0]), 13, 0, 32} 1520 , 1521 }; 1522 1523 static const struct phytbl_info dot11lcnphytbl_rx_gain_info_rev1[] = { 1524 {&dot11lcn_gain_tbl_rev1, 1525 sizeof(dot11lcn_gain_tbl_rev1) / sizeof(dot11lcn_gain_tbl_rev1[0]), 18, 1526 0, 32} 1527 , 1528 {&dot11lcn_aux_gain_idx_tbl_rev0, 1529 sizeof(dot11lcn_aux_gain_idx_tbl_rev0) / 1530 sizeof(dot11lcn_aux_gain_idx_tbl_rev0[0]), 14, 0, 16} 1531 , 1532 {&dot11lcn_gain_idx_tbl_rev0, 1533 sizeof(dot11lcn_gain_idx_tbl_rev0) / 1534 sizeof(dot11lcn_gain_idx_tbl_rev0[0]), 13, 0, 32} 1535 , 1536 }; 1537 1538 const struct phytbl_info dot11lcnphytbl_rx_gain_info_2G_rev2[] = { 1539 {&dot11lcn_gain_tbl_2G, 1540 sizeof(dot11lcn_gain_tbl_2G) / sizeof(dot11lcn_gain_tbl_2G[0]), 18, 0, 1541 32} 1542 , 1543 {&dot11lcn_aux_gain_idx_tbl_2G, 1544 sizeof(dot11lcn_aux_gain_idx_tbl_2G) / 1545 sizeof(dot11lcn_aux_gain_idx_tbl_2G[0]), 14, 0, 16} 1546 , 1547 {&dot11lcn_gain_idx_tbl_2G, 1548 sizeof(dot11lcn_gain_idx_tbl_2G) / sizeof(dot11lcn_gain_idx_tbl_2G[0]), 1549 13, 0, 32} 1550 , 1551 {&dot11lcn_gain_val_tbl_2G, 1552 sizeof(dot11lcn_gain_val_tbl_2G) / sizeof(dot11lcn_gain_val_tbl_2G[0]), 1553 17, 0, 8} 1554 }; 1555 1556 const struct phytbl_info dot11lcnphytbl_rx_gain_info_5G_rev2[] = { 1557 {&dot11lcn_gain_tbl_5G, 1558 sizeof(dot11lcn_gain_tbl_5G) / sizeof(dot11lcn_gain_tbl_5G[0]), 18, 0, 1559 32} 1560 , 1561 {&dot11lcn_aux_gain_idx_tbl_5G, 1562 sizeof(dot11lcn_aux_gain_idx_tbl_5G) / 1563 sizeof(dot11lcn_aux_gain_idx_tbl_5G[0]), 14, 0, 16} 1564 , 1565 {&dot11lcn_gain_idx_tbl_5G, 1566 sizeof(dot11lcn_gain_idx_tbl_5G) / sizeof(dot11lcn_gain_idx_tbl_5G[0]), 1567 13, 0, 32} 1568 , 1569 {&dot11lcn_gain_val_tbl_5G, 1570 sizeof(dot11lcn_gain_val_tbl_5G) / sizeof(dot11lcn_gain_val_tbl_5G[0]), 1571 17, 0, 8} 1572 }; 1573 1574 const struct phytbl_info dot11lcnphytbl_rx_gain_info_extlna_2G_rev2[] = { 1575 {&dot11lcn_gain_tbl_extlna_2G, 1576 sizeof(dot11lcn_gain_tbl_extlna_2G) / 1577 sizeof(dot11lcn_gain_tbl_extlna_2G[0]), 18, 0, 32} 1578 , 1579 {&dot11lcn_aux_gain_idx_tbl_extlna_2G, 1580 sizeof(dot11lcn_aux_gain_idx_tbl_extlna_2G) / 1581 sizeof(dot11lcn_aux_gain_idx_tbl_extlna_2G[0]), 14, 0, 16} 1582 , 1583 {&dot11lcn_gain_idx_tbl_extlna_2G, 1584 sizeof(dot11lcn_gain_idx_tbl_extlna_2G) / 1585 sizeof(dot11lcn_gain_idx_tbl_extlna_2G[0]), 13, 0, 32} 1586 , 1587 {&dot11lcn_gain_val_tbl_extlna_2G, 1588 sizeof(dot11lcn_gain_val_tbl_extlna_2G) / 1589 sizeof(dot11lcn_gain_val_tbl_extlna_2G[0]), 17, 0, 8} 1590 }; 1591 1592 const struct phytbl_info dot11lcnphytbl_rx_gain_info_extlna_5G_rev2[] = { 1593 {&dot11lcn_gain_tbl_5G, 1594 sizeof(dot11lcn_gain_tbl_5G) / sizeof(dot11lcn_gain_tbl_5G[0]), 18, 0, 1595 32} 1596 , 1597 {&dot11lcn_aux_gain_idx_tbl_5G, 1598 sizeof(dot11lcn_aux_gain_idx_tbl_5G) / 1599 sizeof(dot11lcn_aux_gain_idx_tbl_5G[0]), 14, 0, 16} 1600 , 1601 {&dot11lcn_gain_idx_tbl_5G, 1602 sizeof(dot11lcn_gain_idx_tbl_5G) / sizeof(dot11lcn_gain_idx_tbl_5G[0]), 1603 13, 0, 32} 1604 , 1605 {&dot11lcn_gain_val_tbl_5G, 1606 sizeof(dot11lcn_gain_val_tbl_5G) / sizeof(dot11lcn_gain_val_tbl_5G[0]), 1607 17, 0, 8} 1608 }; 1609 1610 const u32 dot11lcnphytbl_rx_gain_info_sz_rev0 = 1611 sizeof(dot11lcnphytbl_rx_gain_info_rev0) / 1612 sizeof(dot11lcnphytbl_rx_gain_info_rev0[0]); 1613 1614 const u32 dot11lcnphytbl_rx_gain_info_2G_rev2_sz = 1615 sizeof(dot11lcnphytbl_rx_gain_info_2G_rev2) / 1616 sizeof(dot11lcnphytbl_rx_gain_info_2G_rev2[0]); 1617 1618 const u32 dot11lcnphytbl_rx_gain_info_5G_rev2_sz = 1619 sizeof(dot11lcnphytbl_rx_gain_info_5G_rev2) / 1620 sizeof(dot11lcnphytbl_rx_gain_info_5G_rev2[0]); 1621 1622 static const u16 dot11lcn_min_sig_sq_tbl_rev0[] = { 1623 0x014d, 1624 0x014d, 1625 0x014d, 1626 0x014d, 1627 0x014d, 1628 0x014d, 1629 0x014d, 1630 0x014d, 1631 0x014d, 1632 0x014d, 1633 0x014d, 1634 0x014d, 1635 0x014d, 1636 0x014d, 1637 0x014d, 1638 0x014d, 1639 0x014d, 1640 0x014d, 1641 0x014d, 1642 0x014d, 1643 0x014d, 1644 0x014d, 1645 0x014d, 1646 0x014d, 1647 0x014d, 1648 0x014d, 1649 0x014d, 1650 0x014d, 1651 0x014d, 1652 0x014d, 1653 0x014d, 1654 0x014d, 1655 0x014d, 1656 0x014d, 1657 0x014d, 1658 0x014d, 1659 0x014d, 1660 0x014d, 1661 0x014d, 1662 0x014d, 1663 0x014d, 1664 0x014d, 1665 0x014d, 1666 0x014d, 1667 0x014d, 1668 0x014d, 1669 0x014d, 1670 0x014d, 1671 0x014d, 1672 0x014d, 1673 0x014d, 1674 0x014d, 1675 0x014d, 1676 0x014d, 1677 0x014d, 1678 0x014d, 1679 0x014d, 1680 0x014d, 1681 0x014d, 1682 0x014d, 1683 0x014d, 1684 0x014d, 1685 0x014d, 1686 0x014d, 1687 }; 1688 1689 static const u16 dot11lcn_noise_scale_tbl_rev0[] = { 1690 0x0000, 1691 0x0000, 1692 0x0000, 1693 0x0000, 1694 0x0000, 1695 0x0000, 1696 0x0000, 1697 0x0000, 1698 0x0000, 1699 0x0000, 1700 0x0000, 1701 0x0000, 1702 0x0000, 1703 0x0000, 1704 0x0000, 1705 0x0000, 1706 0x0000, 1707 0x0000, 1708 0x0000, 1709 0x0000, 1710 0x0000, 1711 0x0000, 1712 0x0000, 1713 0x0000, 1714 0x0000, 1715 0x0000, 1716 0x0000, 1717 0x0000, 1718 0x0000, 1719 0x0000, 1720 0x0000, 1721 0x0000, 1722 0x0000, 1723 0x0000, 1724 0x0000, 1725 0x0000, 1726 0x0000, 1727 0x0000, 1728 0x0000, 1729 0x0000, 1730 0x0000, 1731 0x0000, 1732 0x0000, 1733 0x0000, 1734 0x0000, 1735 0x0000, 1736 0x0000, 1737 0x0000, 1738 0x0000, 1739 0x0000, 1740 0x0000, 1741 0x0000, 1742 0x0000, 1743 0x0000, 1744 0x0000, 1745 0x0000, 1746 0x0000, 1747 0x0000, 1748 0x0000, 1749 0x0000, 1750 0x0000, 1751 0x0000, 1752 0x0000, 1753 0x0000, 1754 }; 1755 1756 static const u32 dot11lcn_fltr_ctrl_tbl_rev0[] = { 1757 0x000141f8, 1758 0x000021f8, 1759 0x000021fb, 1760 0x000041fb, 1761 0x0001fe4b, 1762 0x0000217b, 1763 0x00002133, 1764 0x000040eb, 1765 0x0001fea3, 1766 0x0000024b, 1767 }; 1768 1769 static const u32 dot11lcn_ps_ctrl_tbl_rev0[] = { 1770 0x00100001, 1771 0x00200010, 1772 0x00300001, 1773 0x00400010, 1774 0x00500022, 1775 0x00600122, 1776 0x00700222, 1777 0x00800322, 1778 0x00900422, 1779 0x00a00522, 1780 0x00b00622, 1781 0x00c00722, 1782 0x00d00822, 1783 0x00f00922, 1784 0x00100a22, 1785 0x00200b22, 1786 0x00300c22, 1787 0x00400d22, 1788 0x00500e22, 1789 0x00600f22, 1790 }; 1791 1792 static const u16 dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo[] = { 1793 0x0007, 1794 0x0005, 1795 0x0006, 1796 0x0004, 1797 0x0007, 1798 0x0005, 1799 0x0006, 1800 0x0004, 1801 0x0007, 1802 0x0005, 1803 0x0006, 1804 0x0004, 1805 0x0007, 1806 0x0005, 1807 0x0006, 1808 0x0004, 1809 0x000b, 1810 0x000b, 1811 0x000a, 1812 0x000a, 1813 0x000b, 1814 0x000b, 1815 0x000a, 1816 0x000a, 1817 0x000b, 1818 0x000b, 1819 0x000a, 1820 0x000a, 1821 0x000b, 1822 0x000b, 1823 0x000a, 1824 0x000a, 1825 0x0007, 1826 0x0005, 1827 0x0006, 1828 0x0004, 1829 0x0007, 1830 0x0005, 1831 0x0006, 1832 0x0004, 1833 0x0007, 1834 0x0005, 1835 0x0006, 1836 0x0004, 1837 0x0007, 1838 0x0005, 1839 0x0006, 1840 0x0004, 1841 0x000b, 1842 0x000b, 1843 0x000a, 1844 0x000a, 1845 0x000b, 1846 0x000b, 1847 0x000a, 1848 0x000a, 1849 0x000b, 1850 0x000b, 1851 0x000a, 1852 0x000a, 1853 0x000b, 1854 0x000b, 1855 0x000a, 1856 0x000a, 1857 1858 }; 1859 1860 static const u16 dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0[] = { 1861 0x0007, 1862 0x0005, 1863 0x0002, 1864 0x0000, 1865 0x0007, 1866 0x0005, 1867 0x0002, 1868 0x0000, 1869 0x0007, 1870 0x0005, 1871 0x0002, 1872 0x0000, 1873 0x0007, 1874 0x0005, 1875 0x0002, 1876 0x0000, 1877 0x0007, 1878 0x0007, 1879 0x0002, 1880 0x0002, 1881 0x0007, 1882 0x0007, 1883 0x0002, 1884 0x0002, 1885 0x0007, 1886 0x0007, 1887 0x0002, 1888 0x0002, 1889 0x0007, 1890 0x0007, 1891 0x0002, 1892 0x0002, 1893 0x0007, 1894 0x0005, 1895 0x0002, 1896 0x0000, 1897 0x0007, 1898 0x0005, 1899 0x0002, 1900 0x0000, 1901 0x0007, 1902 0x0005, 1903 0x0002, 1904 0x0000, 1905 0x0007, 1906 0x0005, 1907 0x0002, 1908 0x0000, 1909 0x0007, 1910 0x0007, 1911 0x0002, 1912 0x0002, 1913 0x0007, 1914 0x0007, 1915 0x0002, 1916 0x0002, 1917 0x0007, 1918 0x0007, 1919 0x0002, 1920 0x0002, 1921 0x0007, 1922 0x0007, 1923 0x0002, 1924 0x0002, 1925 }; 1926 1927 static const u16 dot11lcn_sw_ctrl_tbl_4313_epa_rev0[] = { 1928 0x0002, 1929 0x0008, 1930 0x0004, 1931 0x0001, 1932 0x0002, 1933 0x0008, 1934 0x0004, 1935 0x0001, 1936 0x0002, 1937 0x0008, 1938 0x0004, 1939 0x0001, 1940 0x0002, 1941 0x0008, 1942 0x0004, 1943 0x0001, 1944 0x0002, 1945 0x0008, 1946 0x0004, 1947 0x0001, 1948 0x0002, 1949 0x0008, 1950 0x0004, 1951 0x0001, 1952 0x0002, 1953 0x0008, 1954 0x0004, 1955 0x0001, 1956 0x0002, 1957 0x0008, 1958 0x0004, 1959 0x0001, 1960 0x0002, 1961 0x0008, 1962 0x0004, 1963 0x0001, 1964 0x0002, 1965 0x0008, 1966 0x0004, 1967 0x0001, 1968 0x0002, 1969 0x0008, 1970 0x0004, 1971 0x0001, 1972 0x0002, 1973 0x0008, 1974 0x0004, 1975 0x0001, 1976 0x0002, 1977 0x0008, 1978 0x0004, 1979 0x0001, 1980 0x0002, 1981 0x0008, 1982 0x0004, 1983 0x0001, 1984 0x0002, 1985 0x0008, 1986 0x0004, 1987 0x0001, 1988 0x0002, 1989 0x0008, 1990 0x0004, 1991 0x0001, 1992 }; 1993 1994 static const u16 dot11lcn_sw_ctrl_tbl_4313_rev0[] = { 1995 0x000a, 1996 0x0009, 1997 0x0006, 1998 0x0005, 1999 0x000a, 2000 0x0009, 2001 0x0006, 2002 0x0005, 2003 0x000a, 2004 0x0009, 2005 0x0006, 2006 0x0005, 2007 0x000a, 2008 0x0009, 2009 0x0006, 2010 0x0005, 2011 0x000a, 2012 0x0009, 2013 0x0006, 2014 0x0005, 2015 0x000a, 2016 0x0009, 2017 0x0006, 2018 0x0005, 2019 0x000a, 2020 0x0009, 2021 0x0006, 2022 0x0005, 2023 0x000a, 2024 0x0009, 2025 0x0006, 2026 0x0005, 2027 0x000a, 2028 0x0009, 2029 0x0006, 2030 0x0005, 2031 0x000a, 2032 0x0009, 2033 0x0006, 2034 0x0005, 2035 0x000a, 2036 0x0009, 2037 0x0006, 2038 0x0005, 2039 0x000a, 2040 0x0009, 2041 0x0006, 2042 0x0005, 2043 0x000a, 2044 0x0009, 2045 0x0006, 2046 0x0005, 2047 0x000a, 2048 0x0009, 2049 0x0006, 2050 0x0005, 2051 0x000a, 2052 0x0009, 2053 0x0006, 2054 0x0005, 2055 0x000a, 2056 0x0009, 2057 0x0006, 2058 0x0005, 2059 }; 2060 2061 static const u16 dot11lcn_sw_ctrl_tbl_rev0[] = { 2062 0x0004, 2063 0x0004, 2064 0x0002, 2065 0x0002, 2066 0x0004, 2067 0x0004, 2068 0x0002, 2069 0x0002, 2070 0x0004, 2071 0x0004, 2072 0x0002, 2073 0x0002, 2074 0x0004, 2075 0x0004, 2076 0x0002, 2077 0x0002, 2078 0x0004, 2079 0x0004, 2080 0x0002, 2081 0x0002, 2082 0x0004, 2083 0x0004, 2084 0x0002, 2085 0x0002, 2086 0x0004, 2087 0x0004, 2088 0x0002, 2089 0x0002, 2090 0x0004, 2091 0x0004, 2092 0x0002, 2093 0x0002, 2094 0x0004, 2095 0x0004, 2096 0x0002, 2097 0x0002, 2098 0x0004, 2099 0x0004, 2100 0x0002, 2101 0x0002, 2102 0x0004, 2103 0x0004, 2104 0x0002, 2105 0x0002, 2106 0x0004, 2107 0x0004, 2108 0x0002, 2109 0x0002, 2110 0x0004, 2111 0x0004, 2112 0x0002, 2113 0x0002, 2114 0x0004, 2115 0x0004, 2116 0x0002, 2117 0x0002, 2118 0x0004, 2119 0x0004, 2120 0x0002, 2121 0x0002, 2122 0x0004, 2123 0x0004, 2124 0x0002, 2125 0x0002, 2126 }; 2127 2128 static const u8 dot11lcn_nf_table_rev0[] = { 2129 0x5f, 2130 0x36, 2131 0x29, 2132 0x1f, 2133 0x5f, 2134 0x36, 2135 0x29, 2136 0x1f, 2137 0x5f, 2138 0x36, 2139 0x29, 2140 0x1f, 2141 0x5f, 2142 0x36, 2143 0x29, 2144 0x1f, 2145 }; 2146 2147 static const u8 dot11lcn_gain_val_tbl_rev0[] = { 2148 0x09, 2149 0x0f, 2150 0x14, 2151 0x18, 2152 0xfe, 2153 0x07, 2154 0x0b, 2155 0x0f, 2156 0xfb, 2157 0xfe, 2158 0x01, 2159 0x05, 2160 0x08, 2161 0x0b, 2162 0x0e, 2163 0x11, 2164 0x14, 2165 0x17, 2166 0x00, 2167 0x00, 2168 0x00, 2169 0x00, 2170 0x00, 2171 0x00, 2172 0x00, 2173 0x03, 2174 0x06, 2175 0x09, 2176 0x0c, 2177 0x0f, 2178 0x12, 2179 0x00, 2180 0x00, 2181 0x00, 2182 0x00, 2183 0x00, 2184 0x00, 2185 0x00, 2186 0x00, 2187 0x00, 2188 0x00, 2189 0x03, 2190 0x06, 2191 0x09, 2192 0x0c, 2193 0x0f, 2194 0x12, 2195 0x15, 2196 0x18, 2197 0x1b, 2198 0x00, 2199 0x00, 2200 0x00, 2201 0x00, 2202 0x00, 2203 0x00, 2204 0x03, 2205 0xeb, 2206 0x00, 2207 0x00, 2208 }; 2209 2210 static const u8 dot11lcn_spur_tbl_rev0[] = { 2211 0x01, 2212 0x01, 2213 0x01, 2214 0x01, 2215 0x01, 2216 0x01, 2217 0x01, 2218 0x01, 2219 0x01, 2220 0x01, 2221 0x01, 2222 0x01, 2223 0x01, 2224 0x01, 2225 0x01, 2226 0x01, 2227 0x01, 2228 0x01, 2229 0x01, 2230 0x01, 2231 0x01, 2232 0x01, 2233 0x01, 2234 0x01, 2235 0x01, 2236 0x01, 2237 0x01, 2238 0x01, 2239 0x01, 2240 0x01, 2241 0x02, 2242 0x03, 2243 0x01, 2244 0x03, 2245 0x02, 2246 0x01, 2247 0x01, 2248 0x01, 2249 0x01, 2250 0x01, 2251 0x01, 2252 0x01, 2253 0x01, 2254 0x01, 2255 0x01, 2256 0x01, 2257 0x01, 2258 0x01, 2259 0x01, 2260 0x01, 2261 0x01, 2262 0x01, 2263 0x01, 2264 0x01, 2265 0x01, 2266 0x01, 2267 0x01, 2268 0x01, 2269 0x01, 2270 0x01, 2271 0x01, 2272 0x01, 2273 0x01, 2274 0x01, 2275 0x01, 2276 0x01, 2277 0x01, 2278 0x01, 2279 0x01, 2280 0x01, 2281 0x01, 2282 0x01, 2283 0x01, 2284 0x01, 2285 0x01, 2286 0x01, 2287 0x01, 2288 0x01, 2289 0x01, 2290 0x01, 2291 0x01, 2292 0x01, 2293 0x01, 2294 0x01, 2295 0x01, 2296 0x01, 2297 0x01, 2298 0x01, 2299 0x01, 2300 0x01, 2301 0x01, 2302 0x01, 2303 0x01, 2304 0x01, 2305 0x02, 2306 0x03, 2307 0x01, 2308 0x03, 2309 0x02, 2310 0x01, 2311 0x01, 2312 0x01, 2313 0x01, 2314 0x01, 2315 0x01, 2316 0x01, 2317 0x01, 2318 0x01, 2319 0x01, 2320 0x01, 2321 0x01, 2322 0x01, 2323 0x01, 2324 0x01, 2325 0x01, 2326 0x01, 2327 0x01, 2328 0x01, 2329 0x01, 2330 0x01, 2331 0x01, 2332 0x01, 2333 0x01, 2334 0x01, 2335 0x01, 2336 0x01, 2337 0x01, 2338 0x01, 2339 }; 2340 2341 static const u16 dot11lcn_unsup_mcs_tbl_rev0[] = { 2342 0x001a, 2343 0x0034, 2344 0x004e, 2345 0x0068, 2346 0x009c, 2347 0x00d0, 2348 0x00ea, 2349 0x0104, 2350 0x0034, 2351 0x0068, 2352 0x009c, 2353 0x00d0, 2354 0x0138, 2355 0x01a0, 2356 0x01d4, 2357 0x0208, 2358 0x004e, 2359 0x009c, 2360 0x00ea, 2361 0x0138, 2362 0x01d4, 2363 0x0270, 2364 0x02be, 2365 0x030c, 2366 0x0068, 2367 0x00d0, 2368 0x0138, 2369 0x01a0, 2370 0x0270, 2371 0x0340, 2372 0x03a8, 2373 0x0410, 2374 0x0018, 2375 0x009c, 2376 0x00d0, 2377 0x0104, 2378 0x00ea, 2379 0x0138, 2380 0x0186, 2381 0x00d0, 2382 0x0104, 2383 0x0104, 2384 0x0138, 2385 0x016c, 2386 0x016c, 2387 0x01a0, 2388 0x0138, 2389 0x0186, 2390 0x0186, 2391 0x01d4, 2392 0x0222, 2393 0x0222, 2394 0x0270, 2395 0x0104, 2396 0x0138, 2397 0x016c, 2398 0x0138, 2399 0x016c, 2400 0x01a0, 2401 0x01d4, 2402 0x01a0, 2403 0x01d4, 2404 0x0208, 2405 0x0208, 2406 0x023c, 2407 0x0186, 2408 0x01d4, 2409 0x0222, 2410 0x01d4, 2411 0x0222, 2412 0x0270, 2413 0x02be, 2414 0x0270, 2415 0x02be, 2416 0x030c, 2417 0x030c, 2418 0x035a, 2419 0x0036, 2420 0x006c, 2421 0x00a2, 2422 0x00d8, 2423 0x0144, 2424 0x01b0, 2425 0x01e6, 2426 0x021c, 2427 0x006c, 2428 0x00d8, 2429 0x0144, 2430 0x01b0, 2431 0x0288, 2432 0x0360, 2433 0x03cc, 2434 0x0438, 2435 0x00a2, 2436 0x0144, 2437 0x01e6, 2438 0x0288, 2439 0x03cc, 2440 0x0510, 2441 0x05b2, 2442 0x0654, 2443 0x00d8, 2444 0x01b0, 2445 0x0288, 2446 0x0360, 2447 0x0510, 2448 0x06c0, 2449 0x0798, 2450 0x0870, 2451 0x0018, 2452 0x0144, 2453 0x01b0, 2454 0x021c, 2455 0x01e6, 2456 0x0288, 2457 0x032a, 2458 0x01b0, 2459 0x021c, 2460 0x021c, 2461 0x0288, 2462 0x02f4, 2463 0x02f4, 2464 0x0360, 2465 0x0288, 2466 0x032a, 2467 0x032a, 2468 0x03cc, 2469 0x046e, 2470 0x046e, 2471 0x0510, 2472 0x021c, 2473 0x0288, 2474 0x02f4, 2475 0x0288, 2476 0x02f4, 2477 0x0360, 2478 0x03cc, 2479 0x0360, 2480 0x03cc, 2481 0x0438, 2482 0x0438, 2483 0x04a4, 2484 0x032a, 2485 0x03cc, 2486 0x046e, 2487 0x03cc, 2488 0x046e, 2489 0x0510, 2490 0x05b2, 2491 0x0510, 2492 0x05b2, 2493 0x0654, 2494 0x0654, 2495 0x06f6, 2496 }; 2497 2498 static const u16 dot11lcn_iq_local_tbl_rev0[] = { 2499 0x0200, 2500 0x0300, 2501 0x0400, 2502 0x0600, 2503 0x0800, 2504 0x0b00, 2505 0x1000, 2506 0x1001, 2507 0x1002, 2508 0x1003, 2509 0x1004, 2510 0x1005, 2511 0x1006, 2512 0x1007, 2513 0x1707, 2514 0x2007, 2515 0x2d07, 2516 0x4007, 2517 0x0000, 2518 0x0000, 2519 0x0000, 2520 0x0000, 2521 0x0000, 2522 0x0000, 2523 0x0000, 2524 0x0000, 2525 0x0000, 2526 0x0000, 2527 0x0000, 2528 0x0000, 2529 0x0000, 2530 0x0000, 2531 0x0200, 2532 0x0300, 2533 0x0400, 2534 0x0600, 2535 0x0800, 2536 0x0b00, 2537 0x1000, 2538 0x1001, 2539 0x1002, 2540 0x1003, 2541 0x1004, 2542 0x1005, 2543 0x1006, 2544 0x1007, 2545 0x1707, 2546 0x2007, 2547 0x2d07, 2548 0x4007, 2549 0x0000, 2550 0x0000, 2551 0x0000, 2552 0x0000, 2553 0x0000, 2554 0x0000, 2555 0x0000, 2556 0x0000, 2557 0x0000, 2558 0x0000, 2559 0x0000, 2560 0x0000, 2561 0x0000, 2562 0x0000, 2563 0x0000, 2564 0x0000, 2565 0x0000, 2566 0x0000, 2567 0x0000, 2568 0x0000, 2569 0x0000, 2570 0x0000, 2571 0x0000, 2572 0x0000, 2573 0x0000, 2574 0x0000, 2575 0x0000, 2576 0x0000, 2577 0x0000, 2578 0x0000, 2579 0x0000, 2580 0x0000, 2581 0x0000, 2582 0x0000, 2583 0x0000, 2584 0x0000, 2585 0x0000, 2586 0x4000, 2587 0x0000, 2588 0x0000, 2589 0x0000, 2590 0x0000, 2591 0x0000, 2592 0x0000, 2593 0x0000, 2594 0x0000, 2595 0x0000, 2596 0x0000, 2597 0x0000, 2598 0x0000, 2599 0x0000, 2600 0x0000, 2601 0x0000, 2602 0x0000, 2603 0x0000, 2604 0x0000, 2605 0x0000, 2606 0x0000, 2607 }; 2608 2609 static const u32 dot11lcn_papd_compdelta_tbl_rev0[] = { 2610 0x00080000, 2611 0x00080000, 2612 0x00080000, 2613 0x00080000, 2614 0x00080000, 2615 0x00080000, 2616 0x00080000, 2617 0x00080000, 2618 0x00080000, 2619 0x00080000, 2620 0x00080000, 2621 0x00080000, 2622 0x00080000, 2623 0x00080000, 2624 0x00080000, 2625 0x00080000, 2626 0x00080000, 2627 0x00080000, 2628 0x00080000, 2629 0x00080000, 2630 0x00080000, 2631 0x00080000, 2632 0x00080000, 2633 0x00080000, 2634 0x00080000, 2635 0x00080000, 2636 0x00080000, 2637 0x00080000, 2638 0x00080000, 2639 0x00080000, 2640 0x00080000, 2641 0x00080000, 2642 0x00080000, 2643 0x00080000, 2644 0x00080000, 2645 0x00080000, 2646 0x00080000, 2647 0x00080000, 2648 0x00080000, 2649 0x00080000, 2650 0x00080000, 2651 0x00080000, 2652 0x00080000, 2653 0x00080000, 2654 0x00080000, 2655 0x00080000, 2656 0x00080000, 2657 0x00080000, 2658 0x00080000, 2659 0x00080000, 2660 0x00080000, 2661 0x00080000, 2662 0x00080000, 2663 0x00080000, 2664 0x00080000, 2665 0x00080000, 2666 0x00080000, 2667 0x00080000, 2668 0x00080000, 2669 0x00080000, 2670 0x00080000, 2671 0x00080000, 2672 0x00080000, 2673 0x00080000, 2674 0x00080000, 2675 0x00080000, 2676 0x00080000, 2677 0x00080000, 2678 0x00080000, 2679 0x00080000, 2680 0x00080000, 2681 0x00080000, 2682 0x00080000, 2683 0x00080000, 2684 0x00080000, 2685 0x00080000, 2686 0x00080000, 2687 0x00080000, 2688 0x00080000, 2689 0x00080000, 2690 0x00080000, 2691 0x00080000, 2692 0x00080000, 2693 0x00080000, 2694 0x00080000, 2695 0x00080000, 2696 0x00080000, 2697 0x00080000, 2698 0x00080000, 2699 0x00080000, 2700 0x00080000, 2701 0x00080000, 2702 0x00080000, 2703 0x00080000, 2704 0x00080000, 2705 0x00080000, 2706 0x00080000, 2707 0x00080000, 2708 0x00080000, 2709 0x00080000, 2710 0x00080000, 2711 0x00080000, 2712 0x00080000, 2713 0x00080000, 2714 0x00080000, 2715 0x00080000, 2716 0x00080000, 2717 0x00080000, 2718 0x00080000, 2719 0x00080000, 2720 0x00080000, 2721 0x00080000, 2722 0x00080000, 2723 0x00080000, 2724 0x00080000, 2725 0x00080000, 2726 0x00080000, 2727 0x00080000, 2728 0x00080000, 2729 0x00080000, 2730 0x00080000, 2731 0x00080000, 2732 0x00080000, 2733 0x00080000, 2734 0x00080000, 2735 0x00080000, 2736 0x00080000, 2737 0x00080000, 2738 0x00080000, 2739 0x00080000, 2740 0x00080000, 2741 0x00080000, 2742 0x00080000, 2743 0x00080000, 2744 0x00080000, 2745 0x00080000, 2746 0x00080000, 2747 0x00080000, 2748 0x00080000, 2749 0x00080000, 2750 0x00080000, 2751 0x00080000, 2752 0x00080000, 2753 0x00080000, 2754 0x00080000, 2755 0x00080000, 2756 0x00080000, 2757 0x00080000, 2758 0x00080000, 2759 0x00080000, 2760 0x00080000, 2761 0x00080000, 2762 0x00080000, 2763 0x00080000, 2764 0x00080000, 2765 0x00080000, 2766 0x00080000, 2767 0x00080000, 2768 0x00080000, 2769 0x00080000, 2770 }; 2771 2772 const struct phytbl_info dot11lcnphytbl_info_rev0[] = { 2773 {&dot11lcn_min_sig_sq_tbl_rev0, 2774 sizeof(dot11lcn_min_sig_sq_tbl_rev0) / 2775 sizeof(dot11lcn_min_sig_sq_tbl_rev0[0]), 2, 0, 16} 2776 , 2777 {&dot11lcn_noise_scale_tbl_rev0, 2778 sizeof(dot11lcn_noise_scale_tbl_rev0) / 2779 sizeof(dot11lcn_noise_scale_tbl_rev0[0]), 1, 0, 16} 2780 , 2781 {&dot11lcn_fltr_ctrl_tbl_rev0, 2782 sizeof(dot11lcn_fltr_ctrl_tbl_rev0) / 2783 sizeof(dot11lcn_fltr_ctrl_tbl_rev0[0]), 11, 0, 32} 2784 , 2785 {&dot11lcn_ps_ctrl_tbl_rev0, 2786 sizeof(dot11lcn_ps_ctrl_tbl_rev0) / 2787 sizeof(dot11lcn_ps_ctrl_tbl_rev0[0]), 12, 0, 32} 2788 , 2789 {&dot11lcn_gain_idx_tbl_rev0, 2790 sizeof(dot11lcn_gain_idx_tbl_rev0) / 2791 sizeof(dot11lcn_gain_idx_tbl_rev0[0]), 13, 0, 32} 2792 , 2793 {&dot11lcn_aux_gain_idx_tbl_rev0, 2794 sizeof(dot11lcn_aux_gain_idx_tbl_rev0) / 2795 sizeof(dot11lcn_aux_gain_idx_tbl_rev0[0]), 14, 0, 16} 2796 , 2797 {&dot11lcn_sw_ctrl_tbl_rev0, 2798 sizeof(dot11lcn_sw_ctrl_tbl_rev0) / 2799 sizeof(dot11lcn_sw_ctrl_tbl_rev0[0]), 15, 0, 16} 2800 , 2801 {&dot11lcn_nf_table_rev0, 2802 sizeof(dot11lcn_nf_table_rev0) / sizeof(dot11lcn_nf_table_rev0[0]), 16, 2803 0, 8} 2804 , 2805 {&dot11lcn_gain_val_tbl_rev0, 2806 sizeof(dot11lcn_gain_val_tbl_rev0) / 2807 sizeof(dot11lcn_gain_val_tbl_rev0[0]), 17, 0, 8} 2808 , 2809 {&dot11lcn_gain_tbl_rev0, 2810 sizeof(dot11lcn_gain_tbl_rev0) / sizeof(dot11lcn_gain_tbl_rev0[0]), 18, 2811 0, 32} 2812 , 2813 {&dot11lcn_spur_tbl_rev0, 2814 sizeof(dot11lcn_spur_tbl_rev0) / sizeof(dot11lcn_spur_tbl_rev0[0]), 20, 2815 0, 8} 2816 , 2817 {&dot11lcn_unsup_mcs_tbl_rev0, 2818 sizeof(dot11lcn_unsup_mcs_tbl_rev0) / 2819 sizeof(dot11lcn_unsup_mcs_tbl_rev0[0]), 23, 0, 16} 2820 , 2821 {&dot11lcn_iq_local_tbl_rev0, 2822 sizeof(dot11lcn_iq_local_tbl_rev0) / 2823 sizeof(dot11lcn_iq_local_tbl_rev0[0]), 0, 0, 16} 2824 , 2825 {&dot11lcn_papd_compdelta_tbl_rev0, 2826 sizeof(dot11lcn_papd_compdelta_tbl_rev0) / 2827 sizeof(dot11lcn_papd_compdelta_tbl_rev0[0]), 24, 0, 32} 2828 , 2829 }; 2830 2831 const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313 = { 2832 &dot11lcn_sw_ctrl_tbl_4313_rev0, 2833 sizeof(dot11lcn_sw_ctrl_tbl_4313_rev0) / 2834 sizeof(dot11lcn_sw_ctrl_tbl_4313_rev0[0]), 15, 0, 16 2835 }; 2836 2837 const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_epa = { 2838 &dot11lcn_sw_ctrl_tbl_4313_epa_rev0, 2839 sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0) / 2840 sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0[0]), 15, 0, 16 2841 }; 2842 2843 const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_epa = { 2844 &dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo, 2845 sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo) / 2846 sizeof(dot11lcn_sw_ctrl_tbl_4313_epa_rev0_combo[0]), 15, 0, 16 2847 }; 2848 2849 const struct phytbl_info dot11lcn_sw_ctrl_tbl_info_4313_bt_epa_p250 = { 2850 &dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0, 2851 sizeof(dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0) / 2852 sizeof(dot11lcn_sw_ctrl_tbl_4313_bt_epa_p250_rev0[0]), 15, 0, 16 2853 }; 2854 2855 const u32 dot11lcnphytbl_info_sz_rev0 = 2856 sizeof(dot11lcnphytbl_info_rev0) / sizeof(dot11lcnphytbl_info_rev0[0]); 2857 2858 const struct lcnphy_tx_gain_tbl_entry 2859 dot11lcnphy_2GHz_extPA_gaintable_rev0[128] = { 2860 {3, 0, 31, 0, 72}, 2861 {3, 0, 31, 0, 70}, 2862 {3, 0, 31, 0, 68}, 2863 {3, 0, 30, 0, 67}, 2864 {3, 0, 29, 0, 68}, 2865 {3, 0, 28, 0, 68}, 2866 {3, 0, 27, 0, 69}, 2867 {3, 0, 26, 0, 70}, 2868 {3, 0, 25, 0, 70}, 2869 {3, 0, 24, 0, 71}, 2870 {3, 0, 23, 0, 72}, 2871 {3, 0, 23, 0, 70}, 2872 {3, 0, 22, 0, 71}, 2873 {3, 0, 21, 0, 72}, 2874 {3, 0, 21, 0, 70}, 2875 {3, 0, 21, 0, 68}, 2876 {3, 0, 21, 0, 66}, 2877 {3, 0, 21, 0, 64}, 2878 {3, 0, 21, 0, 63}, 2879 {3, 0, 20, 0, 64}, 2880 {3, 0, 19, 0, 65}, 2881 {3, 0, 19, 0, 64}, 2882 {3, 0, 18, 0, 65}, 2883 {3, 0, 18, 0, 64}, 2884 {3, 0, 17, 0, 65}, 2885 {3, 0, 17, 0, 64}, 2886 {3, 0, 16, 0, 65}, 2887 {3, 0, 16, 0, 64}, 2888 {3, 0, 16, 0, 62}, 2889 {3, 0, 16, 0, 60}, 2890 {3, 0, 16, 0, 58}, 2891 {3, 0, 15, 0, 61}, 2892 {3, 0, 15, 0, 59}, 2893 {3, 0, 14, 0, 61}, 2894 {3, 0, 14, 0, 60}, 2895 {3, 0, 14, 0, 58}, 2896 {3, 0, 13, 0, 60}, 2897 {3, 0, 13, 0, 59}, 2898 {3, 0, 12, 0, 62}, 2899 {3, 0, 12, 0, 60}, 2900 {3, 0, 12, 0, 58}, 2901 {3, 0, 11, 0, 62}, 2902 {3, 0, 11, 0, 60}, 2903 {3, 0, 11, 0, 59}, 2904 {3, 0, 11, 0, 57}, 2905 {3, 0, 10, 0, 61}, 2906 {3, 0, 10, 0, 59}, 2907 {3, 0, 10, 0, 57}, 2908 {3, 0, 9, 0, 62}, 2909 {3, 0, 9, 0, 60}, 2910 {3, 0, 9, 0, 58}, 2911 {3, 0, 9, 0, 57}, 2912 {3, 0, 8, 0, 62}, 2913 {3, 0, 8, 0, 60}, 2914 {3, 0, 8, 0, 58}, 2915 {3, 0, 8, 0, 57}, 2916 {3, 0, 8, 0, 55}, 2917 {3, 0, 7, 0, 61}, 2918 {3, 0, 7, 0, 60}, 2919 {3, 0, 7, 0, 58}, 2920 {3, 0, 7, 0, 56}, 2921 {3, 0, 7, 0, 55}, 2922 {3, 0, 6, 0, 62}, 2923 {3, 0, 6, 0, 60}, 2924 {3, 0, 6, 0, 58}, 2925 {3, 0, 6, 0, 57}, 2926 {3, 0, 6, 0, 55}, 2927 {3, 0, 6, 0, 54}, 2928 {3, 0, 6, 0, 52}, 2929 {3, 0, 5, 0, 61}, 2930 {3, 0, 5, 0, 59}, 2931 {3, 0, 5, 0, 57}, 2932 {3, 0, 5, 0, 56}, 2933 {3, 0, 5, 0, 54}, 2934 {3, 0, 5, 0, 53}, 2935 {3, 0, 5, 0, 51}, 2936 {3, 0, 4, 0, 62}, 2937 {3, 0, 4, 0, 60}, 2938 {3, 0, 4, 0, 58}, 2939 {3, 0, 4, 0, 57}, 2940 {3, 0, 4, 0, 55}, 2941 {3, 0, 4, 0, 54}, 2942 {3, 0, 4, 0, 52}, 2943 {3, 0, 4, 0, 51}, 2944 {3, 0, 4, 0, 49}, 2945 {3, 0, 4, 0, 48}, 2946 {3, 0, 4, 0, 46}, 2947 {3, 0, 3, 0, 60}, 2948 {3, 0, 3, 0, 58}, 2949 {3, 0, 3, 0, 57}, 2950 {3, 0, 3, 0, 55}, 2951 {3, 0, 3, 0, 54}, 2952 {3, 0, 3, 0, 52}, 2953 {3, 0, 3, 0, 51}, 2954 {3, 0, 3, 0, 49}, 2955 {3, 0, 3, 0, 48}, 2956 {3, 0, 3, 0, 46}, 2957 {3, 0, 3, 0, 45}, 2958 {3, 0, 3, 0, 44}, 2959 {3, 0, 3, 0, 43}, 2960 {3, 0, 3, 0, 41}, 2961 {3, 0, 2, 0, 61}, 2962 {3, 0, 2, 0, 59}, 2963 {3, 0, 2, 0, 57}, 2964 {3, 0, 2, 0, 56}, 2965 {3, 0, 2, 0, 54}, 2966 {3, 0, 2, 0, 53}, 2967 {3, 0, 2, 0, 51}, 2968 {3, 0, 2, 0, 50}, 2969 {3, 0, 2, 0, 48}, 2970 {3, 0, 2, 0, 47}, 2971 {3, 0, 2, 0, 46}, 2972 {3, 0, 2, 0, 44}, 2973 {3, 0, 2, 0, 43}, 2974 {3, 0, 2, 0, 42}, 2975 {3, 0, 2, 0, 41}, 2976 {3, 0, 2, 0, 39}, 2977 {3, 0, 2, 0, 38}, 2978 {3, 0, 2, 0, 37}, 2979 {3, 0, 2, 0, 36}, 2980 {3, 0, 2, 0, 35}, 2981 {3, 0, 2, 0, 34}, 2982 {3, 0, 2, 0, 33}, 2983 {3, 0, 2, 0, 32}, 2984 {3, 0, 1, 0, 63}, 2985 {3, 0, 1, 0, 61}, 2986 {3, 0, 1, 0, 59}, 2987 {3, 0, 1, 0, 57}, 2988 }; 2989 2990 const struct lcnphy_tx_gain_tbl_entry dot11lcnphy_2GHz_gaintable_rev0[128] = { 2991 {7, 0, 31, 0, 72}, 2992 {7, 0, 31, 0, 70}, 2993 {7, 0, 31, 0, 68}, 2994 {7, 0, 30, 0, 67}, 2995 {7, 0, 29, 0, 68}, 2996 {7, 0, 28, 0, 68}, 2997 {7, 0, 27, 0, 69}, 2998 {7, 0, 26, 0, 70}, 2999 {7, 0, 25, 0, 70}, 3000 {7, 0, 24, 0, 71}, 3001 {7, 0, 23, 0, 72}, 3002 {7, 0, 23, 0, 70}, 3003 {7, 0, 22, 0, 71}, 3004 {7, 0, 21, 0, 72}, 3005 {7, 0, 21, 0, 70}, 3006 {7, 0, 21, 0, 68}, 3007 {7, 0, 21, 0, 66}, 3008 {7, 0, 21, 0, 64}, 3009 {7, 0, 21, 0, 63}, 3010 {7, 0, 20, 0, 64}, 3011 {7, 0, 19, 0, 65}, 3012 {7, 0, 19, 0, 64}, 3013 {7, 0, 18, 0, 65}, 3014 {7, 0, 18, 0, 64}, 3015 {7, 0, 17, 0, 65}, 3016 {7, 0, 17, 0, 64}, 3017 {7, 0, 16, 0, 65}, 3018 {7, 0, 16, 0, 64}, 3019 {7, 0, 16, 0, 62}, 3020 {7, 0, 16, 0, 60}, 3021 {7, 0, 16, 0, 58}, 3022 {7, 0, 15, 0, 61}, 3023 {7, 0, 15, 0, 59}, 3024 {7, 0, 14, 0, 61}, 3025 {7, 0, 14, 0, 60}, 3026 {7, 0, 14, 0, 58}, 3027 {7, 0, 13, 0, 60}, 3028 {7, 0, 13, 0, 59}, 3029 {7, 0, 12, 0, 62}, 3030 {7, 0, 12, 0, 60}, 3031 {7, 0, 12, 0, 58}, 3032 {7, 0, 11, 0, 62}, 3033 {7, 0, 11, 0, 60}, 3034 {7, 0, 11, 0, 59}, 3035 {7, 0, 11, 0, 57}, 3036 {7, 0, 10, 0, 61}, 3037 {7, 0, 10, 0, 59}, 3038 {7, 0, 10, 0, 57}, 3039 {7, 0, 9, 0, 62}, 3040 {7, 0, 9, 0, 60}, 3041 {7, 0, 9, 0, 58}, 3042 {7, 0, 9, 0, 57}, 3043 {7, 0, 8, 0, 62}, 3044 {7, 0, 8, 0, 60}, 3045 {7, 0, 8, 0, 58}, 3046 {7, 0, 8, 0, 57}, 3047 {7, 0, 8, 0, 55}, 3048 {7, 0, 7, 0, 61}, 3049 {7, 0, 7, 0, 60}, 3050 {7, 0, 7, 0, 58}, 3051 {7, 0, 7, 0, 56}, 3052 {7, 0, 7, 0, 55}, 3053 {7, 0, 6, 0, 62}, 3054 {7, 0, 6, 0, 60}, 3055 {7, 0, 6, 0, 58}, 3056 {7, 0, 6, 0, 57}, 3057 {7, 0, 6, 0, 55}, 3058 {7, 0, 6, 0, 54}, 3059 {7, 0, 6, 0, 52}, 3060 {7, 0, 5, 0, 61}, 3061 {7, 0, 5, 0, 59}, 3062 {7, 0, 5, 0, 57}, 3063 {7, 0, 5, 0, 56}, 3064 {7, 0, 5, 0, 54}, 3065 {7, 0, 5, 0, 53}, 3066 {7, 0, 5, 0, 51}, 3067 {7, 0, 4, 0, 62}, 3068 {7, 0, 4, 0, 60}, 3069 {7, 0, 4, 0, 58}, 3070 {7, 0, 4, 0, 57}, 3071 {7, 0, 4, 0, 55}, 3072 {7, 0, 4, 0, 54}, 3073 {7, 0, 4, 0, 52}, 3074 {7, 0, 4, 0, 51}, 3075 {7, 0, 4, 0, 49}, 3076 {7, 0, 4, 0, 48}, 3077 {7, 0, 4, 0, 46}, 3078 {7, 0, 3, 0, 60}, 3079 {7, 0, 3, 0, 58}, 3080 {7, 0, 3, 0, 57}, 3081 {7, 0, 3, 0, 55}, 3082 {7, 0, 3, 0, 54}, 3083 {7, 0, 3, 0, 52}, 3084 {7, 0, 3, 0, 51}, 3085 {7, 0, 3, 0, 49}, 3086 {7, 0, 3, 0, 48}, 3087 {7, 0, 3, 0, 46}, 3088 {7, 0, 3, 0, 45}, 3089 {7, 0, 3, 0, 44}, 3090 {7, 0, 3, 0, 43}, 3091 {7, 0, 3, 0, 41}, 3092 {7, 0, 2, 0, 61}, 3093 {7, 0, 2, 0, 59}, 3094 {7, 0, 2, 0, 57}, 3095 {7, 0, 2, 0, 56}, 3096 {7, 0, 2, 0, 54}, 3097 {7, 0, 2, 0, 53}, 3098 {7, 0, 2, 0, 51}, 3099 {7, 0, 2, 0, 50}, 3100 {7, 0, 2, 0, 48}, 3101 {7, 0, 2, 0, 47}, 3102 {7, 0, 2, 0, 46}, 3103 {7, 0, 2, 0, 44}, 3104 {7, 0, 2, 0, 43}, 3105 {7, 0, 2, 0, 42}, 3106 {7, 0, 2, 0, 41}, 3107 {7, 0, 2, 0, 39}, 3108 {7, 0, 2, 0, 38}, 3109 {7, 0, 2, 0, 37}, 3110 {7, 0, 2, 0, 36}, 3111 {7, 0, 2, 0, 35}, 3112 {7, 0, 2, 0, 34}, 3113 {7, 0, 2, 0, 33}, 3114 {7, 0, 2, 0, 32}, 3115 {7, 0, 1, 0, 63}, 3116 {7, 0, 1, 0, 61}, 3117 {7, 0, 1, 0, 59}, 3118 {7, 0, 1, 0, 57}, 3119 }; 3120 3121 const struct lcnphy_tx_gain_tbl_entry dot11lcnphy_5GHz_gaintable_rev0[128] = { 3122 {255, 255, 0xf0, 0, 152}, 3123 {255, 255, 0xf0, 0, 147}, 3124 {255, 255, 0xf0, 0, 143}, 3125 {255, 255, 0xf0, 0, 139}, 3126 {255, 255, 0xf0, 0, 135}, 3127 {255, 255, 0xf0, 0, 131}, 3128 {255, 255, 0xf0, 0, 128}, 3129 {255, 255, 0xf0, 0, 124}, 3130 {255, 255, 0xf0, 0, 121}, 3131 {255, 255, 0xf0, 0, 117}, 3132 {255, 255, 0xf0, 0, 114}, 3133 {255, 255, 0xf0, 0, 111}, 3134 {255, 255, 0xf0, 0, 107}, 3135 {255, 255, 0xf0, 0, 104}, 3136 {255, 255, 0xf0, 0, 101}, 3137 {255, 255, 0xf0, 0, 99}, 3138 {255, 255, 0xf0, 0, 96}, 3139 {255, 255, 0xf0, 0, 93}, 3140 {255, 255, 0xf0, 0, 90}, 3141 {255, 255, 0xf0, 0, 88}, 3142 {255, 255, 0xf0, 0, 85}, 3143 {255, 255, 0xf0, 0, 83}, 3144 {255, 255, 0xf0, 0, 81}, 3145 {255, 255, 0xf0, 0, 78}, 3146 {255, 255, 0xf0, 0, 76}, 3147 {255, 255, 0xf0, 0, 74}, 3148 {255, 255, 0xf0, 0, 72}, 3149 {255, 255, 0xf0, 0, 70}, 3150 {255, 255, 0xf0, 0, 68}, 3151 {255, 255, 0xf0, 0, 66}, 3152 {255, 255, 0xf0, 0, 64}, 3153 {255, 248, 0xf0, 0, 64}, 3154 {255, 241, 0xf0, 0, 64}, 3155 {255, 251, 0xe0, 0, 64}, 3156 {255, 244, 0xe0, 0, 64}, 3157 {255, 254, 0xd0, 0, 64}, 3158 {255, 246, 0xd0, 0, 64}, 3159 {255, 239, 0xd0, 0, 64}, 3160 {255, 249, 0xc0, 0, 64}, 3161 {255, 242, 0xc0, 0, 64}, 3162 {255, 255, 0xb0, 0, 64}, 3163 {255, 248, 0xb0, 0, 64}, 3164 {255, 241, 0xb0, 0, 64}, 3165 {255, 254, 0xa0, 0, 64}, 3166 {255, 246, 0xa0, 0, 64}, 3167 {255, 239, 0xa0, 0, 64}, 3168 {255, 255, 0x90, 0, 64}, 3169 {255, 248, 0x90, 0, 64}, 3170 {255, 241, 0x90, 0, 64}, 3171 {255, 234, 0x90, 0, 64}, 3172 {255, 255, 0x80, 0, 64}, 3173 {255, 248, 0x80, 0, 64}, 3174 {255, 241, 0x80, 0, 64}, 3175 {255, 234, 0x80, 0, 64}, 3176 {255, 255, 0x70, 0, 64}, 3177 {255, 248, 0x70, 0, 64}, 3178 {255, 241, 0x70, 0, 64}, 3179 {255, 234, 0x70, 0, 64}, 3180 {255, 227, 0x70, 0, 64}, 3181 {255, 221, 0x70, 0, 64}, 3182 {255, 215, 0x70, 0, 64}, 3183 {255, 208, 0x70, 0, 64}, 3184 {255, 203, 0x70, 0, 64}, 3185 {255, 197, 0x70, 0, 64}, 3186 {255, 255, 0x60, 0, 64}, 3187 {255, 248, 0x60, 0, 64}, 3188 {255, 241, 0x60, 0, 64}, 3189 {255, 234, 0x60, 0, 64}, 3190 {255, 227, 0x60, 0, 64}, 3191 {255, 221, 0x60, 0, 64}, 3192 {255, 255, 0x50, 0, 64}, 3193 {255, 248, 0x50, 0, 64}, 3194 {255, 241, 0x50, 0, 64}, 3195 {255, 234, 0x50, 0, 64}, 3196 {255, 227, 0x50, 0, 64}, 3197 {255, 221, 0x50, 0, 64}, 3198 {255, 215, 0x50, 0, 64}, 3199 {255, 208, 0x50, 0, 64}, 3200 {255, 255, 0x40, 0, 64}, 3201 {255, 248, 0x40, 0, 64}, 3202 {255, 241, 0x40, 0, 64}, 3203 {255, 234, 0x40, 0, 64}, 3204 {255, 227, 0x40, 0, 64}, 3205 {255, 221, 0x40, 0, 64}, 3206 {255, 215, 0x40, 0, 64}, 3207 {255, 208, 0x40, 0, 64}, 3208 {255, 203, 0x40, 0, 64}, 3209 {255, 197, 0x40, 0, 64}, 3210 {255, 255, 0x30, 0, 64}, 3211 {255, 248, 0x30, 0, 64}, 3212 {255, 241, 0x30, 0, 64}, 3213 {255, 234, 0x30, 0, 64}, 3214 {255, 227, 0x30, 0, 64}, 3215 {255, 221, 0x30, 0, 64}, 3216 {255, 215, 0x30, 0, 64}, 3217 {255, 208, 0x30, 0, 64}, 3218 {255, 203, 0x30, 0, 64}, 3219 {255, 197, 0x30, 0, 64}, 3220 {255, 191, 0x30, 0, 64}, 3221 {255, 186, 0x30, 0, 64}, 3222 {255, 181, 0x30, 0, 64}, 3223 {255, 175, 0x30, 0, 64}, 3224 {255, 255, 0x20, 0, 64}, 3225 {255, 248, 0x20, 0, 64}, 3226 {255, 241, 0x20, 0, 64}, 3227 {255, 234, 0x20, 0, 64}, 3228 {255, 227, 0x20, 0, 64}, 3229 {255, 221, 0x20, 0, 64}, 3230 {255, 215, 0x20, 0, 64}, 3231 {255, 208, 0x20, 0, 64}, 3232 {255, 203, 0x20, 0, 64}, 3233 {255, 197, 0x20, 0, 64}, 3234 {255, 191, 0x20, 0, 64}, 3235 {255, 186, 0x20, 0, 64}, 3236 {255, 181, 0x20, 0, 64}, 3237 {255, 175, 0x20, 0, 64}, 3238 {255, 170, 0x20, 0, 64}, 3239 {255, 166, 0x20, 0, 64}, 3240 {255, 161, 0x20, 0, 64}, 3241 {255, 156, 0x20, 0, 64}, 3242 {255, 152, 0x20, 0, 64}, 3243 {255, 148, 0x20, 0, 64}, 3244 {255, 143, 0x20, 0, 64}, 3245 {255, 139, 0x20, 0, 64}, 3246 {255, 135, 0x20, 0, 64}, 3247 {255, 132, 0x20, 0, 64}, 3248 {255, 255, 0x10, 0, 64}, 3249 {255, 248, 0x10, 0, 64}, 3250 }; 3251