diff options
author | Ariej Marjieh <ariej.marjieh@intel.com> | 2014-07-07 05:09:40 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-07-21 03:43:14 -0400 |
commit | 7da91b0ee4884568cb91a77cff122c84953e5698 (patch) | |
tree | ef501f39b9b80ce0b5c0705bd877a7d0e35bdf1d | |
parent | 576eeee9d3ab395f47462c03067c8b9381281f1d (diff) |
iwlwifi: mvm: Enabling Aux Queue
Enabling the Aux queue and mapping it to FIFO 5.
Defining the Aux queue for the Aux station.
Signed-off-by: Ariej Marjieh <ariej.marjieh@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/sta.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/tx.c | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/sta.c b/drivers/net/wireless/iwlwifi/mvm/sta.c index 54459345c967..763548880399 100644 --- a/drivers/net/wireless/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/iwlwifi/mvm/sta.c | |||
@@ -526,8 +526,12 @@ int iwl_mvm_add_aux_sta(struct iwl_mvm *mvm) | |||
526 | 526 | ||
527 | lockdep_assert_held(&mvm->mutex); | 527 | lockdep_assert_held(&mvm->mutex); |
528 | 528 | ||
529 | /* Add the aux station, but without any queues */ | 529 | /* Map Aux queue to fifo - needs to happen before adding Aux station */ |
530 | ret = iwl_mvm_allocate_int_sta(mvm, &mvm->aux_sta, 0, | 530 | iwl_trans_ac_txq_enable(mvm->trans, mvm->aux_queue, |
531 | IWL_MVM_TX_FIFO_MCAST); | ||
532 | |||
533 | /* Allocate aux station and assign to it the aux queue */ | ||
534 | ret = iwl_mvm_allocate_int_sta(mvm, &mvm->aux_sta, BIT(mvm->aux_queue), | ||
531 | NL80211_IFTYPE_UNSPECIFIED); | 535 | NL80211_IFTYPE_UNSPECIFIED); |
532 | if (ret) | 536 | if (ret) |
533 | return ret; | 537 | return ret; |
diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c b/drivers/net/wireless/iwlwifi/mvm/tx.c index e9ff38635c21..dbc870713882 100644 --- a/drivers/net/wireless/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/iwlwifi/mvm/tx.c | |||
@@ -311,6 +311,16 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb) | |||
311 | return -1; | 311 | return -1; |
312 | 312 | ||
313 | /* | 313 | /* |
314 | * IWL_MVM_OFFCHANNEL_QUEUE is used for ROC packets that can be used | ||
315 | * in 2 different types of vifs, P2P & STATION. P2P uses the offchannel | ||
316 | * queue. STATION (HS2.0) uses the auxiliary context of the FW, | ||
317 | * and hence needs to be sent on the aux queue | ||
318 | */ | ||
319 | if (IEEE80211_SKB_CB(skb)->hw_queue == IWL_MVM_OFFCHANNEL_QUEUE && | ||
320 | info->control.vif->type == NL80211_IFTYPE_STATION) | ||
321 | IEEE80211_SKB_CB(skb)->hw_queue = mvm->aux_queue; | ||
322 | |||
323 | /* | ||
314 | * If the interface on which frame is sent is the P2P_DEVICE | 324 | * If the interface on which frame is sent is the P2P_DEVICE |
315 | * or an AP/GO interface use the broadcast station associated | 325 | * or an AP/GO interface use the broadcast station associated |
316 | * with it; otherwise use the AUX station. | 326 | * with it; otherwise use the AUX station. |