|
@@ -58,20 +58,6 @@
|
|
|
static int iwl3945_tx_queue_update_write_ptr(struct iwl_priv *priv,
|
|
|
struct iwl3945_tx_queue *txq);
|
|
|
|
|
|
-/******************************************************************************
|
|
|
- *
|
|
|
- * module boiler plate
|
|
|
- *
|
|
|
- ******************************************************************************/
|
|
|
-
|
|
|
-/* module parameters */
|
|
|
-static int iwl3945_param_disable_hw_scan; /* def: 0 = use 3945's h/w scan */
|
|
|
-static u32 iwl3945_param_debug; /* def: 0 = minimal debug log messages */
|
|
|
-static int iwl3945_param_disable; /* def: 0 = enable radio */
|
|
|
-static int iwl3945_param_antenna; /* def: 0 = both antennas (use diversity) */
|
|
|
-int iwl3945_param_hwcrypto; /* def: 0 = use software encryption */
|
|
|
-int iwl3945_param_queues_num = IWL39_MAX_NUM_QUEUES; /* def: 8 Tx queues */
|
|
|
-
|
|
|
/*
|
|
|
* module name, copyright, version, etc.
|
|
|
*/
|
|
@@ -102,6 +88,12 @@ MODULE_VERSION(DRV_VERSION);
|
|
|
MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
|
|
|
MODULE_LICENSE("GPL");
|
|
|
|
|
|
+ /* module parameters */
|
|
|
+struct iwl_mod_params iwl3945_mod_params = {
|
|
|
+ .num_of_queues = IWL39_MAX_NUM_QUEUES,
|
|
|
+ /* the rest are 0 by default */
|
|
|
+};
|
|
|
+
|
|
|
static const struct ieee80211_supported_band *iwl3945_get_band(
|
|
|
struct iwl_priv *priv, enum ieee80211_band band)
|
|
|
{
|
|
@@ -6532,7 +6524,7 @@ static int iwl3945_mac_config(struct ieee80211_hw *hw, u32 changed)
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- if (unlikely(!iwl3945_param_disable_hw_scan &&
|
|
|
+ if (unlikely(!iwl3945_mod_params.disable_hw_scan &&
|
|
|
test_bit(STATUS_SCANNING, &priv->status))) {
|
|
|
IWL_DEBUG_MAC80211("leave - scanning\n");
|
|
|
set_bit(STATUS_CONF_PENDING, &priv->status);
|
|
@@ -6944,7 +6936,7 @@ static int iwl3945_mac_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
|
|
|
|
|
|
IWL_DEBUG_MAC80211("enter\n");
|
|
|
|
|
|
- if (!iwl3945_param_hwcrypto) {
|
|
|
+ if (iwl3945_mod_params.sw_crypto) {
|
|
|
IWL_DEBUG_MAC80211("leave - hwcrypto disabled\n");
|
|
|
return -EOPNOTSUPP;
|
|
|
}
|
|
@@ -7747,8 +7739,8 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
|
|
priv->pci_dev = pdev;
|
|
|
priv->cfg = cfg;
|
|
|
|
|
|
- if ((iwl3945_param_queues_num > IWL39_MAX_NUM_QUEUES) ||
|
|
|
- (iwl3945_param_queues_num < IWL_MIN_NUM_QUEUES)) {
|
|
|
+ if ((iwl3945_mod_params.num_of_queues > IWL39_MAX_NUM_QUEUES) ||
|
|
|
+ (iwl3945_mod_params.num_of_queues < IWL_MIN_NUM_QUEUES)) {
|
|
|
IWL_ERR(priv,
|
|
|
"invalid queues_num, should be between %d and %d\n",
|
|
|
IWL_MIN_NUM_QUEUES, IWL39_MAX_NUM_QUEUES);
|
|
@@ -7758,7 +7750,7 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
|
|
|
|
|
/* Disabling hardware scan means that mac80211 will perform scans
|
|
|
* "the hard way", rather than using device's scan. */
|
|
|
- if (iwl3945_param_disable_hw_scan) {
|
|
|
+ if (iwl3945_mod_params.disable_hw_scan) {
|
|
|
IWL_DEBUG_INFO("Disabling hw_scan\n");
|
|
|
iwl3945_hw_ops.hw_scan = NULL;
|
|
|
}
|
|
@@ -7768,9 +7760,9 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
|
|
hw->sta_data_size = sizeof(struct iwl3945_sta_priv);
|
|
|
|
|
|
/* Select antenna (may be helpful if only one antenna is connected) */
|
|
|
- priv->antenna = (enum iwl3945_antenna)iwl3945_param_antenna;
|
|
|
+ priv->antenna = (enum iwl3945_antenna)iwl3945_mod_params.antenna;
|
|
|
#ifdef CONFIG_IWL3945_DEBUG
|
|
|
- priv->debug_level = iwl3945_param_debug;
|
|
|
+ priv->debug_level = iwl3945_mod_params.debug;
|
|
|
atomic_set(&priv->restrict_refcnt, 0);
|
|
|
#endif
|
|
|
|
|
@@ -7918,7 +7910,7 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
|
|
|
|
|
|
/* Initialize module parameter values here */
|
|
|
/* Disable radio (SW RF KILL) via parameter when loading driver */
|
|
|
- if (iwl3945_param_disable) {
|
|
|
+ if (iwl3945_mod_params.disable) {
|
|
|
set_bit(STATUS_RF_KILL_SW, &priv->status);
|
|
|
IWL_DEBUG_INFO("Radio disabled.\n");
|
|
|
}
|
|
@@ -8248,19 +8240,19 @@ static void __exit iwl3945_exit(void)
|
|
|
|
|
|
MODULE_FIRMWARE(IWL3945_MODULE_FIRMWARE(IWL3945_UCODE_API_MAX));
|
|
|
|
|
|
-module_param_named(antenna, iwl3945_param_antenna, int, 0444);
|
|
|
+module_param_named(antenna, iwl3945_mod_params.antenna, int, 0444);
|
|
|
MODULE_PARM_DESC(antenna, "select antenna (1=Main, 2=Aux, default 0 [both])");
|
|
|
-module_param_named(disable, iwl3945_param_disable, int, 0444);
|
|
|
+module_param_named(disable, iwl3945_mod_params.disable, int, 0444);
|
|
|
MODULE_PARM_DESC(disable, "manually disable the radio (default 0 [radio on])");
|
|
|
-module_param_named(hwcrypto, iwl3945_param_hwcrypto, int, 0444);
|
|
|
+module_param_named(hwcrypto, iwl3945_mod_params.sw_crypto, int, 0444);
|
|
|
MODULE_PARM_DESC(hwcrypto,
|
|
|
"using hardware crypto engine (default 0 [software])\n");
|
|
|
-module_param_named(debug, iwl3945_param_debug, uint, 0444);
|
|
|
+module_param_named(debug, iwl3945_mod_params.debug, uint, 0444);
|
|
|
MODULE_PARM_DESC(debug, "debug output mask");
|
|
|
-module_param_named(disable_hw_scan, iwl3945_param_disable_hw_scan, int, 0444);
|
|
|
+module_param_named(disable_hw_scan, iwl3945_mod_params.disable_hw_scan, int, 0444);
|
|
|
MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)");
|
|
|
|
|
|
-module_param_named(queues_num, iwl3945_param_queues_num, int, 0444);
|
|
|
+module_param_named(queues_num, iwl3945_mod_params.num_of_queues, int, 0444);
|
|
|
MODULE_PARM_DESC(queues_num, "number of hw queues.");
|
|
|
|
|
|
module_exit(iwl3945_exit);
|