aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2010-11-09 12:21:34 -0500
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2010-11-16 10:44:24 -0500
commit564b344c10b694d433cef5b89f8ff8ac5e33898d (patch)
tree4f19b92a327d1eb4b367272c2dd6b8897adaa08b
parent05433df23cf16a9ccbdd35964aba781cdf455034 (diff)
iwlwifi: change default led mode for different devices
Set the default led mode for different devices. For the newer devices such as 6000g2a, 6000g2b and newer, the default led mode is On/Off instead of blinking. The led_mode still can be control through module parameter 0: system default 1: On/Off 2: blinking Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
-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);