aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-1000.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c18
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-led.c10
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-led.h6
8 files changed, 44 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
index 068f1e1e3297..e881b083963c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-1000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
@@ -287,6 +287,7 @@ struct iwl_cfg iwl1000_bgn_cfg = {
287 .mod_params = &iwlagn_mod_params, 287 .mod_params = &iwlagn_mod_params,
288 .base_params = &iwl1000_base_params, 288 .base_params = &iwl1000_base_params,
289 .ht_params = &iwl1000_ht_params, 289 .ht_params = &iwl1000_ht_params,
290 .led_mode = IWL_LED_BLINK,
290}; 291};
291 292
292struct iwl_cfg iwl1000_bg_cfg = { 293struct iwl_cfg iwl1000_bg_cfg = {
@@ -302,6 +303,7 @@ struct iwl_cfg iwl1000_bg_cfg = {
302 .ops = &iwl1000_ops, 303 .ops = &iwl1000_ops,
303 .mod_params = &iwlagn_mod_params, 304 .mod_params = &iwlagn_mod_params,
304 .base_params = &iwl1000_base_params, 305 .base_params = &iwl1000_base_params,
306 .led_mode = IWL_LED_BLINK,
305}; 307};
306 308
307struct iwl_cfg iwl100_bgn_cfg = { 309struct iwl_cfg iwl100_bgn_cfg = {
@@ -318,6 +320,7 @@ struct iwl_cfg iwl100_bgn_cfg = {
318 .mod_params = &iwlagn_mod_params, 320 .mod_params = &iwlagn_mod_params,
319 .base_params = &iwl1000_base_params, 321 .base_params = &iwl1000_base_params,
320 .ht_params = &iwl1000_ht_params, 322 .ht_params = &iwl1000_ht_params,
323 .led_mode = IWL_LED_RF_STATE,
321}; 324};
322 325
323struct iwl_cfg iwl100_bg_cfg = { 326struct iwl_cfg iwl100_bg_cfg = {
@@ -333,6 +336,7 @@ struct iwl_cfg iwl100_bg_cfg = {
333 .ops = &iwl1000_ops, 336 .ops = &iwl1000_ops,
334 .mod_params = &iwlagn_mod_params, 337 .mod_params = &iwlagn_mod_params,
335 .base_params = &iwl1000_base_params, 338 .base_params = &iwl1000_base_params,
339 .led_mode = IWL_LED_RF_STATE,
336}; 340};
337 341
338MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); 342MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index ebac04b7887c..4503245211ac 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2788,6 +2788,7 @@ static struct iwl_cfg iwl3945_bg_cfg = {
2788 .ops = &iwl3945_ops, 2788 .ops = &iwl3945_ops,
2789 .mod_params = &iwl3945_mod_params, 2789 .mod_params = &iwl3945_mod_params,
2790 .base_params = &iwl3945_base_params, 2790 .base_params = &iwl3945_base_params,
2791 .led_mode = IWL_LED_BLINK,
2791}; 2792};
2792 2793
2793static struct iwl_cfg iwl3945_abg_cfg = { 2794static struct iwl_cfg iwl3945_abg_cfg = {
@@ -2800,6 +2801,7 @@ static struct iwl_cfg iwl3945_abg_cfg = {
2800 .ops = &iwl3945_ops, 2801 .ops = &iwl3945_ops,
2801 .mod_params = &iwl3945_mod_params, 2802 .mod_params = &iwl3945_mod_params,
2802 .base_params = &iwl3945_base_params, 2803 .base_params = &iwl3945_base_params,
2804 .led_mode = IWL_LED_BLINK,
2803}; 2805};
2804 2806
2805DEFINE_PCI_DEVICE_TABLE(iwl3945_hw_card_ids) = { 2807DEFINE_PCI_DEVICE_TABLE(iwl3945_hw_card_ids) = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index a172bd171a0c..19da3e5e9eeb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -2636,6 +2636,7 @@ struct iwl_cfg iwl4965_agn_cfg = {
2636 .ops = &iwl4965_ops, 2636 .ops = &iwl4965_ops,
2637 .mod_params = &iwlagn_mod_params, 2637 .mod_params = &iwlagn_mod_params,
2638 .base_params = &iwl4965_base_params, 2638 .base_params = &iwl4965_base_params,
2639 .led_mode = IWL_LED_BLINK,
2639 /* 2640 /*
2640 * Force use of chains B and C for scan RX on 5 GHz band 2641 * Force use of chains B and C for scan RX on 5 GHz band
2641 * because the device has off-channel reception on chain A. 2642 * because the device has off-channel reception on chain A.
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index ad43f0fdf919..b147580fe228 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -536,6 +536,7 @@ struct iwl_cfg iwl5300_agn_cfg = {
536 .mod_params = &iwlagn_mod_params, 536 .mod_params = &iwlagn_mod_params,
537 .base_params = &iwl5000_base_params, 537 .base_params = &iwl5000_base_params,
538 .ht_params = &iwl5000_ht_params, 538 .ht_params = &iwl5000_ht_params,
539 .led_mode = IWL_LED_BLINK,
539}; 540};
540 541
541struct iwl_cfg iwl5100_bgn_cfg = { 542struct iwl_cfg iwl5100_bgn_cfg = {
@@ -552,6 +553,7 @@ struct iwl_cfg iwl5100_bgn_cfg = {
552 .mod_params = &iwlagn_mod_params, 553 .mod_params = &iwlagn_mod_params,
553 .base_params = &iwl5000_base_params, 554 .base_params = &iwl5000_base_params,
554 .ht_params = &iwl5000_ht_params, 555 .ht_params = &iwl5000_ht_params,
556 .led_mode = IWL_LED_BLINK,
555}; 557};
556 558
557struct iwl_cfg iwl5100_abg_cfg = { 559struct iwl_cfg iwl5100_abg_cfg = {
@@ -567,6 +569,7 @@ struct iwl_cfg iwl5100_abg_cfg = {
567 .ops = &iwl5000_ops, 569 .ops = &iwl5000_ops,
568 .mod_params = &iwlagn_mod_params, 570 .mod_params = &iwlagn_mod_params,
569 .base_params = &iwl5000_base_params, 571 .base_params = &iwl5000_base_params,
572 .led_mode = IWL_LED_BLINK,
570}; 573};
571 574
572struct iwl_cfg iwl5100_agn_cfg = { 575struct iwl_cfg iwl5100_agn_cfg = {
@@ -583,6 +586,7 @@ struct iwl_cfg iwl5100_agn_cfg = {
583 .mod_params = &iwlagn_mod_params, 586 .mod_params = &iwlagn_mod_params,
584 .base_params = &iwl5000_base_params, 587 .base_params = &iwl5000_base_params,
585 .ht_params = &iwl5000_ht_params, 588 .ht_params = &iwl5000_ht_params,
589 .led_mode = IWL_LED_BLINK,
586}; 590};
587 591
588struct iwl_cfg iwl5350_agn_cfg = { 592struct iwl_cfg iwl5350_agn_cfg = {
@@ -599,6 +603,7 @@ struct iwl_cfg iwl5350_agn_cfg = {
599 .mod_params = &iwlagn_mod_params, 603 .mod_params = &iwlagn_mod_params,
600 .base_params = &iwl5000_base_params, 604 .base_params = &iwl5000_base_params,
601 .ht_params = &iwl5000_ht_params, 605 .ht_params = &iwl5000_ht_params,
606 .led_mode = IWL_LED_BLINK,
602}; 607};
603 608
604struct iwl_cfg iwl5150_agn_cfg = { 609struct iwl_cfg iwl5150_agn_cfg = {
@@ -616,6 +621,7 @@ struct iwl_cfg iwl5150_agn_cfg = {
616 .base_params = &iwl5000_base_params, 621 .base_params = &iwl5000_base_params,
617 .ht_params = &iwl5000_ht_params, 622 .ht_params = &iwl5000_ht_params,
618 .need_dc_calib = true, 623 .need_dc_calib = true,
624 .led_mode = IWL_LED_BLINK,
619}; 625};
620 626
621struct iwl_cfg iwl5150_abg_cfg = { 627struct iwl_cfg iwl5150_abg_cfg = {
@@ -632,6 +638,7 @@ struct iwl_cfg iwl5150_abg_cfg = {
632 .mod_params = &iwlagn_mod_params, 638 .mod_params = &iwlagn_mod_params,
633 .base_params = &iwl5000_base_params, 639 .base_params = &iwl5000_base_params,
634 .need_dc_calib = true, 640 .need_dc_calib = true,
641 .led_mode = IWL_LED_BLINK,
635}; 642};
636 643
637MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); 644MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index d8f9df699d83..9f835ac905f1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -567,6 +567,7 @@ struct iwl_cfg iwl6000g2a_2agn_cfg = {
567 .ht_params = &iwl6000_ht_params, 567 .ht_params = &iwl6000_ht_params,
568 .need_dc_calib = true, 568 .need_dc_calib = true,
569 .need_temp_offset_calib = true, 569 .need_temp_offset_calib = true,
570 .led_mode = IWL_LED_RF_STATE,
570}; 571};
571 572
572struct iwl_cfg iwl6000g2a_2abg_cfg = { 573struct iwl_cfg iwl6000g2a_2abg_cfg = {
@@ -584,6 +585,7 @@ struct iwl_cfg iwl6000g2a_2abg_cfg = {
584 .base_params = &iwl6000_base_params, 585 .base_params = &iwl6000_base_params,
585 .need_dc_calib = true, 586 .need_dc_calib = true,
586 .need_temp_offset_calib = true, 587 .need_temp_offset_calib = true,
588 .led_mode = IWL_LED_RF_STATE,
587}; 589};
588 590
589struct iwl_cfg iwl6000g2a_2bg_cfg = { 591struct iwl_cfg iwl6000g2a_2bg_cfg = {
@@ -601,6 +603,7 @@ struct iwl_cfg iwl6000g2a_2bg_cfg = {
601 .base_params = &iwl6000_base_params, 603 .base_params = &iwl6000_base_params,
602 .need_dc_calib = true, 604 .need_dc_calib = true,
603 .need_temp_offset_calib = true, 605 .need_temp_offset_calib = true,
606 .led_mode = IWL_LED_RF_STATE,
604}; 607};
605 608
606struct iwl_cfg iwl6000g2b_2agn_cfg = { 609struct iwl_cfg iwl6000g2b_2agn_cfg = {
@@ -620,6 +623,7 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = {
620 .ht_params = &iwl6000_ht_params, 623 .ht_params = &iwl6000_ht_params,
621 .need_dc_calib = true, 624 .need_dc_calib = true,
622 .need_temp_offset_calib = true, 625 .need_temp_offset_calib = true,
626 .led_mode = IWL_LED_RF_STATE,
623 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 627 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
624 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 628 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
625}; 629};
@@ -640,6 +644,7 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = {
640 .bt_params = &iwl6000_bt_params, 644 .bt_params = &iwl6000_bt_params,
641 .need_dc_calib = true, 645 .need_dc_calib = true,
642 .need_temp_offset_calib = true, 646 .need_temp_offset_calib = true,
647 .led_mode = IWL_LED_RF_STATE,
643 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 648 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
644 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 649 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
645}; 650};
@@ -661,6 +666,7 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = {
661 .ht_params = &iwl6000_ht_params, 666 .ht_params = &iwl6000_ht_params,
662 .need_dc_calib = true, 667 .need_dc_calib = true,
663 .need_temp_offset_calib = true, 668 .need_temp_offset_calib = true,
669 .led_mode = IWL_LED_RF_STATE,
664 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 670 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
665 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 671 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
666}; 672};
@@ -681,6 +687,7 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = {
681 .bt_params = &iwl6000_bt_params, 687 .bt_params = &iwl6000_bt_params,
682 .need_dc_calib = true, 688 .need_dc_calib = true,
683 .need_temp_offset_calib = true, 689 .need_temp_offset_calib = true,
690 .led_mode = IWL_LED_RF_STATE,
684 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 691 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
685 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 692 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
686}; 693};
@@ -702,6 +709,7 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = {
702 .ht_params = &iwl6000_ht_params, 709 .ht_params = &iwl6000_ht_params,
703 .need_dc_calib = true, 710 .need_dc_calib = true,
704 .need_temp_offset_calib = true, 711 .need_temp_offset_calib = true,
712 .led_mode = IWL_LED_RF_STATE,
705 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 713 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
706 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 714 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
707}; 715};
@@ -722,6 +730,7 @@ struct iwl_cfg iwl6000g2b_bg_cfg = {
722 .bt_params = &iwl6000_bt_params, 730 .bt_params = &iwl6000_bt_params,
723 .need_dc_calib = true, 731 .need_dc_calib = true,
724 .need_temp_offset_calib = true, 732 .need_temp_offset_calib = true,
733 .led_mode = IWL_LED_RF_STATE,
725 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 734 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
726 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 735 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
727}; 736};
@@ -744,6 +753,7 @@ struct iwl_cfg iwl6000i_2agn_cfg = {
744 .base_params = &iwl6000_base_params, 753 .base_params = &iwl6000_base_params,
745 .ht_params = &iwl6000_ht_params, 754 .ht_params = &iwl6000_ht_params,
746 .pa_type = IWL_PA_INTERNAL, 755 .pa_type = IWL_PA_INTERNAL,
756 .led_mode = IWL_LED_BLINK,
747}; 757};
748 758
749struct iwl_cfg iwl6000i_2abg_cfg = { 759struct iwl_cfg iwl6000i_2abg_cfg = {
@@ -760,6 +770,7 @@ struct iwl_cfg iwl6000i_2abg_cfg = {
760 .mod_params = &iwlagn_mod_params, 770 .mod_params = &iwlagn_mod_params,
761 .base_params = &iwl6000_base_params, 771 .base_params = &iwl6000_base_params,
762 .pa_type = IWL_PA_INTERNAL, 772 .pa_type = IWL_PA_INTERNAL,
773 .led_mode = IWL_LED_BLINK,
763}; 774};
764 775
765struct iwl_cfg iwl6000i_2bg_cfg = { 776struct iwl_cfg iwl6000i_2bg_cfg = {
@@ -776,6 +787,7 @@ struct iwl_cfg iwl6000i_2bg_cfg = {
776 .mod_params = &iwlagn_mod_params, 787 .mod_params = &iwlagn_mod_params,
777 .base_params = &iwl6000_base_params, 788 .base_params = &iwl6000_base_params,
778 .pa_type = IWL_PA_INTERNAL, 789 .pa_type = IWL_PA_INTERNAL,
790 .led_mode = IWL_LED_BLINK,
779}; 791};
780 792
781struct iwl_cfg iwl6050_2agn_cfg = { 793struct iwl_cfg iwl6050_2agn_cfg = {
@@ -793,6 +805,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
793 .base_params = &iwl6050_base_params, 805 .base_params = &iwl6050_base_params,
794 .ht_params = &iwl6000_ht_params, 806 .ht_params = &iwl6000_ht_params,
795 .need_dc_calib = true, 807 .need_dc_calib = true,
808 .led_mode = IWL_LED_BLINK,
796}; 809};
797 810
798struct iwl_cfg iwl6050g2_bgn_cfg = { 811struct iwl_cfg iwl6050g2_bgn_cfg = {
@@ -810,6 +823,7 @@ struct iwl_cfg iwl6050g2_bgn_cfg = {
810 .base_params = &iwl6050_base_params, 823 .base_params = &iwl6050_base_params,
811 .ht_params = &iwl6000_ht_params, 824 .ht_params = &iwl6000_ht_params,
812 .need_dc_calib = true, 825 .need_dc_calib = true,
826 .led_mode = IWL_LED_RF_STATE,
813}; 827};
814 828
815struct iwl_cfg iwl6050_2abg_cfg = { 829struct iwl_cfg iwl6050_2abg_cfg = {
@@ -826,6 +840,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
826 .mod_params = &iwlagn_mod_params, 840 .mod_params = &iwlagn_mod_params,
827 .base_params = &iwl6050_base_params, 841 .base_params = &iwl6050_base_params,
828 .need_dc_calib = true, 842 .need_dc_calib = true,
843 .led_mode = IWL_LED_BLINK,
829}; 844};
830 845
831struct iwl_cfg iwl6000_3agn_cfg = { 846struct iwl_cfg iwl6000_3agn_cfg = {
@@ -843,6 +858,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
843 .base_params = &iwl6000_base_params, 858 .base_params = &iwl6000_base_params,
844 .ht_params = &iwl6000_ht_params, 859 .ht_params = &iwl6000_ht_params,
845 .need_dc_calib = true, 860 .need_dc_calib = true,
861 .led_mode = IWL_LED_BLINK,
846}; 862};
847 863
848struct iwl_cfg iwl130_bgn_cfg = { 864struct iwl_cfg iwl130_bgn_cfg = {
@@ -861,6 +877,7 @@ struct iwl_cfg iwl130_bgn_cfg = {
861 .bt_params = &iwl6000_bt_params, 877 .bt_params = &iwl6000_bt_params,
862 .ht_params = &iwl6000_ht_params, 878 .ht_params = &iwl6000_ht_params,
863 .need_dc_calib = true, 879 .need_dc_calib = true,
880 .led_mode = IWL_LED_RF_STATE,
864 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 881 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
865 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 882 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
866}; 883};
@@ -880,6 +897,7 @@ struct iwl_cfg iwl130_bg_cfg = {
880 .base_params = &iwl6000_coex_base_params, 897 .base_params = &iwl6000_coex_base_params,
881 .bt_params = &iwl6000_bt_params, 898 .bt_params = &iwl6000_bt_params,
882 .need_dc_calib = true, 899 .need_dc_calib = true,
900 .led_mode = IWL_LED_RF_STATE,
883 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ 901 /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */
884 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, 902 .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A,
885}; 903};
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 98b79f627720..9035cd82d85b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -363,6 +363,7 @@ struct iwl_ht_params {
363 * @need_dc_calib: need to perform init dc calibration 363 * @need_dc_calib: need to perform init dc calibration
364 * @need_temp_offset_calib: need to perform temperature offset calibration 364 * @need_temp_offset_calib: need to perform temperature offset calibration
365 * @scan_antennas: available antenna for scan operation 365 * @scan_antennas: available antenna for scan operation
366 * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off)
366 * 367 *
367 * We enable the driver to be backward compatible wrt API version. The 368 * We enable the driver to be backward compatible wrt API version. The
368 * driver specifies which APIs it supports (with @ucode_api_max being the 369 * driver specifies which APIs it supports (with @ucode_api_max being the
@@ -409,6 +410,7 @@ struct iwl_cfg {
409 const bool need_temp_offset_calib; /* if used set to true */ 410 const bool need_temp_offset_calib; /* if used set to true */
410 u8 scan_rx_antennas[IEEE80211_NUM_BANDS]; 411 u8 scan_rx_antennas[IEEE80211_NUM_BANDS];
411 u8 scan_tx_antennas[IEEE80211_NUM_BANDS]; 412 u8 scan_tx_antennas[IEEE80211_NUM_BANDS];
413 enum iwl_led_mode led_mode;
412}; 414};
413 415
414/*************************** 416/***************************
diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c
index 5a9129219c90..516e5577ed2a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
@@ -45,9 +45,8 @@
45/* default: IWL_LED_BLINK(0) using blinking index table */ 45/* default: IWL_LED_BLINK(0) using blinking index table */
46static int led_mode; 46static int led_mode;
47module_param(led_mode, int, S_IRUGO); 47module_param(led_mode, int, S_IRUGO);
48MODULE_PARM_DESC(led_mode, "led mode: 0=blinking, 1=On(RF On)/Off(RF Off), " 48MODULE_PARM_DESC(led_mode, "led mode: 0=system default, "
49 "(default 0)"); 49 "1=On(RF On)/Off(RF Off), 2=blinking");
50
51 50
52static const struct { 51static const struct {
53 u16 tpt; /* Mb/s */ 52 u16 tpt; /* Mb/s */
@@ -128,7 +127,7 @@ EXPORT_SYMBOL(iwl_led_start);
128int iwl_led_associate(struct iwl_priv *priv) 127int iwl_led_associate(struct iwl_priv *priv)
129{ 128{
130 IWL_DEBUG_LED(priv, "Associated\n"); 129 IWL_DEBUG_LED(priv, "Associated\n");
131 if (led_mode == IWL_LED_BLINK) 130 if (priv->cfg->led_mode == IWL_LED_BLINK)
132 priv->allow_blinking = 1; 131 priv->allow_blinking = 1;
133 priv->last_blink_time = jiffies; 132 priv->last_blink_time = jiffies;
134 133
@@ -223,5 +222,8 @@ void iwl_leds_init(struct iwl_priv *priv)
223 priv->last_blink_rate = 0; 222 priv->last_blink_rate = 0;
224 priv->last_blink_time = 0; 223 priv->last_blink_time = 0;
225 priv->allow_blinking = 0; 224 priv->allow_blinking = 0;
225 if (led_mode != IWL_LED_DEFAULT &&
226 led_mode != priv->cfg->led_mode)
227 priv->cfg->led_mode = led_mode;
226} 228}
227EXPORT_SYMBOL(iwl_leds_init); 229EXPORT_SYMBOL(iwl_leds_init);
diff --git a/drivers/net/wireless/iwlwifi/iwl-led.h b/drivers/net/wireless/iwlwifi/iwl-led.h
index 49a70baa3fb6..9079b33486ef 100644
--- a/drivers/net/wireless/iwlwifi/iwl-led.h
+++ b/drivers/net/wireless/iwlwifi/iwl-led.h
@@ -47,14 +47,16 @@ enum led_type {
47 47
48/* 48/*
49 * LED mode 49 * LED mode
50 * IWL_LED_BLINK: adjust led blink rate based on blink table 50 * IWL_LED_DEFAULT: use system default
51 * IWL_LED_RF_STATE: turn LED on/off based on RF state 51 * IWL_LED_RF_STATE: turn LED on/off based on RF state
52 * LED ON = RF ON 52 * LED ON = RF ON
53 * LED OFF = RF OFF 53 * LED OFF = RF OFF
54 * IWL_LED_BLINK: adjust led blink rate based on blink table
54 */ 55 */
55enum iwl_led_mode { 56enum iwl_led_mode {
56 IWL_LED_BLINK, 57 IWL_LED_DEFAULT,
57 IWL_LED_RF_STATE, 58 IWL_LED_RF_STATE,
59 IWL_LED_BLINK,
58}; 60};
59 61
60void iwl_leds_init(struct iwl_priv *priv); 62void iwl_leds_init(struct iwl_priv *priv);