diff options
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/sta.c')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 11 |
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)) { |