ath10k: fix a bug on sending null-func frames
authorFelix Fietkau <nbd@nbd.name>
Tue, 13 Dec 2016 11:52:01 +0000 (12:52 +0100)
committerFelix Fietkau <nbd@nbd.name>
Wed, 14 Dec 2016 11:04:52 +0000 (12:04 +0100)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/kernel/mac80211/patches/332-ath10k-Fix-failure-to-send-NULL-func-frame-for-10.4.patch [new file with mode: 0644]

diff --git a/package/kernel/mac80211/patches/332-ath10k-Fix-failure-to-send-NULL-func-frame-for-10.4.patch b/package/kernel/mac80211/patches/332-ath10k-Fix-failure-to-send-NULL-func-frame-for-10.4.patch
new file mode 100644 (file)
index 0000000..76e6cca
--- /dev/null
@@ -0,0 +1,42 @@
+From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
+Date: Wed, 12 Oct 2016 12:59:02 +0530
+Subject: [PATCH] ath10k: Fix failure to send NULL func frame for 10.4
+
+This partially reverts 'commit 2cdce425aa33
+("ath10k: Fix broken NULL func data frame status for 10.4")'
+Unfortunately this breaks sending NULL func and the existing
+issue of obtaining proper tx status for NULL function will be
+fixed. Also update the comments for feature flag added to be
+useless and not working
+
+Fixes: 2cdce425aa33 "ath10k: Fix broken NULL func data frame status for
+10.4"
+Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
+---
+
+--- a/drivers/net/wireless/ath/ath10k/core.h
++++ b/drivers/net/wireless/ath/ath10k/core.h
+@@ -556,10 +556,8 @@ enum ath10k_fw_features {
+        */
+       ATH10K_FW_FEATURE_BTCOEX_PARAM = 14,
+-      /* Older firmware with HTT delivers incorrect tx status for null func
+-       * frames to driver, but this fixed in 10.2 and 10.4 firmware versions.
+-       * Also this workaround results in reporting of incorrect null func
+-       * status for 10.4. This flag is used to skip the workaround.
++      /* Unused flag and proven to be not working, enable this if you want
++       * to experiment sending NULL func data frames in HTT TX
+        */
+       ATH10K_FW_FEATURE_SKIP_NULL_FUNC_WAR = 15,
+--- a/drivers/net/wireless/ath/ath10k/mac.c
++++ b/drivers/net/wireless/ath/ath10k/mac.c
+@@ -3274,8 +3274,6 @@ ath10k_mac_tx_h_get_txmode(struct ath10k
+       if (ar->htt.target_version_major < 3 &&
+           (ieee80211_is_nullfunc(fc) || ieee80211_is_qos_nullfunc(fc)) &&
+           !test_bit(ATH10K_FW_FEATURE_HAS_WMI_MGMT_TX,
+-                    ar->running_fw->fw_file.fw_features) &&
+-          !test_bit(ATH10K_FW_FEATURE_SKIP_NULL_FUNC_WAR,
+                     ar->running_fw->fw_file.fw_features))
+               return ATH10K_HW_TXRX_MGMT;