aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2012-04-17 10:36:30 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2012-04-23 17:30:51 -0400
commit65de7e84fdc71a409f1d97aba8e44ece26628f51 (patch)
treec2db81db4b0660fd8c3d615b56e502921224f1c1 /drivers
parenteb4887b6c6ddfe401b2668da9c1bf5f154522ace (diff)
iwlwifi: clean up module parameters
For now at least, all module parameters should be with the core functionality, so move them there, while at it rename to iwlwifi_mod_params. Also rename iwl-shared.h to iwl-modparams.h to reflect the real contents. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-lib.c16
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rx.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rxon.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-tt.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c91
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-debug.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-debugfs.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-drv.c88
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-led.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-mac80211.c13
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-modparams.h (renamed from drivers/net/wireless/iwlwifi/iwl-shared.h)11
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-pci.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-power.c7
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-power.h9
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans-pcie.c1
17 files changed, 134 insertions, 124 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index ed371740c86a..e1c2bb802050 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -37,6 +37,7 @@
37#include "iwl-agn-hw.h" 37#include "iwl-agn-hw.h"
38#include "iwl-agn.h" 38#include "iwl-agn.h"
39#include "iwl-trans.h" 39#include "iwl-trans.h"
40#include "iwl-modparams.h"
40 41
41int iwlagn_hw_valid_rtc_data_addr(u32 addr) 42int iwlagn_hw_valid_rtc_data_addr(u32 addr)
42{ 43{
@@ -92,17 +93,6 @@ void iwlagn_temperature(struct iwl_priv *priv)
92 iwl_tt_handler(priv); 93 iwl_tt_handler(priv);
93} 94}
94 95
95struct iwl_mod_params iwlagn_mod_params = {
96 .amsdu_size_8K = 1,
97 .restart_fw = 1,
98 .plcp_check = true,
99 .bt_coex_active = true,
100 .power_level = IWL_POWER_INDEX_1,
101 .bt_ch_announce = true,
102 .auto_agg = true,
103 /* the rest are 0 by default */
104};
105
106int iwlagn_hwrate_to_mac80211_idx(u32 rate_n_flags, enum ieee80211_band band) 96int iwlagn_hwrate_to_mac80211_idx(u32 rate_n_flags, enum ieee80211_band band)
107{ 97{
108 int idx = 0; 98 int idx = 0;
@@ -343,7 +333,7 @@ void iwlagn_send_advance_bt_config(struct iwl_priv *priv)
343 * (might be in monitor mode), or the interface is in 333 * (might be in monitor mode), or the interface is in
344 * IBSS mode (no proper uCode support for coex then). 334 * IBSS mode (no proper uCode support for coex then).
345 */ 335 */
346 if (!iwlagn_mod_params.bt_coex_active || 336 if (!iwlwifi_mod_params.bt_coex_active ||
347 priv->iw_mode == NL80211_IFTYPE_ADHOC) { 337 priv->iw_mode == NL80211_IFTYPE_ADHOC) {
348 basic.flags = IWLAGN_BT_FLAG_COEX_MODE_DISABLED; 338 basic.flags = IWLAGN_BT_FLAG_COEX_MODE_DISABLED;
349 } else { 339 } else {
@@ -1152,7 +1142,7 @@ int iwlagn_suspend(struct iwl_priv *priv, struct cfg80211_wowlan *wowlan)
1152 if (ret) 1142 if (ret)
1153 goto out; 1143 goto out;
1154 1144
1155 if (!iwlagn_mod_params.sw_crypto) { 1145 if (!iwlwifi_mod_params.sw_crypto) {
1156 /* mark all keys clear */ 1146 /* mark all keys clear */
1157 priv->ucode_key_table = 0; 1147 priv->ucode_key_table = 0;
1158 ctx->key_mapping_keys = 0; 1148 ctx->key_mapping_keys = 0;
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 14afd01bcf8e..51e1a69ffdda 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -38,6 +38,7 @@
38#include "iwl-dev.h" 38#include "iwl-dev.h"
39#include "iwl-agn.h" 39#include "iwl-agn.h"
40#include "iwl-op-mode.h" 40#include "iwl-op-mode.h"
41#include "iwl-modparams.h"
41 42
42#define RS_NAME "iwl-agn-rs" 43#define RS_NAME "iwl-agn-rs"
43 44
@@ -419,7 +420,7 @@ static int rs_tl_turn_on_agg_for_tid(struct iwl_priv *priv,
419 420
420 load = rs_tl_get_load(lq_data, tid); 421 load = rs_tl_get_load(lq_data, tid);
421 422
422 if ((iwlagn_mod_params.auto_agg) || (load > IWL_AGG_LOAD_THRESHOLD)) { 423 if ((iwlwifi_mod_params.auto_agg) || (load > IWL_AGG_LOAD_THRESHOLD)) {
423 IWL_DEBUG_HT(priv, "Starting Tx agg: STA: %pM tid: %d\n", 424 IWL_DEBUG_HT(priv, "Starting Tx agg: STA: %pM tid: %d\n",
424 sta->addr, tid); 425 sta->addr, tid);
425 ret = ieee80211_start_tx_ba_session(sta, tid, 5000); 426 ret = ieee80211_start_tx_ba_session(sta, tid, 5000);
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rx.c b/drivers/net/wireless/iwlwifi/iwl-agn-rx.c
index 6b2007a7abd8..f94122387e25 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rx.c
@@ -37,6 +37,7 @@
37#include "iwl-io.h" 37#include "iwl-io.h"
38#include "iwl-agn-calib.h" 38#include "iwl-agn-calib.h"
39#include "iwl-agn.h" 39#include "iwl-agn.h"
40#include "iwl-modparams.h"
40 41
41#define IWL_CMD_ENTRY(x) [x] = #x 42#define IWL_CMD_ENTRY(x) [x] = #x
42 43
@@ -337,7 +338,7 @@ static void iwlagn_recover_from_statistics(struct iwl_priv *priv,
337 if (msecs < 99) 338 if (msecs < 99)
338 return; 339 return;
339 340
340 if (iwlagn_mod_params.plcp_check && 341 if (iwlwifi_mod_params.plcp_check &&
341 !iwlagn_good_plcp_health(priv, cur_ofdm, cur_ofdm_ht, msecs)) 342 !iwlagn_good_plcp_health(priv, cur_ofdm, cur_ofdm_ht, msecs))
342 iwl_force_rf_reset(priv, false); 343 iwl_force_rf_reset(priv, false);
343} 344}
@@ -747,7 +748,7 @@ static void iwlagn_pass_packet_to_mac80211(struct iwl_priv *priv,
747 } 748 }
748 749
749 /* In case of HW accelerated crypto and bad decryption, drop */ 750 /* In case of HW accelerated crypto and bad decryption, drop */
750 if (!iwlagn_mod_params.sw_crypto && 751 if (!iwlwifi_mod_params.sw_crypto &&
751 iwlagn_set_decrypted_flag(priv, hdr, ampdu_status, stats)) 752 iwlagn_set_decrypted_flag(priv, hdr, ampdu_status, stats))
752 return; 753 return;
753 754
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
index 6e9dce7539e2..0f7c444f2440 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
@@ -29,6 +29,7 @@
29#include "iwl-agn.h" 29#include "iwl-agn.h"
30#include "iwl-agn-calib.h" 30#include "iwl-agn-calib.h"
31#include "iwl-trans.h" 31#include "iwl-trans.h"
32#include "iwl-modparams.h"
32 33
33/* 34/*
34 * initialize rxon structure with default values from eeprom 35 * initialize rxon structure with default values from eeprom
@@ -1129,7 +1130,7 @@ int iwlagn_commit_rxon(struct iwl_priv *priv, struct iwl_rxon_context *ctx)
1129 return 0; 1130 return 0;
1130 } 1131 }
1131 1132
1132 iwl_set_rxon_hwcrypto(priv, ctx, !iwlagn_mod_params.sw_crypto); 1133 iwl_set_rxon_hwcrypto(priv, ctx, !iwlwifi_mod_params.sw_crypto);
1133 1134
1134 IWL_DEBUG_INFO(priv, 1135 IWL_DEBUG_INFO(priv,
1135 "Going to commit RXON\n" 1136 "Going to commit RXON\n"
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tt.c b/drivers/net/wireless/iwlwifi/iwl-agn-tt.c
index cd331da08275..a5cfe0aceedb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-tt.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-tt.c
@@ -41,6 +41,7 @@
41#include "iwl-commands.h" 41#include "iwl-commands.h"
42#include "iwl-debug.h" 42#include "iwl-debug.h"
43#include "iwl-agn-tt.h" 43#include "iwl-agn-tt.h"
44#include "iwl-modparams.h"
44 45
45/* default Thermal Throttling transaction table 46/* default Thermal Throttling transaction table
46 * Current state | Throttling Down | Throttling Up 47 * Current state | Throttling Down | Throttling Up
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 0aba3780160f..e219868464bf 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -52,6 +52,7 @@
52#include "iwl-trans.h" 52#include "iwl-trans.h"
53#include "iwl-op-mode.h" 53#include "iwl-op-mode.h"
54#include "iwl-drv.h" 54#include "iwl-drv.h"
55#include "iwl-modparams.h"
55 56
56/****************************************************************************** 57/******************************************************************************
57 * 58 *
@@ -752,7 +753,7 @@ void iwl_send_bt_config(struct iwl_priv *priv)
752 .kill_cts_mask = 0, 753 .kill_cts_mask = 0,
753 }; 754 };
754 755
755 if (!iwlagn_mod_params.bt_coex_active) 756 if (!iwlwifi_mod_params.bt_coex_active)
756 bt_cmd.flags = BT_COEX_DISABLE; 757 bt_cmd.flags = BT_COEX_DISABLE;
757 else 758 else
758 bt_cmd.flags = BT_COEX_ENABLE; 759 bt_cmd.flags = BT_COEX_ENABLE;
@@ -1190,7 +1191,7 @@ static void iwl_init_ht_hw_capab(const struct iwl_priv *priv,
1190 max_bit_rate = MAX_BIT_RATE_40_MHZ; 1191 max_bit_rate = MAX_BIT_RATE_40_MHZ;
1191 } 1192 }
1192 1193
1193 if (iwlagn_mod_params.amsdu_size_8K) 1194 if (iwlwifi_mod_params.amsdu_size_8K)
1194 ht_info->cap |= IEEE80211_HT_CAP_MAX_AMSDU; 1195 ht_info->cap |= IEEE80211_HT_CAP_MAX_AMSDU;
1195 1196
1196 ht_info->ampdu_factor = CFG_HT_RX_AMPDU_FACTOR_DEF; 1197 ht_info->ampdu_factor = CFG_HT_RX_AMPDU_FACTOR_DEF;
@@ -1428,7 +1429,7 @@ void iwl_set_hw_params(struct iwl_priv *priv)
1428 priv->hw_params.use_rts_for_aggregation = 1429 priv->hw_params.use_rts_for_aggregation =
1429 priv->cfg->ht_params->use_rts_for_aggregation; 1430 priv->cfg->ht_params->use_rts_for_aggregation;
1430 1431
1431 if (iwlagn_mod_params.disable_11n & IWL_DISABLE_HT_ALL) 1432 if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_ALL)
1432 priv->hw_params.sku &= ~EEPROM_SKU_CAP_11N_ENABLE; 1433 priv->hw_params.sku &= ~EEPROM_SKU_CAP_11N_ENABLE;
1433 1434
1434 /* Device-specific setup */ 1435 /* Device-specific setup */
@@ -1554,8 +1555,8 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
1554 trans_cfg.op_mode = op_mode; 1555 trans_cfg.op_mode = op_mode;
1555 trans_cfg.no_reclaim_cmds = no_reclaim_cmds; 1556 trans_cfg.no_reclaim_cmds = no_reclaim_cmds;
1556 trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds); 1557 trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds);
1557 trans_cfg.rx_buf_size_8k = iwlagn_mod_params.amsdu_size_8K; 1558 trans_cfg.rx_buf_size_8k = iwlwifi_mod_params.amsdu_size_8K;
1558 if (!iwlagn_mod_params.wd_disable) 1559 if (!iwlwifi_mod_params.wd_disable)
1559 trans_cfg.queue_watchdog_timeout = 1560 trans_cfg.queue_watchdog_timeout =
1560 priv->cfg->base_params->wd_timeout; 1561 priv->cfg->base_params->wd_timeout;
1561 else 1562 else
@@ -1600,12 +1601,12 @@ static struct iwl_op_mode *iwl_op_mode_dvm_start(struct iwl_trans *trans,
1600 1601
1601 /* is antenna coupling more than 35dB ? */ 1602 /* is antenna coupling more than 35dB ? */
1602 priv->bt_ant_couple_ok = 1603 priv->bt_ant_couple_ok =
1603 (iwlagn_mod_params.ant_coupling > 1604 (iwlwifi_mod_params.ant_coupling >
1604 IWL_BT_ANTENNA_COUPLING_THRESHOLD) ? 1605 IWL_BT_ANTENNA_COUPLING_THRESHOLD) ?
1605 true : false; 1606 true : false;
1606 1607
1607 /* enable/disable bt channel inhibition */ 1608 /* enable/disable bt channel inhibition */
1608 priv->bt_ch_announce = iwlagn_mod_params.bt_ch_announce; 1609 priv->bt_ch_announce = iwlwifi_mod_params.bt_ch_announce;
1609 IWL_DEBUG_INFO(priv, "BT channel inhibition is %s\n", 1610 IWL_DEBUG_INFO(priv, "BT channel inhibition is %s\n",
1610 (priv->bt_ch_announce) ? "On" : "Off"); 1611 (priv->bt_ch_announce) ? "On" : "Off");
1611 1612
@@ -2204,7 +2205,7 @@ static void iwlagn_fw_error(struct iwl_priv *priv, bool ondemand)
2204 } 2205 }
2205 2206
2206 if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) { 2207 if (!test_bit(STATUS_EXIT_PENDING, &priv->status)) {
2207 if (iwlagn_mod_params.restart_fw) { 2208 if (iwlwifi_mod_params.restart_fw) {
2208 IWL_DEBUG_FW_ERRORS(priv, 2209 IWL_DEBUG_FW_ERRORS(priv,
2209 "Restarting adapter due to uCode error.\n"); 2210 "Restarting adapter due to uCode error.\n");
2210 queue_work(priv->workqueue, &priv->restart); 2211 queue_work(priv->workqueue, &priv->restart);
@@ -2394,77 +2395,3 @@ static void __exit iwl_exit(void)
2394 2395
2395module_exit(iwl_exit); 2396module_exit(iwl_exit);
2396module_init(iwl_init); 2397module_init(iwl_init);
2397
2398#ifdef CONFIG_IWLWIFI_DEBUG
2399module_param_named(debug, iwlagn_mod_params.debug_level, uint,
2400 S_IRUGO | S_IWUSR);
2401MODULE_PARM_DESC(debug, "debug output mask");
2402#endif
2403
2404module_param_named(swcrypto, iwlagn_mod_params.sw_crypto, int, S_IRUGO);
2405MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])");
2406module_param_named(11n_disable, iwlagn_mod_params.disable_11n, uint, S_IRUGO);
2407MODULE_PARM_DESC(11n_disable,
2408 "disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX");
2409module_param_named(amsdu_size_8K, iwlagn_mod_params.amsdu_size_8K,
2410 int, S_IRUGO);
2411MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size");
2412module_param_named(fw_restart, iwlagn_mod_params.restart_fw, int, S_IRUGO);
2413MODULE_PARM_DESC(fw_restart, "restart firmware in case of error");
2414
2415module_param_named(antenna_coupling, iwlagn_mod_params.ant_coupling,
2416 int, S_IRUGO);
2417MODULE_PARM_DESC(antenna_coupling,
2418 "specify antenna coupling in dB (defualt: 0 dB)");
2419
2420module_param_named(bt_ch_inhibition, iwlagn_mod_params.bt_ch_announce,
2421 bool, S_IRUGO);
2422MODULE_PARM_DESC(bt_ch_inhibition,
2423 "Enable BT channel inhibition (default: enable)");
2424
2425module_param_named(plcp_check, iwlagn_mod_params.plcp_check, bool, S_IRUGO);
2426MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])");
2427
2428module_param_named(wd_disable, iwlagn_mod_params.wd_disable, int, S_IRUGO);
2429MODULE_PARM_DESC(wd_disable,
2430 "Disable stuck queue watchdog timer 0=system default, "
2431 "1=disable, 2=enable (default: 0)");
2432
2433/*
2434 * set bt_coex_active to true, uCode will do kill/defer
2435 * every time the priority line is asserted (BT is sending signals on the
2436 * priority line in the PCIx).
2437 * set bt_coex_active to false, uCode will ignore the BT activity and
2438 * perform the normal operation
2439 *
2440 * User might experience transmit issue on some platform due to WiFi/BT
2441 * co-exist problem. The possible behaviors are:
2442 * Able to scan and finding all the available AP
2443 * Not able to associate with any AP
2444 * On those platforms, WiFi communication can be restored by set
2445 * "bt_coex_active" module parameter to "false"
2446 *
2447 * default: bt_coex_active = true (BT_COEX_ENABLE)
2448 */
2449module_param_named(bt_coex_active, iwlagn_mod_params.bt_coex_active,
2450 bool, S_IRUGO);
2451MODULE_PARM_DESC(bt_coex_active, "enable wifi/bt co-exist (default: enable)");
2452
2453module_param_named(led_mode, iwlagn_mod_params.led_mode, int, S_IRUGO);
2454MODULE_PARM_DESC(led_mode, "0=system default, "
2455 "1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0)");
2456
2457module_param_named(power_save, iwlagn_mod_params.power_save,
2458 bool, S_IRUGO);
2459MODULE_PARM_DESC(power_save,
2460 "enable WiFi power management (default: disable)");
2461
2462module_param_named(power_level, iwlagn_mod_params.power_level,
2463 int, S_IRUGO);
2464MODULE_PARM_DESC(power_level,
2465 "default power save level (range from 1 - 5, default: 1)");
2466
2467module_param_named(auto_agg, iwlagn_mod_params.auto_agg,
2468 bool, S_IRUGO);
2469MODULE_PARM_DESC(auto_agg,
2470 "enable agg w/o check traffic load (default: enable)");
diff --git a/drivers/net/wireless/iwlwifi/iwl-debug.h b/drivers/net/wireless/iwlwifi/iwl-debug.h
index 2dcbeba24abb..8376b842bdba 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debug.h
+++ b/drivers/net/wireless/iwlwifi/iwl-debug.h
@@ -29,12 +29,12 @@
29#ifndef __iwl_debug_h__ 29#ifndef __iwl_debug_h__
30#define __iwl_debug_h__ 30#define __iwl_debug_h__
31 31
32#include "iwl-shared.h" 32#include "iwl-modparams.h"
33 33
34 34
35static inline bool iwl_have_debug_level(u32 level) 35static inline bool iwl_have_debug_level(u32 level)
36{ 36{
37 return iwlagn_mod_params.debug_level & level; 37 return iwlwifi_mod_params.debug_level & level;
38} 38}
39 39
40void __iwl_err(struct device *dev, bool rfkill_prefix, bool only_trace, 40void __iwl_err(struct device *dev, bool rfkill_prefix, bool only_trace,
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index f612ce8fdffe..e7c157e5ebeb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -39,6 +39,7 @@
39#include "iwl-debug.h" 39#include "iwl-debug.h"
40#include "iwl-io.h" 40#include "iwl-io.h"
41#include "iwl-agn.h" 41#include "iwl-agn.h"
42#include "iwl-modparams.h"
42 43
43/* create and remove of files */ 44/* create and remove of files */
44#define DEBUGFS_ADD_FILE(name, parent, mode) do { \ 45#define DEBUGFS_ADD_FILE(name, parent, mode) do { \
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 7994be3c6565..b0646765e41f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -48,7 +48,6 @@
48#include "iwl-agn-rs.h" 48#include "iwl-agn-rs.h"
49#include "iwl-agn-tt.h" 49#include "iwl-agn-tt.h"
50#include "iwl-trans.h" 50#include "iwl-trans.h"
51#include "iwl-shared.h"
52#include "iwl-op-mode.h" 51#include "iwl-op-mode.h"
53#include "iwl-notif-wait.h" 52#include "iwl-notif-wait.h"
54 53
diff --git a/drivers/net/wireless/iwlwifi/iwl-drv.c b/drivers/net/wireless/iwlwifi/iwl-drv.c
index 28d81a793641..05302d6f989f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/iwlwifi/iwl-drv.c
@@ -71,6 +71,7 @@
71#include "iwl-agn-hw.h" 71#include "iwl-agn-hw.h"
72#include "iwl-fw.h" 72#include "iwl-fw.h"
73#include "iwl-config.h" 73#include "iwl-config.h"
74#include "iwl-modparams.h"
74 75
75/* private includes */ 76/* private includes */
76#include "iwl-fw-file.h" 77#include "iwl-fw-file.h"
@@ -924,3 +925,90 @@ void iwl_drv_stop(struct iwl_drv *drv)
924 925
925 kfree(drv); 926 kfree(drv);
926} 927}
928
929
930/* shared module parameters */
931struct iwl_mod_params iwlwifi_mod_params = {
932 .amsdu_size_8K = 1,
933 .restart_fw = 1,
934 .plcp_check = true,
935 .bt_coex_active = true,
936 .power_level = IWL_POWER_INDEX_1,
937 .bt_ch_announce = true,
938 .auto_agg = true,
939 /* the rest are 0 by default */
940};
941
942#ifdef CONFIG_IWLWIFI_DEBUG
943module_param_named(debug, iwlwifi_mod_params.debug_level, uint,
944 S_IRUGO | S_IWUSR);
945MODULE_PARM_DESC(debug, "debug output mask");
946#endif
947
948module_param_named(swcrypto, iwlwifi_mod_params.sw_crypto, int, S_IRUGO);
949MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])");
950module_param_named(11n_disable, iwlwifi_mod_params.disable_11n, uint, S_IRUGO);
951MODULE_PARM_DESC(11n_disable,
952 "disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX");
953module_param_named(amsdu_size_8K, iwlwifi_mod_params.amsdu_size_8K,
954 int, S_IRUGO);
955MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size");
956module_param_named(fw_restart, iwlwifi_mod_params.restart_fw, int, S_IRUGO);
957MODULE_PARM_DESC(fw_restart, "restart firmware in case of error");
958
959module_param_named(antenna_coupling, iwlwifi_mod_params.ant_coupling,
960 int, S_IRUGO);
961MODULE_PARM_DESC(antenna_coupling,
962 "specify antenna coupling in dB (defualt: 0 dB)");
963
964module_param_named(bt_ch_inhibition, iwlwifi_mod_params.bt_ch_announce,
965 bool, S_IRUGO);
966MODULE_PARM_DESC(bt_ch_inhibition,
967 "Enable BT channel inhibition (default: enable)");
968
969module_param_named(plcp_check, iwlwifi_mod_params.plcp_check, bool, S_IRUGO);
970MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])");
971
972module_param_named(wd_disable, iwlwifi_mod_params.wd_disable, int, S_IRUGO);
973MODULE_PARM_DESC(wd_disable,
974 "Disable stuck queue watchdog timer 0=system default, "
975 "1=disable, 2=enable (default: 0)");
976
977/*
978 * set bt_coex_active to true, uCode will do kill/defer
979 * every time the priority line is asserted (BT is sending signals on the
980 * priority line in the PCIx).
981 * set bt_coex_active to false, uCode will ignore the BT activity and
982 * perform the normal operation
983 *
984 * User might experience transmit issue on some platform due to WiFi/BT
985 * co-exist problem. The possible behaviors are:
986 * Able to scan and finding all the available AP
987 * Not able to associate with any AP
988 * On those platforms, WiFi communication can be restored by set
989 * "bt_coex_active" module parameter to "false"
990 *
991 * default: bt_coex_active = true (BT_COEX_ENABLE)
992 */
993module_param_named(bt_coex_active, iwlwifi_mod_params.bt_coex_active,
994 bool, S_IRUGO);
995MODULE_PARM_DESC(bt_coex_active, "enable wifi/bt co-exist (default: enable)");
996
997module_param_named(led_mode, iwlwifi_mod_params.led_mode, int, S_IRUGO);
998MODULE_PARM_DESC(led_mode, "0=system default, "
999 "1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0)");
1000
1001module_param_named(power_save, iwlwifi_mod_params.power_save,
1002 bool, S_IRUGO);
1003MODULE_PARM_DESC(power_save,
1004 "enable WiFi power management (default: disable)");
1005
1006module_param_named(power_level, iwlwifi_mod_params.power_level,
1007 int, S_IRUGO);
1008MODULE_PARM_DESC(power_level,
1009 "default power save level (range from 1 - 5, default: 1)");
1010
1011module_param_named(auto_agg, iwlwifi_mod_params.auto_agg,
1012 bool, S_IRUGO);
1013MODULE_PARM_DESC(auto_agg,
1014 "enable agg w/o check traffic load (default: enable)");
diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c
index 1d62d0677f35..47000419f916 100644
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
@@ -39,6 +39,7 @@
39#include "iwl-agn.h" 39#include "iwl-agn.h"
40#include "iwl-io.h" 40#include "iwl-io.h"
41#include "iwl-trans.h" 41#include "iwl-trans.h"
42#include "iwl-modparams.h"
42 43
43/* Throughput OFF time(ms) ON time (ms) 44/* Throughput OFF time(ms) ON time (ms)
44 * >300 25 25 45 * >300 25 25
@@ -173,7 +174,7 @@ static int iwl_led_blink_set(struct led_classdev *led_cdev,
173 174
174void iwl_leds_init(struct iwl_priv *priv) 175void iwl_leds_init(struct iwl_priv *priv)
175{ 176{
176 int mode = iwlagn_mod_params.led_mode; 177 int mode = iwlwifi_mod_params.led_mode;
177 int ret; 178 int ret;
178 179
179 if (mode == IWL_LED_DISABLE) { 180 if (mode == IWL_LED_DISABLE) {
diff --git a/drivers/net/wireless/iwlwifi/iwl-mac80211.c b/drivers/net/wireless/iwlwifi/iwl-mac80211.c
index 4f4515696e55..9670554dc469 100644
--- a/drivers/net/wireless/iwlwifi/iwl-mac80211.c
+++ b/drivers/net/wireless/iwlwifi/iwl-mac80211.c
@@ -49,6 +49,7 @@
49#include "iwl-agn.h" 49#include "iwl-agn.h"
50#include "iwl-trans.h" 50#include "iwl-trans.h"
51#include "iwl-op-mode.h" 51#include "iwl-op-mode.h"
52#include "iwl-modparams.h"
52 53
53/***************************************************************************** 54/*****************************************************************************
54 * 55 *
@@ -202,7 +203,7 @@ int iwlagn_mac_setup_register(struct iwl_priv *priv,
202 WIPHY_WOWLAN_DISCONNECT | 203 WIPHY_WOWLAN_DISCONNECT |
203 WIPHY_WOWLAN_EAP_IDENTITY_REQ | 204 WIPHY_WOWLAN_EAP_IDENTITY_REQ |
204 WIPHY_WOWLAN_RFKILL_RELEASE; 205 WIPHY_WOWLAN_RFKILL_RELEASE;
205 if (!iwlagn_mod_params.sw_crypto) 206 if (!iwlwifi_mod_params.sw_crypto)
206 hw->wiphy->wowlan.flags |= 207 hw->wiphy->wowlan.flags |=
207 WIPHY_WOWLAN_SUPPORTS_GTK_REKEY | 208 WIPHY_WOWLAN_SUPPORTS_GTK_REKEY |
208 WIPHY_WOWLAN_GTK_REKEY_FAILURE; 209 WIPHY_WOWLAN_GTK_REKEY_FAILURE;
@@ -214,7 +215,7 @@ int iwlagn_mac_setup_register(struct iwl_priv *priv,
214 IWLAGN_WOWLAN_MAX_PATTERN_LEN; 215 IWLAGN_WOWLAN_MAX_PATTERN_LEN;
215 } 216 }
216 217
217 if (iwlagn_mod_params.power_save) 218 if (iwlwifi_mod_params.power_save)
218 hw->wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT; 219 hw->wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT;
219 else 220 else
220 hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; 221 hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT;
@@ -365,7 +366,7 @@ void iwlagn_mac_set_rekey_data(struct ieee80211_hw *hw,
365{ 366{
366 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); 367 struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw);
367 368
368 if (iwlagn_mod_params.sw_crypto) 369 if (iwlwifi_mod_params.sw_crypto)
369 return; 370 return;
370 371
371 IWL_DEBUG_MAC80211(priv, "enter\n"); 372 IWL_DEBUG_MAC80211(priv, "enter\n");
@@ -531,7 +532,7 @@ int iwlagn_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
531 532
532 IWL_DEBUG_MAC80211(priv, "enter\n"); 533 IWL_DEBUG_MAC80211(priv, "enter\n");
533 534
534 if (iwlagn_mod_params.sw_crypto) { 535 if (iwlwifi_mod_params.sw_crypto) {
535 IWL_DEBUG_MAC80211(priv, "leave - hwcrypto disabled\n"); 536 IWL_DEBUG_MAC80211(priv, "leave - hwcrypto disabled\n");
536 return -EOPNOTSUPP; 537 return -EOPNOTSUPP;
537 } 538 }
@@ -642,7 +643,7 @@ int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
642 643
643 switch (action) { 644 switch (action) {
644 case IEEE80211_AMPDU_RX_START: 645 case IEEE80211_AMPDU_RX_START:
645 if (iwlagn_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG) 646 if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG)
646 break; 647 break;
647 IWL_DEBUG_HT(priv, "start Rx\n"); 648 IWL_DEBUG_HT(priv, "start Rx\n");
648 ret = iwl_sta_rx_agg_start(priv, sta, tid, *ssn); 649 ret = iwl_sta_rx_agg_start(priv, sta, tid, *ssn);
@@ -654,7 +655,7 @@ int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
654 case IEEE80211_AMPDU_TX_START: 655 case IEEE80211_AMPDU_TX_START:
655 if (!priv->trans->ops->tx_agg_setup) 656 if (!priv->trans->ops->tx_agg_setup)
656 break; 657 break;
657 if (iwlagn_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG) 658 if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG)
658 break; 659 break;
659 IWL_DEBUG_HT(priv, "start Tx\n"); 660 IWL_DEBUG_HT(priv, "start Tx\n");
660 ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn); 661 ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn);
diff --git a/drivers/net/wireless/iwlwifi/iwl-shared.h b/drivers/net/wireless/iwlwifi/iwl-modparams.h
index 3f21dd2bd8b0..558b2e63c5cf 100644
--- a/drivers/net/wireless/iwlwifi/iwl-shared.h
+++ b/drivers/net/wireless/iwlwifi/iwl-modparams.h
@@ -68,7 +68,16 @@
68#include <linux/gfp.h> 68#include <linux/gfp.h>
69#include <net/mac80211.h> 69#include <net/mac80211.h>
70 70
71extern struct iwl_mod_params iwlagn_mod_params; 71extern struct iwl_mod_params iwlwifi_mod_params;
72
73enum iwl_power_level {
74 IWL_POWER_INDEX_1,
75 IWL_POWER_INDEX_2,
76 IWL_POWER_INDEX_3,
77 IWL_POWER_INDEX_4,
78 IWL_POWER_INDEX_5,
79 IWL_POWER_NUM
80};
72 81
73#define IWL_DISABLE_HT_ALL BIT(0) 82#define IWL_DISABLE_HT_ALL BIT(0)
74#define IWL_DISABLE_HT_TXAGG BIT(1) 83#define IWL_DISABLE_HT_TXAGG BIT(1)
diff --git a/drivers/net/wireless/iwlwifi/iwl-pci.c b/drivers/net/wireless/iwlwifi/iwl-pci.c
index e80e9aa80883..0c8a1c2d8847 100644
--- a/drivers/net/wireless/iwlwifi/iwl-pci.c
+++ b/drivers/net/wireless/iwlwifi/iwl-pci.c
@@ -72,7 +72,6 @@
72#include "iwl-drv.h" 72#include "iwl-drv.h"
73#include "iwl-trans.h" 73#include "iwl-trans.h"
74#include "iwl-trans-pcie-int.h" 74#include "iwl-trans-pcie-int.h"
75#include "iwl-shared.h"
76 75
77#define IWL_PCI_DEVICE(dev, subdev, cfg) \ 76#define IWL_PCI_DEVICE(dev, subdev, cfg) \
78 .vendor = PCI_VENDOR_ID_INTEL, .device = (dev), \ 77 .vendor = PCI_VENDOR_ID_INTEL, .device = (dev), \
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c b/drivers/net/wireless/iwlwifi/iwl-power.c
index 5fba34bf8bca..8352265dbc4b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-power.c
+++ b/drivers/net/wireless/iwlwifi/iwl-power.c
@@ -42,6 +42,7 @@
42#include "iwl-debug.h" 42#include "iwl-debug.h"
43#include "iwl-power.h" 43#include "iwl-power.h"
44#include "iwl-trans.h" 44#include "iwl-trans.h"
45#include "iwl-modparams.h"
45 46
46/* 47/*
47 * Setting power level allows the card to go to sleep when not busy. 48 * Setting power level allows the card to go to sleep when not busy.
@@ -307,10 +308,10 @@ static void iwl_power_build_cmd(struct iwl_priv *priv,
307 priv->power_data.debug_sleep_level_override, 308 priv->power_data.debug_sleep_level_override,
308 dtimper); 309 dtimper);
309 else { 310 else {
310 if (iwlagn_mod_params.power_level > IWL_POWER_INDEX_1 && 311 if (iwlwifi_mod_params.power_level > IWL_POWER_INDEX_1 &&
311 iwlagn_mod_params.power_level <= IWL_POWER_INDEX_5) 312 iwlwifi_mod_params.power_level <= IWL_POWER_INDEX_5)
312 iwl_static_sleep_cmd(priv, cmd, 313 iwl_static_sleep_cmd(priv, cmd,
313 iwlagn_mod_params.power_level, dtimper); 314 iwlwifi_mod_params.power_level, dtimper);
314 else 315 else
315 iwl_static_sleep_cmd(priv, cmd, 316 iwl_static_sleep_cmd(priv, cmd,
316 IWL_POWER_INDEX_1, dtimper); 317 IWL_POWER_INDEX_1, dtimper);
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.h b/drivers/net/wireless/iwlwifi/iwl-power.h
index 07a19fce5fdc..21afc92efacb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-power.h
+++ b/drivers/net/wireless/iwlwifi/iwl-power.h
@@ -30,15 +30,6 @@
30 30
31#include "iwl-commands.h" 31#include "iwl-commands.h"
32 32
33enum iwl_power_level {
34 IWL_POWER_INDEX_1,
35 IWL_POWER_INDEX_2,
36 IWL_POWER_INDEX_3,
37 IWL_POWER_INDEX_4,
38 IWL_POWER_INDEX_5,
39 IWL_POWER_NUM
40};
41
42struct iwl_power_mgr { 33struct iwl_power_mgr {
43 struct iwl_powertable_cmd sleep_cmd; 34 struct iwl_powertable_cmd sleep_cmd;
44 struct iwl_powertable_cmd sleep_cmd_next; 35 struct iwl_powertable_cmd sleep_cmd_next;
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
index 3eab7d52f8ba..63557bb85cda 100644
--- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
@@ -70,7 +70,6 @@
70 70
71#include "iwl-drv.h" 71#include "iwl-drv.h"
72#include "iwl-trans.h" 72#include "iwl-trans.h"
73#include "iwl-shared.h"
74#include "iwl-trans-pcie-int.h" 73#include "iwl-trans-pcie-int.h"
75#include "iwl-csr.h" 74#include "iwl-csr.h"
76#include "iwl-prph.h" 75#include "iwl-prph.h"