summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2015-11-05 11:32:31 +0300
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2015-12-13 10:42:56 +0300
commit36be0eb62e8292b1dbe6fdc2163196f9f69ca422 (patch)
treeb0f401c9a919b812d051d92b3a064669cb19845c /drivers/net/wireless/intel/iwlwifi/mvm/sta.h
parent9b18d42dda985c99db4adde45bbdf7cd79a7525c (diff)
downloadlinux-36be0eb62e8292b1dbe6fdc2163196f9f69ca422.tar.xz
iwlwifi: mvm: close the SP if we send fewer frames than expected in SP
When we have holes in the BA window, there might be frames that have been ACKed between the read and the right pointers. This means that these frames won't be scheduled again by the SCD and the firwmare won't see them. This invalidates the number of frames we tell the firmware to send. When we detect this case, tell mac80211 to close the SP and to send an EOSP so that the firmware can be in sync. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/sta.h')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/sta.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
index 0631cc0a6d3c..ce1b16ac4c66 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
@@ -303,6 +303,11 @@ static inline u16 iwl_mvm_tid_queued(struct iwl_mvm_tid_data *tid_data)
* @tt_tx_protection: is thermal throttling enable Tx protection?
* @disable_tx: is tx to this STA disabled?
* @agg_tids: bitmap of tids whose status is operational aggregated (IWL_AGG_ON)
+ * @sleep_tx_count: the number of frames that we told the firmware to let out
+ * even when that station is asleep. This is useful in case the queue
+ * gets empty before all the frames were sent, which can happen when
+ * we are sending frames from an AMPDU queue and there was a hole in
+ * the BA window. To be used for UAPSD only.
*
* When mac80211 creates a station it reserves some space (hw->sta_data_size)
* in the structure for use by driver. This structure is placed in that
@@ -329,6 +334,7 @@ struct iwl_mvm_sta {
bool disable_tx;
u8 agg_tids;
+ u8 sleep_tx_count;
};
static inline struct iwl_mvm_sta *