diff options
author | Johannes Berg <johannes.berg@intel.com> | 2012-04-17 10:36:30 -0400 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2012-04-23 17:30:51 -0400 |
commit | 65de7e84fdc71a409f1d97aba8e44ece26628f51 (patch) | |
tree | c2db81db4b0660fd8c3d615b56e502921224f1c1 /drivers | |
parent | eb4887b6c6ddfe401b2668da9c1bf5f154522ace (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.c | 16 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rx.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-rxon.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-tt.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 91 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-debug.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-debugfs.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-dev.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-drv.c | 88 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-led.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-mac80211.c | 13 | ||||
-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.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-power.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-power.h | 9 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans-pcie.c | 1 |
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 | ||
41 | int iwlagn_hw_valid_rtc_data_addr(u32 addr) | 42 | int 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 | ||
95 | struct 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 | |||
106 | int iwlagn_hwrate_to_mac80211_idx(u32 rate_n_flags, enum ieee80211_band band) | 96 | int 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 | ||
2395 | module_exit(iwl_exit); | 2396 | module_exit(iwl_exit); |
2396 | module_init(iwl_init); | 2397 | module_init(iwl_init); |
2397 | |||
2398 | #ifdef CONFIG_IWLWIFI_DEBUG | ||
2399 | module_param_named(debug, iwlagn_mod_params.debug_level, uint, | ||
2400 | S_IRUGO | S_IWUSR); | ||
2401 | MODULE_PARM_DESC(debug, "debug output mask"); | ||
2402 | #endif | ||
2403 | |||
2404 | module_param_named(swcrypto, iwlagn_mod_params.sw_crypto, int, S_IRUGO); | ||
2405 | MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])"); | ||
2406 | module_param_named(11n_disable, iwlagn_mod_params.disable_11n, uint, S_IRUGO); | ||
2407 | MODULE_PARM_DESC(11n_disable, | ||
2408 | "disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX"); | ||
2409 | module_param_named(amsdu_size_8K, iwlagn_mod_params.amsdu_size_8K, | ||
2410 | int, S_IRUGO); | ||
2411 | MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size"); | ||
2412 | module_param_named(fw_restart, iwlagn_mod_params.restart_fw, int, S_IRUGO); | ||
2413 | MODULE_PARM_DESC(fw_restart, "restart firmware in case of error"); | ||
2414 | |||
2415 | module_param_named(antenna_coupling, iwlagn_mod_params.ant_coupling, | ||
2416 | int, S_IRUGO); | ||
2417 | MODULE_PARM_DESC(antenna_coupling, | ||
2418 | "specify antenna coupling in dB (defualt: 0 dB)"); | ||
2419 | |||
2420 | module_param_named(bt_ch_inhibition, iwlagn_mod_params.bt_ch_announce, | ||
2421 | bool, S_IRUGO); | ||
2422 | MODULE_PARM_DESC(bt_ch_inhibition, | ||
2423 | "Enable BT channel inhibition (default: enable)"); | ||
2424 | |||
2425 | module_param_named(plcp_check, iwlagn_mod_params.plcp_check, bool, S_IRUGO); | ||
2426 | MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])"); | ||
2427 | |||
2428 | module_param_named(wd_disable, iwlagn_mod_params.wd_disable, int, S_IRUGO); | ||
2429 | MODULE_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 | */ | ||
2449 | module_param_named(bt_coex_active, iwlagn_mod_params.bt_coex_active, | ||
2450 | bool, S_IRUGO); | ||
2451 | MODULE_PARM_DESC(bt_coex_active, "enable wifi/bt co-exist (default: enable)"); | ||
2452 | |||
2453 | module_param_named(led_mode, iwlagn_mod_params.led_mode, int, S_IRUGO); | ||
2454 | MODULE_PARM_DESC(led_mode, "0=system default, " | ||
2455 | "1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0)"); | ||
2456 | |||
2457 | module_param_named(power_save, iwlagn_mod_params.power_save, | ||
2458 | bool, S_IRUGO); | ||
2459 | MODULE_PARM_DESC(power_save, | ||
2460 | "enable WiFi power management (default: disable)"); | ||
2461 | |||
2462 | module_param_named(power_level, iwlagn_mod_params.power_level, | ||
2463 | int, S_IRUGO); | ||
2464 | MODULE_PARM_DESC(power_level, | ||
2465 | "default power save level (range from 1 - 5, default: 1)"); | ||
2466 | |||
2467 | module_param_named(auto_agg, iwlagn_mod_params.auto_agg, | ||
2468 | bool, S_IRUGO); | ||
2469 | MODULE_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 | ||
35 | static inline bool iwl_have_debug_level(u32 level) | 35 | static 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 | ||
40 | void __iwl_err(struct device *dev, bool rfkill_prefix, bool only_trace, | 40 | void __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 */ | ||
931 | struct 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 | ||
943 | module_param_named(debug, iwlwifi_mod_params.debug_level, uint, | ||
944 | S_IRUGO | S_IWUSR); | ||
945 | MODULE_PARM_DESC(debug, "debug output mask"); | ||
946 | #endif | ||
947 | |||
948 | module_param_named(swcrypto, iwlwifi_mod_params.sw_crypto, int, S_IRUGO); | ||
949 | MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])"); | ||
950 | module_param_named(11n_disable, iwlwifi_mod_params.disable_11n, uint, S_IRUGO); | ||
951 | MODULE_PARM_DESC(11n_disable, | ||
952 | "disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX"); | ||
953 | module_param_named(amsdu_size_8K, iwlwifi_mod_params.amsdu_size_8K, | ||
954 | int, S_IRUGO); | ||
955 | MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size"); | ||
956 | module_param_named(fw_restart, iwlwifi_mod_params.restart_fw, int, S_IRUGO); | ||
957 | MODULE_PARM_DESC(fw_restart, "restart firmware in case of error"); | ||
958 | |||
959 | module_param_named(antenna_coupling, iwlwifi_mod_params.ant_coupling, | ||
960 | int, S_IRUGO); | ||
961 | MODULE_PARM_DESC(antenna_coupling, | ||
962 | "specify antenna coupling in dB (defualt: 0 dB)"); | ||
963 | |||
964 | module_param_named(bt_ch_inhibition, iwlwifi_mod_params.bt_ch_announce, | ||
965 | bool, S_IRUGO); | ||
966 | MODULE_PARM_DESC(bt_ch_inhibition, | ||
967 | "Enable BT channel inhibition (default: enable)"); | ||
968 | |||
969 | module_param_named(plcp_check, iwlwifi_mod_params.plcp_check, bool, S_IRUGO); | ||
970 | MODULE_PARM_DESC(plcp_check, "Check plcp health (default: 1 [enabled])"); | ||
971 | |||
972 | module_param_named(wd_disable, iwlwifi_mod_params.wd_disable, int, S_IRUGO); | ||
973 | MODULE_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 | */ | ||
993 | module_param_named(bt_coex_active, iwlwifi_mod_params.bt_coex_active, | ||
994 | bool, S_IRUGO); | ||
995 | MODULE_PARM_DESC(bt_coex_active, "enable wifi/bt co-exist (default: enable)"); | ||
996 | |||
997 | module_param_named(led_mode, iwlwifi_mod_params.led_mode, int, S_IRUGO); | ||
998 | MODULE_PARM_DESC(led_mode, "0=system default, " | ||
999 | "1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0)"); | ||
1000 | |||
1001 | module_param_named(power_save, iwlwifi_mod_params.power_save, | ||
1002 | bool, S_IRUGO); | ||
1003 | MODULE_PARM_DESC(power_save, | ||
1004 | "enable WiFi power management (default: disable)"); | ||
1005 | |||
1006 | module_param_named(power_level, iwlwifi_mod_params.power_level, | ||
1007 | int, S_IRUGO); | ||
1008 | MODULE_PARM_DESC(power_level, | ||
1009 | "default power save level (range from 1 - 5, default: 1)"); | ||
1010 | |||
1011 | module_param_named(auto_agg, iwlwifi_mod_params.auto_agg, | ||
1012 | bool, S_IRUGO); | ||
1013 | MODULE_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 | ||
174 | void iwl_leds_init(struct iwl_priv *priv) | 175 | void 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 | ||
71 | extern struct iwl_mod_params iwlagn_mod_params; | 71 | extern struct iwl_mod_params iwlwifi_mod_params; |
72 | |||
73 | enum 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 | ||
33 | enum 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 | |||
42 | struct iwl_power_mgr { | 33 | struct 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" |