aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/sta.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/sta.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index bd1dcc863d8f..b51a2853cc80 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -3135,7 +3135,7 @@ void iwl_mvm_sta_modify_sleep_tx_count(struct iwl_mvm *mvm,
3135 struct ieee80211_sta *sta, 3135 struct ieee80211_sta *sta,
3136 enum ieee80211_frame_release_type reason, 3136 enum ieee80211_frame_release_type reason,
3137 u16 cnt, u16 tids, bool more_data, 3137 u16 cnt, u16 tids, bool more_data,
3138 bool agg) 3138 bool single_sta_queue)
3139{ 3139{
3140 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta); 3140 struct iwl_mvm_sta *mvmsta = iwl_mvm_sta_from_mac80211(sta);
3141 struct iwl_mvm_add_sta_cmd cmd = { 3141 struct iwl_mvm_add_sta_cmd cmd = {
@@ -3155,14 +3155,14 @@ void iwl_mvm_sta_modify_sleep_tx_count(struct iwl_mvm *mvm,
3155 for_each_set_bit(tid, &_tids, IWL_MAX_TID_COUNT) 3155 for_each_set_bit(tid, &_tids, IWL_MAX_TID_COUNT)
3156 cmd.awake_acs |= BIT(tid_to_ucode_ac[tid]); 3156 cmd.awake_acs |= BIT(tid_to_ucode_ac[tid]);
3157 3157
3158 /* If we're releasing frames from aggregation queues then check if the 3158 /* If we're releasing frames from aggregation or dqa queues then check
3159 * all queues combined that we're releasing frames from have 3159 * if all the queues that we're releasing frames from, combined, have:
3160 * - more frames than the service period, in which case more_data 3160 * - more frames than the service period, in which case more_data
3161 * needs to be set 3161 * needs to be set
3162 * - fewer than 'cnt' frames, in which case we need to adjust the 3162 * - fewer than 'cnt' frames, in which case we need to adjust the
3163 * firmware command (but do that unconditionally) 3163 * firmware command (but do that unconditionally)
3164 */ 3164 */
3165 if (agg) { 3165 if (single_sta_queue) {
3166 int remaining = cnt; 3166 int remaining = cnt;
3167 int sleep_tx_count; 3167 int sleep_tx_count;
3168 3168
@@ -3172,7 +3172,8 @@ void iwl_mvm_sta_modify_sleep_tx_count(struct iwl_mvm *mvm,
3172 u16 n_queued; 3172 u16 n_queued;
3173 3173
3174 tid_data = &mvmsta->tid_data[tid]; 3174 tid_data = &mvmsta->tid_data[tid];
3175 if (WARN(tid_data->state != IWL_AGG_ON && 3175 if (WARN(!iwl_mvm_is_dqa_supported(mvm) &&
3176 tid_data->state != IWL_AGG_ON &&
3176 tid_data->state != IWL_EMPTYING_HW_QUEUE_DELBA, 3177 tid_data->state != IWL_EMPTYING_HW_QUEUE_DELBA,
3177 "TID %d state is %d\n", 3178 "TID %d state is %d\n",
3178 tid, tid_data->state)) { 3179 tid, tid_data->state)) {