diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-1000.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 18 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c | 21 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-eeprom.h | 12 |
7 files changed, 36 insertions, 31 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c index e881b083963c..3100a72b9b44 100644 --- a/drivers/net/wireless/iwlwifi/iwl-1000.c +++ b/drivers/net/wireless/iwlwifi/iwl-1000.c | |||
@@ -278,7 +278,6 @@ struct iwl_cfg iwl1000_bgn_cfg = { | |||
278 | .fw_name_pre = IWL1000_FW_PRE, | 278 | .fw_name_pre = IWL1000_FW_PRE, |
279 | .ucode_api_max = IWL1000_UCODE_API_MAX, | 279 | .ucode_api_max = IWL1000_UCODE_API_MAX, |
280 | .ucode_api_min = IWL1000_UCODE_API_MIN, | 280 | .ucode_api_min = IWL1000_UCODE_API_MIN, |
281 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
282 | .valid_tx_ant = ANT_A, | 281 | .valid_tx_ant = ANT_A, |
283 | .valid_rx_ant = ANT_AB, | 282 | .valid_rx_ant = ANT_AB, |
284 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, | 283 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, |
@@ -295,7 +294,6 @@ struct iwl_cfg iwl1000_bg_cfg = { | |||
295 | .fw_name_pre = IWL1000_FW_PRE, | 294 | .fw_name_pre = IWL1000_FW_PRE, |
296 | .ucode_api_max = IWL1000_UCODE_API_MAX, | 295 | .ucode_api_max = IWL1000_UCODE_API_MAX, |
297 | .ucode_api_min = IWL1000_UCODE_API_MIN, | 296 | .ucode_api_min = IWL1000_UCODE_API_MIN, |
298 | .sku = IWL_SKU_G, | ||
299 | .valid_tx_ant = ANT_A, | 297 | .valid_tx_ant = ANT_A, |
300 | .valid_rx_ant = ANT_AB, | 298 | .valid_rx_ant = ANT_AB, |
301 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, | 299 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, |
@@ -311,7 +309,6 @@ struct iwl_cfg iwl100_bgn_cfg = { | |||
311 | .fw_name_pre = IWL100_FW_PRE, | 309 | .fw_name_pre = IWL100_FW_PRE, |
312 | .ucode_api_max = IWL100_UCODE_API_MAX, | 310 | .ucode_api_max = IWL100_UCODE_API_MAX, |
313 | .ucode_api_min = IWL100_UCODE_API_MIN, | 311 | .ucode_api_min = IWL100_UCODE_API_MIN, |
314 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
315 | .valid_tx_ant = ANT_A, | 312 | .valid_tx_ant = ANT_A, |
316 | .valid_rx_ant = ANT_A, | 313 | .valid_rx_ant = ANT_A, |
317 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, | 314 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, |
@@ -328,7 +325,6 @@ struct iwl_cfg iwl100_bg_cfg = { | |||
328 | .fw_name_pre = IWL100_FW_PRE, | 325 | .fw_name_pre = IWL100_FW_PRE, |
329 | .ucode_api_max = IWL100_UCODE_API_MAX, | 326 | .ucode_api_max = IWL100_UCODE_API_MAX, |
330 | .ucode_api_min = IWL100_UCODE_API_MIN, | 327 | .ucode_api_min = IWL100_UCODE_API_MIN, |
331 | .sku = IWL_SKU_G, | ||
332 | .valid_tx_ant = ANT_A, | 328 | .valid_tx_ant = ANT_A, |
333 | .valid_rx_ant = ANT_A, | 329 | .valid_rx_ant = ANT_A, |
334 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, | 330 | .eeprom_ver = EEPROM_1000_EEPROM_VERSION, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 2ec868d328b9..6788ceb37686 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -2624,7 +2624,6 @@ struct iwl_cfg iwl4965_agn_cfg = { | |||
2624 | .fw_name_pre = IWL4965_FW_PRE, | 2624 | .fw_name_pre = IWL4965_FW_PRE, |
2625 | .ucode_api_max = IWL4965_UCODE_API_MAX, | 2625 | .ucode_api_max = IWL4965_UCODE_API_MAX, |
2626 | .ucode_api_min = IWL4965_UCODE_API_MIN, | 2626 | .ucode_api_min = IWL4965_UCODE_API_MIN, |
2627 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
2628 | .valid_tx_ant = ANT_AB, | 2627 | .valid_tx_ant = ANT_AB, |
2629 | .valid_rx_ant = ANT_ABC, | 2628 | .valid_rx_ant = ANT_ABC, |
2630 | .eeprom_ver = EEPROM_4965_EEPROM_VERSION, | 2629 | .eeprom_ver = EEPROM_4965_EEPROM_VERSION, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index b147580fe228..3ee0f7c035cf 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -527,7 +527,6 @@ struct iwl_cfg iwl5300_agn_cfg = { | |||
527 | .fw_name_pre = IWL5000_FW_PRE, | 527 | .fw_name_pre = IWL5000_FW_PRE, |
528 | .ucode_api_max = IWL5000_UCODE_API_MAX, | 528 | .ucode_api_max = IWL5000_UCODE_API_MAX, |
529 | .ucode_api_min = IWL5000_UCODE_API_MIN, | 529 | .ucode_api_min = IWL5000_UCODE_API_MIN, |
530 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
531 | .valid_tx_ant = ANT_ABC, | 530 | .valid_tx_ant = ANT_ABC, |
532 | .valid_rx_ant = ANT_ABC, | 531 | .valid_rx_ant = ANT_ABC, |
533 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, | 532 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, |
@@ -544,7 +543,6 @@ struct iwl_cfg iwl5100_bgn_cfg = { | |||
544 | .fw_name_pre = IWL5000_FW_PRE, | 543 | .fw_name_pre = IWL5000_FW_PRE, |
545 | .ucode_api_max = IWL5000_UCODE_API_MAX, | 544 | .ucode_api_max = IWL5000_UCODE_API_MAX, |
546 | .ucode_api_min = IWL5000_UCODE_API_MIN, | 545 | .ucode_api_min = IWL5000_UCODE_API_MIN, |
547 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
548 | .valid_tx_ant = ANT_B, | 546 | .valid_tx_ant = ANT_B, |
549 | .valid_rx_ant = ANT_AB, | 547 | .valid_rx_ant = ANT_AB, |
550 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, | 548 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, |
@@ -561,7 +559,6 @@ struct iwl_cfg iwl5100_abg_cfg = { | |||
561 | .fw_name_pre = IWL5000_FW_PRE, | 559 | .fw_name_pre = IWL5000_FW_PRE, |
562 | .ucode_api_max = IWL5000_UCODE_API_MAX, | 560 | .ucode_api_max = IWL5000_UCODE_API_MAX, |
563 | .ucode_api_min = IWL5000_UCODE_API_MIN, | 561 | .ucode_api_min = IWL5000_UCODE_API_MIN, |
564 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
565 | .valid_tx_ant = ANT_B, | 562 | .valid_tx_ant = ANT_B, |
566 | .valid_rx_ant = ANT_AB, | 563 | .valid_rx_ant = ANT_AB, |
567 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, | 564 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, |
@@ -577,7 +574,6 @@ struct iwl_cfg iwl5100_agn_cfg = { | |||
577 | .fw_name_pre = IWL5000_FW_PRE, | 574 | .fw_name_pre = IWL5000_FW_PRE, |
578 | .ucode_api_max = IWL5000_UCODE_API_MAX, | 575 | .ucode_api_max = IWL5000_UCODE_API_MAX, |
579 | .ucode_api_min = IWL5000_UCODE_API_MIN, | 576 | .ucode_api_min = IWL5000_UCODE_API_MIN, |
580 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
581 | .valid_tx_ant = ANT_B, | 577 | .valid_tx_ant = ANT_B, |
582 | .valid_rx_ant = ANT_AB, | 578 | .valid_rx_ant = ANT_AB, |
583 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, | 579 | .eeprom_ver = EEPROM_5000_EEPROM_VERSION, |
@@ -594,7 +590,6 @@ struct iwl_cfg iwl5350_agn_cfg = { | |||
594 | .fw_name_pre = IWL5000_FW_PRE, | 590 | .fw_name_pre = IWL5000_FW_PRE, |
595 | .ucode_api_max = IWL5000_UCODE_API_MAX, | 591 | .ucode_api_max = IWL5000_UCODE_API_MAX, |
596 | .ucode_api_min = IWL5000_UCODE_API_MIN, | 592 | .ucode_api_min = IWL5000_UCODE_API_MIN, |
597 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
598 | .valid_tx_ant = ANT_ABC, | 593 | .valid_tx_ant = ANT_ABC, |
599 | .valid_rx_ant = ANT_ABC, | 594 | .valid_rx_ant = ANT_ABC, |
600 | .eeprom_ver = EEPROM_5050_EEPROM_VERSION, | 595 | .eeprom_ver = EEPROM_5050_EEPROM_VERSION, |
@@ -611,7 +606,6 @@ struct iwl_cfg iwl5150_agn_cfg = { | |||
611 | .fw_name_pre = IWL5150_FW_PRE, | 606 | .fw_name_pre = IWL5150_FW_PRE, |
612 | .ucode_api_max = IWL5150_UCODE_API_MAX, | 607 | .ucode_api_max = IWL5150_UCODE_API_MAX, |
613 | .ucode_api_min = IWL5150_UCODE_API_MIN, | 608 | .ucode_api_min = IWL5150_UCODE_API_MIN, |
614 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
615 | .valid_tx_ant = ANT_A, | 609 | .valid_tx_ant = ANT_A, |
616 | .valid_rx_ant = ANT_AB, | 610 | .valid_rx_ant = ANT_AB, |
617 | .eeprom_ver = EEPROM_5050_EEPROM_VERSION, | 611 | .eeprom_ver = EEPROM_5050_EEPROM_VERSION, |
@@ -629,7 +623,6 @@ struct iwl_cfg iwl5150_abg_cfg = { | |||
629 | .fw_name_pre = IWL5150_FW_PRE, | 623 | .fw_name_pre = IWL5150_FW_PRE, |
630 | .ucode_api_max = IWL5150_UCODE_API_MAX, | 624 | .ucode_api_max = IWL5150_UCODE_API_MAX, |
631 | .ucode_api_min = IWL5150_UCODE_API_MIN, | 625 | .ucode_api_min = IWL5150_UCODE_API_MIN, |
632 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
633 | .valid_tx_ant = ANT_A, | 626 | .valid_tx_ant = ANT_A, |
634 | .valid_rx_ant = ANT_AB, | 627 | .valid_rx_ant = ANT_AB, |
635 | .eeprom_ver = EEPROM_5050_EEPROM_VERSION, | 628 | .eeprom_ver = EEPROM_5050_EEPROM_VERSION, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index 9f835ac905f1..0cc66fdc7a0d 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -556,7 +556,6 @@ struct iwl_cfg iwl6000g2a_2agn_cfg = { | |||
556 | .fw_name_pre = IWL6000G2A_FW_PRE, | 556 | .fw_name_pre = IWL6000G2A_FW_PRE, |
557 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 557 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
558 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 558 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
559 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
560 | .valid_tx_ant = ANT_AB, | 559 | .valid_tx_ant = ANT_AB, |
561 | .valid_rx_ant = ANT_AB, | 560 | .valid_rx_ant = ANT_AB, |
562 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 561 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -575,7 +574,6 @@ struct iwl_cfg iwl6000g2a_2abg_cfg = { | |||
575 | .fw_name_pre = IWL6000G2A_FW_PRE, | 574 | .fw_name_pre = IWL6000G2A_FW_PRE, |
576 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 575 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
577 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 576 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
578 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
579 | .valid_tx_ant = ANT_AB, | 577 | .valid_tx_ant = ANT_AB, |
580 | .valid_rx_ant = ANT_AB, | 578 | .valid_rx_ant = ANT_AB, |
581 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 579 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -593,7 +591,6 @@ struct iwl_cfg iwl6000g2a_2bg_cfg = { | |||
593 | .fw_name_pre = IWL6000G2A_FW_PRE, | 591 | .fw_name_pre = IWL6000G2A_FW_PRE, |
594 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 592 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
595 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 593 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
596 | .sku = IWL_SKU_G, | ||
597 | .valid_tx_ant = ANT_AB, | 594 | .valid_tx_ant = ANT_AB, |
598 | .valid_rx_ant = ANT_AB, | 595 | .valid_rx_ant = ANT_AB, |
599 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 596 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -611,7 +608,6 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = { | |||
611 | .fw_name_pre = IWL6000G2B_FW_PRE, | 608 | .fw_name_pre = IWL6000G2B_FW_PRE, |
612 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 609 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
613 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 610 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
614 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
615 | .valid_tx_ant = ANT_AB, | 611 | .valid_tx_ant = ANT_AB, |
616 | .valid_rx_ant = ANT_AB, | 612 | .valid_rx_ant = ANT_AB, |
617 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 613 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -633,7 +629,6 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = { | |||
633 | .fw_name_pre = IWL6000G2B_FW_PRE, | 629 | .fw_name_pre = IWL6000G2B_FW_PRE, |
634 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 630 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
635 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 631 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
636 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
637 | .valid_tx_ant = ANT_AB, | 632 | .valid_tx_ant = ANT_AB, |
638 | .valid_rx_ant = ANT_AB, | 633 | .valid_rx_ant = ANT_AB, |
639 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 634 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -654,7 +649,6 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = { | |||
654 | .fw_name_pre = IWL6000G2B_FW_PRE, | 649 | .fw_name_pre = IWL6000G2B_FW_PRE, |
655 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 650 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
656 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 651 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
657 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
658 | .valid_tx_ant = ANT_AB, | 652 | .valid_tx_ant = ANT_AB, |
659 | .valid_rx_ant = ANT_AB, | 653 | .valid_rx_ant = ANT_AB, |
660 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 654 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -676,7 +670,6 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = { | |||
676 | .fw_name_pre = IWL6000G2B_FW_PRE, | 670 | .fw_name_pre = IWL6000G2B_FW_PRE, |
677 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 671 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
678 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 672 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
679 | .sku = IWL_SKU_G, | ||
680 | .valid_tx_ant = ANT_AB, | 673 | .valid_tx_ant = ANT_AB, |
681 | .valid_rx_ant = ANT_AB, | 674 | .valid_rx_ant = ANT_AB, |
682 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 675 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -697,7 +690,6 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = { | |||
697 | .fw_name_pre = IWL6000G2B_FW_PRE, | 690 | .fw_name_pre = IWL6000G2B_FW_PRE, |
698 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 691 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
699 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 692 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
700 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
701 | .valid_tx_ant = ANT_A, | 693 | .valid_tx_ant = ANT_A, |
702 | .valid_rx_ant = ANT_AB, | 694 | .valid_rx_ant = ANT_AB, |
703 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 695 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -719,7 +711,6 @@ struct iwl_cfg iwl6000g2b_bg_cfg = { | |||
719 | .fw_name_pre = IWL6000G2B_FW_PRE, | 711 | .fw_name_pre = IWL6000G2B_FW_PRE, |
720 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 712 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
721 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 713 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
722 | .sku = IWL_SKU_G, | ||
723 | .valid_tx_ant = ANT_A, | 714 | .valid_tx_ant = ANT_A, |
724 | .valid_rx_ant = ANT_AB, | 715 | .valid_rx_ant = ANT_AB, |
725 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 716 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -743,7 +734,6 @@ struct iwl_cfg iwl6000i_2agn_cfg = { | |||
743 | .fw_name_pre = IWL6000_FW_PRE, | 734 | .fw_name_pre = IWL6000_FW_PRE, |
744 | .ucode_api_max = IWL6000_UCODE_API_MAX, | 735 | .ucode_api_max = IWL6000_UCODE_API_MAX, |
745 | .ucode_api_min = IWL6000_UCODE_API_MIN, | 736 | .ucode_api_min = IWL6000_UCODE_API_MIN, |
746 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
747 | .valid_tx_ant = ANT_BC, | 737 | .valid_tx_ant = ANT_BC, |
748 | .valid_rx_ant = ANT_BC, | 738 | .valid_rx_ant = ANT_BC, |
749 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | 739 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, |
@@ -761,7 +751,6 @@ struct iwl_cfg iwl6000i_2abg_cfg = { | |||
761 | .fw_name_pre = IWL6000_FW_PRE, | 751 | .fw_name_pre = IWL6000_FW_PRE, |
762 | .ucode_api_max = IWL6000_UCODE_API_MAX, | 752 | .ucode_api_max = IWL6000_UCODE_API_MAX, |
763 | .ucode_api_min = IWL6000_UCODE_API_MIN, | 753 | .ucode_api_min = IWL6000_UCODE_API_MIN, |
764 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
765 | .valid_tx_ant = ANT_BC, | 754 | .valid_tx_ant = ANT_BC, |
766 | .valid_rx_ant = ANT_BC, | 755 | .valid_rx_ant = ANT_BC, |
767 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | 756 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, |
@@ -778,7 +767,6 @@ struct iwl_cfg iwl6000i_2bg_cfg = { | |||
778 | .fw_name_pre = IWL6000_FW_PRE, | 767 | .fw_name_pre = IWL6000_FW_PRE, |
779 | .ucode_api_max = IWL6000_UCODE_API_MAX, | 768 | .ucode_api_max = IWL6000_UCODE_API_MAX, |
780 | .ucode_api_min = IWL6000_UCODE_API_MIN, | 769 | .ucode_api_min = IWL6000_UCODE_API_MIN, |
781 | .sku = IWL_SKU_G, | ||
782 | .valid_tx_ant = ANT_BC, | 770 | .valid_tx_ant = ANT_BC, |
783 | .valid_rx_ant = ANT_BC, | 771 | .valid_rx_ant = ANT_BC, |
784 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | 772 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, |
@@ -795,7 +783,6 @@ struct iwl_cfg iwl6050_2agn_cfg = { | |||
795 | .fw_name_pre = IWL6050_FW_PRE, | 783 | .fw_name_pre = IWL6050_FW_PRE, |
796 | .ucode_api_max = IWL6050_UCODE_API_MAX, | 784 | .ucode_api_max = IWL6050_UCODE_API_MAX, |
797 | .ucode_api_min = IWL6050_UCODE_API_MIN, | 785 | .ucode_api_min = IWL6050_UCODE_API_MIN, |
798 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
799 | .valid_tx_ant = ANT_AB, | 786 | .valid_tx_ant = ANT_AB, |
800 | .valid_rx_ant = ANT_AB, | 787 | .valid_rx_ant = ANT_AB, |
801 | .ops = &iwl6050_ops, | 788 | .ops = &iwl6050_ops, |
@@ -813,7 +800,6 @@ struct iwl_cfg iwl6050g2_bgn_cfg = { | |||
813 | .fw_name_pre = IWL6050_FW_PRE, | 800 | .fw_name_pre = IWL6050_FW_PRE, |
814 | .ucode_api_max = IWL6050_UCODE_API_MAX, | 801 | .ucode_api_max = IWL6050_UCODE_API_MAX, |
815 | .ucode_api_min = IWL6050_UCODE_API_MIN, | 802 | .ucode_api_min = IWL6050_UCODE_API_MIN, |
816 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
817 | .valid_tx_ant = ANT_A, | 803 | .valid_tx_ant = ANT_A, |
818 | .valid_rx_ant = ANT_AB, | 804 | .valid_rx_ant = ANT_AB, |
819 | .eeprom_ver = EEPROM_6050G2_EEPROM_VERSION, | 805 | .eeprom_ver = EEPROM_6050G2_EEPROM_VERSION, |
@@ -831,7 +817,6 @@ struct iwl_cfg iwl6050_2abg_cfg = { | |||
831 | .fw_name_pre = IWL6050_FW_PRE, | 817 | .fw_name_pre = IWL6050_FW_PRE, |
832 | .ucode_api_max = IWL6050_UCODE_API_MAX, | 818 | .ucode_api_max = IWL6050_UCODE_API_MAX, |
833 | .ucode_api_min = IWL6050_UCODE_API_MIN, | 819 | .ucode_api_min = IWL6050_UCODE_API_MIN, |
834 | .sku = IWL_SKU_A|IWL_SKU_G, | ||
835 | .valid_tx_ant = ANT_AB, | 820 | .valid_tx_ant = ANT_AB, |
836 | .valid_rx_ant = ANT_AB, | 821 | .valid_rx_ant = ANT_AB, |
837 | .eeprom_ver = EEPROM_6050_EEPROM_VERSION, | 822 | .eeprom_ver = EEPROM_6050_EEPROM_VERSION, |
@@ -848,7 +833,6 @@ struct iwl_cfg iwl6000_3agn_cfg = { | |||
848 | .fw_name_pre = IWL6000_FW_PRE, | 833 | .fw_name_pre = IWL6000_FW_PRE, |
849 | .ucode_api_max = IWL6000_UCODE_API_MAX, | 834 | .ucode_api_max = IWL6000_UCODE_API_MAX, |
850 | .ucode_api_min = IWL6000_UCODE_API_MIN, | 835 | .ucode_api_min = IWL6000_UCODE_API_MIN, |
851 | .sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N, | ||
852 | .valid_tx_ant = ANT_ABC, | 836 | .valid_tx_ant = ANT_ABC, |
853 | .valid_rx_ant = ANT_ABC, | 837 | .valid_rx_ant = ANT_ABC, |
854 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, | 838 | .eeprom_ver = EEPROM_6000_EEPROM_VERSION, |
@@ -866,7 +850,6 @@ struct iwl_cfg iwl130_bgn_cfg = { | |||
866 | .fw_name_pre = IWL6000G2B_FW_PRE, | 850 | .fw_name_pre = IWL6000G2B_FW_PRE, |
867 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 851 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
868 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 852 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
869 | .sku = IWL_SKU_G|IWL_SKU_N, | ||
870 | .valid_tx_ant = ANT_A, | 853 | .valid_tx_ant = ANT_A, |
871 | .valid_rx_ant = ANT_A, | 854 | .valid_rx_ant = ANT_A, |
872 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 855 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
@@ -887,7 +870,6 @@ struct iwl_cfg iwl130_bg_cfg = { | |||
887 | .fw_name_pre = IWL6000G2B_FW_PRE, | 870 | .fw_name_pre = IWL6000G2B_FW_PRE, |
888 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, | 871 | .ucode_api_max = IWL6000G2_UCODE_API_MAX, |
889 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, | 872 | .ucode_api_min = IWL6000G2_UCODE_API_MIN, |
890 | .sku = IWL_SKU_G, | ||
891 | .valid_tx_ant = ANT_A, | 873 | .valid_tx_ant = ANT_A, |
892 | .valid_rx_ant = ANT_A, | 874 | .valid_rx_ant = ANT_A, |
893 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, | 875 | .eeprom_ver = EEPROM_6000G2_EEPROM_VERSION, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c index a650baba0809..8a4d3acb9b79 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-eeprom.c | |||
@@ -248,6 +248,27 @@ err: | |||
248 | 248 | ||
249 | } | 249 | } |
250 | 250 | ||
251 | int iwl_eeprom_check_sku(struct iwl_priv *priv) | ||
252 | { | ||
253 | u16 eeprom_sku; | ||
254 | |||
255 | eeprom_sku = iwl_eeprom_query16(priv, EEPROM_SKU_CAP); | ||
256 | |||
257 | priv->cfg->sku = ((eeprom_sku & EEPROM_SKU_CAP_BAND_SELECTION) >> | ||
258 | EEPROM_SKU_CAP_BAND_POS); | ||
259 | if (eeprom_sku & EEPROM_SKU_CAP_11N_ENABLE) | ||
260 | priv->cfg->sku |= IWL_SKU_N; | ||
261 | |||
262 | if (!priv->cfg->sku) { | ||
263 | IWL_ERR(priv, "Invalid device sku\n"); | ||
264 | return -EINVAL; | ||
265 | } | ||
266 | |||
267 | IWL_INFO(priv, "Device SKU: 0X%x\n", priv->cfg->sku); | ||
268 | |||
269 | return 0; | ||
270 | } | ||
271 | |||
251 | void iwl_eeprom_get_mac(const struct iwl_priv *priv, u8 *mac) | 272 | void iwl_eeprom_get_mac(const struct iwl_priv *priv, u8 *mac) |
252 | { | 273 | { |
253 | const u8 *addr = priv->cfg->ops->lib->eeprom_ops.query_addr(priv, | 274 | const u8 *addr = priv->cfg->ops->lib->eeprom_ops.query_addr(priv, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index d97691261ace..59af06d3511c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -4134,6 +4134,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
4134 | if (err) | 4134 | if (err) |
4135 | goto out_free_eeprom; | 4135 | goto out_free_eeprom; |
4136 | 4136 | ||
4137 | err = iwl_eeprom_check_sku(priv); | ||
4138 | if (err) | ||
4139 | goto out_free_eeprom; | ||
4140 | |||
4137 | /* extract MAC Address */ | 4141 | /* extract MAC Address */ |
4138 | iwl_eeprom_get_mac(priv, priv->addresses[0].addr); | 4142 | iwl_eeprom_get_mac(priv, priv->addresses[0].addr); |
4139 | IWL_DEBUG_INFO(priv, "MAC address: %pM\n", priv->addresses[0].addr); | 4143 | IWL_DEBUG_INFO(priv, "MAC address: %pM\n", priv->addresses[0].addr); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h index d9b590625ae4..e87be1e551aa 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h | |||
@@ -110,9 +110,18 @@ enum { | |||
110 | }; | 110 | }; |
111 | 111 | ||
112 | /* SKU Capabilities */ | 112 | /* SKU Capabilities */ |
113 | /* 3945 only */ | ||
113 | #define EEPROM_SKU_CAP_SW_RF_KILL_ENABLE (1 << 0) | 114 | #define EEPROM_SKU_CAP_SW_RF_KILL_ENABLE (1 << 0) |
114 | #define EEPROM_SKU_CAP_HW_RF_KILL_ENABLE (1 << 1) | 115 | #define EEPROM_SKU_CAP_HW_RF_KILL_ENABLE (1 << 1) |
115 | 116 | ||
117 | /* 5000 and up */ | ||
118 | #define EEPROM_SKU_CAP_BAND_POS (4) | ||
119 | #define EEPROM_SKU_CAP_BAND_SELECTION \ | ||
120 | (3 << EEPROM_SKU_CAP_BAND_POS) | ||
121 | #define EEPROM_SKU_CAP_11N_ENABLE (1 << 6) | ||
122 | #define EEPROM_SKU_CAP_AMT_ENABLE (1 << 7) | ||
123 | #define EEPROM_SKU_CAP_IPAN_ENABLE (1 << 8) | ||
124 | |||
116 | /* *regulatory* channel data format in eeprom, one for each channel. | 125 | /* *regulatory* channel data format in eeprom, one for each channel. |
117 | * There are separate entries for HT40 (40 MHz) vs. normal (20 MHz) channels. */ | 126 | * There are separate entries for HT40 (40 MHz) vs. normal (20 MHz) channels. */ |
118 | struct iwl_eeprom_channel { | 127 | struct iwl_eeprom_channel { |
@@ -397,7 +406,7 @@ struct iwl_eeprom_calib_info { | |||
397 | #define EEPROM_BOARD_REVISION (2*0x35) /* 2 bytes */ | 406 | #define EEPROM_BOARD_REVISION (2*0x35) /* 2 bytes */ |
398 | #define EEPROM_BOARD_PBA_NUMBER (2*0x3B+1) /* 9 bytes */ | 407 | #define EEPROM_BOARD_PBA_NUMBER (2*0x3B+1) /* 9 bytes */ |
399 | #define EEPROM_VERSION (2*0x44) /* 2 bytes */ | 408 | #define EEPROM_VERSION (2*0x44) /* 2 bytes */ |
400 | #define EEPROM_SKU_CAP (2*0x45) /* 1 bytes */ | 409 | #define EEPROM_SKU_CAP (2*0x45) /* 2 bytes */ |
401 | #define EEPROM_OEM_MODE (2*0x46) /* 2 bytes */ | 410 | #define EEPROM_OEM_MODE (2*0x46) /* 2 bytes */ |
402 | #define EEPROM_WOWLAN_MODE (2*0x47) /* 2 bytes */ | 411 | #define EEPROM_WOWLAN_MODE (2*0x47) /* 2 bytes */ |
403 | #define EEPROM_RADIO_CONFIG (2*0x48) /* 2 bytes */ | 412 | #define EEPROM_RADIO_CONFIG (2*0x48) /* 2 bytes */ |
@@ -504,6 +513,7 @@ struct iwl_eeprom_ops { | |||
504 | int iwl_eeprom_init(struct iwl_priv *priv); | 513 | int iwl_eeprom_init(struct iwl_priv *priv); |
505 | void iwl_eeprom_free(struct iwl_priv *priv); | 514 | void iwl_eeprom_free(struct iwl_priv *priv); |
506 | int iwl_eeprom_check_version(struct iwl_priv *priv); | 515 | int iwl_eeprom_check_version(struct iwl_priv *priv); |
516 | int iwl_eeprom_check_sku(struct iwl_priv *priv); | ||
507 | const u8 *iwl_eeprom_query_addr(const struct iwl_priv *priv, size_t offset); | 517 | const u8 *iwl_eeprom_query_addr(const struct iwl_priv *priv, size_t offset); |
508 | int iwlcore_eeprom_verify_signature(struct iwl_priv *priv); | 518 | int iwlcore_eeprom_verify_signature(struct iwl_priv *priv); |
509 | u16 iwl_eeprom_query16(const struct iwl_priv *priv, size_t offset); | 519 | u16 iwl_eeprom_query16(const struct iwl_priv *priv, size_t offset); |