summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h
diff options
context:
space:
mode:
authorGregory Greenman2017-03-06 10:15:41 +0100
committerLuca Coelho2017-06-05 20:45:41 +0200
commitea42d1cbe3f067fb714c3ec3e1792fa273b99561 (patch)
tree2b55085e980eb7699ff0154d88881c30611f15d3 /drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h
parentbridge: start hello_timer when enabling KERNEL_STP in br_stp_start (diff)
downloadkernel-qcow2-linux-ea42d1cbe3f067fb714c3ec3e1792fa273b99561.tar.gz
kernel-qcow2-linux-ea42d1cbe3f067fb714c3ec3e1792fa273b99561.tar.xz
kernel-qcow2-linux-ea42d1cbe3f067fb714c3ec3e1792fa273b99561.zip
iwlwifi: mvm: rs: start using LQ command color
Up until now, the driver was comparing the rate reported by the FW and the rate of the latest LQ command to avoid processing data belonging to the old LQ command. Recently, FW changed the meaning of the initial rate field in tx response and it holds the actual rate (which is not necessarily the initial rate of LQ's rate table). Use instead LQ cmd color to be able to filter out tx responses/BA notifications which where sent during earlier LQ commands' time frame. This fixes some throughput degradation in noisy environments. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h b/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h
index 1b7d265ffb0a..a10c6aae9ab9 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rs.h
@@ -307,6 +307,11 @@ enum {
/* Bit 1-3: LQ command color. Used to match responses to LQ commands */
#define LQ_FLAG_COLOR_POS 1
#define LQ_FLAG_COLOR_MSK (7 << LQ_FLAG_COLOR_POS)
+#define LQ_FLAG_COLOR_GET(_f) (((_f) & LQ_FLAG_COLOR_MSK) >>\
+ LQ_FLAG_COLOR_POS)
+#define LQ_FLAGS_COLOR_INC(_c) ((((_c) + 1) << LQ_FLAG_COLOR_POS) &\
+ LQ_FLAG_COLOR_MSK)
+#define LQ_FLAG_COLOR_SET(_f, _c) ((_c) | ((_f) & ~LQ_FLAG_COLOR_MSK))
/* Bit 4-5: Tx RTS BW Signalling
* (0) No RTS BW signalling