diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 42 |
2 files changed, 15 insertions, 28 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index b7e366e5568c..ec6084c8fd13 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h | |||
@@ -476,7 +476,6 @@ union iwl3945_qos_capabity { | |||
476 | 476 | ||
477 | /* QoS structures */ | 477 | /* QoS structures */ |
478 | struct iwl3945_qos_info { | 478 | struct iwl3945_qos_info { |
479 | int qos_enable; | ||
480 | int qos_active; | 479 | int qos_active; |
481 | union iwl3945_qos_capabity qos_cap; | 480 | union iwl3945_qos_capabity qos_cap; |
482 | struct iwl3945_qosparam_cmd def_qos_parm; | 481 | struct iwl3945_qosparam_cmd def_qos_parm; |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 278f4a881cfb..953ce9d84ce8 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -69,7 +69,6 @@ static int iwl3945_param_debug; /* def: 0 = minimal debug log messages */ | |||
69 | static int iwl3945_param_disable; /* def: 0 = enable radio */ | 69 | static int iwl3945_param_disable; /* def: 0 = enable radio */ |
70 | static int iwl3945_param_antenna; /* def: 0 = both antennas (use diversity) */ | 70 | static int iwl3945_param_antenna; /* def: 0 = both antennas (use diversity) */ |
71 | int iwl3945_param_hwcrypto; /* def: 0 = use software encryption */ | 71 | int iwl3945_param_hwcrypto; /* def: 0 = use software encryption */ |
72 | static int iwl3945_param_qos_enable = 1; /* def: 1 = use quality of service */ | ||
73 | int iwl3945_param_queues_num = IWL39_MAX_NUM_QUEUES; /* def: 8 Tx queues */ | 72 | int iwl3945_param_queues_num = IWL39_MAX_NUM_QUEUES; /* def: 8 Tx queues */ |
74 | 73 | ||
75 | /* | 74 | /* |
@@ -1693,17 +1692,21 @@ static void iwl3945_reset_qos(struct iwl3945_priv *priv) | |||
1693 | spin_lock_irqsave(&priv->lock, flags); | 1692 | spin_lock_irqsave(&priv->lock, flags); |
1694 | priv->qos_data.qos_active = 0; | 1693 | priv->qos_data.qos_active = 0; |
1695 | 1694 | ||
1696 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC) { | 1695 | /* QoS always active in AP and ADHOC mode |
1697 | if (priv->qos_data.qos_enable) | 1696 | * In STA mode wait for association |
1698 | priv->qos_data.qos_active = 1; | 1697 | */ |
1699 | if (!(priv->active_rate & 0xfff0)) { | 1698 | if (priv->iw_mode == NL80211_IFTYPE_ADHOC || |
1700 | cw_min = 31; | 1699 | priv->iw_mode == NL80211_IFTYPE_AP) |
1701 | is_legacy = 1; | 1700 | priv->qos_data.qos_active = 1; |
1702 | } | 1701 | else |
1703 | } else if (priv->iw_mode == NL80211_IFTYPE_AP) { | 1702 | priv->qos_data.qos_active = 0; |
1704 | if (priv->qos_data.qos_enable) | 1703 | |
1705 | priv->qos_data.qos_active = 1; | 1704 | |
1706 | } else if (!(priv->staging_rxon.flags & RXON_FLG_SHORT_SLOT_MSK)) { | 1705 | /* check for legacy mode */ |
1706 | if ((priv->iw_mode == NL80211_IFTYPE_ADHOC && | ||
1707 | (priv->active_rate & IWL_OFDM_RATES_MASK) == 0) || | ||
1708 | (priv->iw_mode == NL80211_IFTYPE_STATION && | ||
1709 | (priv->staging_rxon.flags & RXON_FLG_SHORT_SLOT_MSK) == 0)) { | ||
1707 | cw_min = 31; | 1710 | cw_min = 31; |
1708 | is_legacy = 1; | 1711 | is_legacy = 1; |
1709 | } | 1712 | } |
@@ -1775,9 +1778,6 @@ static void iwl3945_activate_qos(struct iwl3945_priv *priv, u8 force) | |||
1775 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) | 1778 | if (test_bit(STATUS_EXIT_PENDING, &priv->status)) |
1776 | return; | 1779 | return; |
1777 | 1780 | ||
1778 | if (!priv->qos_data.qos_enable) | ||
1779 | return; | ||
1780 | |||
1781 | spin_lock_irqsave(&priv->lock, flags); | 1781 | spin_lock_irqsave(&priv->lock, flags); |
1782 | priv->qos_data.def_qos_parm.qos_flags = 0; | 1782 | priv->qos_data.def_qos_parm.qos_flags = 0; |
1783 | 1783 | ||
@@ -7095,11 +7095,6 @@ static int iwl3945_mac_conf_tx(struct ieee80211_hw *hw, u16 queue, | |||
7095 | return 0; | 7095 | return 0; |
7096 | } | 7096 | } |
7097 | 7097 | ||
7098 | if (!priv->qos_data.qos_enable) { | ||
7099 | priv->qos_data.qos_active = 0; | ||
7100 | IWL_DEBUG_MAC80211("leave - qos not enabled\n"); | ||
7101 | return 0; | ||
7102 | } | ||
7103 | q = AC_NUM - 1 - queue; | 7098 | q = AC_NUM - 1 - queue; |
7104 | 7099 | ||
7105 | spin_lock_irqsave(&priv->lock, flags); | 7100 | spin_lock_irqsave(&priv->lock, flags); |
@@ -7979,9 +7974,6 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e | |||
7979 | 7974 | ||
7980 | priv->iw_mode = NL80211_IFTYPE_STATION; | 7975 | priv->iw_mode = NL80211_IFTYPE_STATION; |
7981 | 7976 | ||
7982 | if (iwl3945_param_qos_enable) | ||
7983 | priv->qos_data.qos_enable = 1; | ||
7984 | |||
7985 | iwl3945_reset_qos(priv); | 7977 | iwl3945_reset_qos(priv); |
7986 | 7978 | ||
7987 | priv->qos_data.qos_active = 0; | 7979 | priv->qos_data.qos_active = 0; |
@@ -8372,9 +8364,5 @@ MODULE_PARM_DESC(disable_hw_scan, "disable hardware scanning (default 0)"); | |||
8372 | module_param_named(queues_num, iwl3945_param_queues_num, int, 0444); | 8364 | module_param_named(queues_num, iwl3945_param_queues_num, int, 0444); |
8373 | MODULE_PARM_DESC(queues_num, "number of hw queues."); | 8365 | MODULE_PARM_DESC(queues_num, "number of hw queues."); |
8374 | 8366 | ||
8375 | /* QoS */ | ||
8376 | module_param_named(qos_enable, iwl3945_param_qos_enable, int, 0444); | ||
8377 | MODULE_PARM_DESC(qos_enable, "enable all QoS functionality"); | ||
8378 | |||
8379 | module_exit(iwl3945_exit); | 8367 | module_exit(iwl3945_exit); |
8380 | module_init(iwl3945_init); | 8368 | module_init(iwl3945_init); |