diff options
author | Felix Fietkau <nbd@nbd.name> | 2016-06-26 19:00:01 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2016-07-02 19:34:50 +0200 |
commit | 67a7daa938671a5c7006e5d689c297a26499d75c (patch) | |
tree | c11db1b831745bcc356f105f421cefbba938cb41 /package/kernel/mac80211/patches/308-ath10k-Fix-sending-NULL-Qos-NULL-data-frames-for-QCA.patch | |
parent | de165b66be47497906d3cf4f1ca6071ee25e2003 (diff) | |
download | upstream-67a7daa938671a5c7006e5d689c297a26499d75c.tar.gz upstream-67a7daa938671a5c7006e5d689c297a26499d75c.tar.bz2 upstream-67a7daa938671a5c7006e5d689c297a26499d75c.zip |
mac80211: update to wireless-testing 2016-06-20
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/kernel/mac80211/patches/308-ath10k-Fix-sending-NULL-Qos-NULL-data-frames-for-QCA.patch')
-rw-r--r-- | package/kernel/mac80211/patches/308-ath10k-Fix-sending-NULL-Qos-NULL-data-frames-for-QCA.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/308-ath10k-Fix-sending-NULL-Qos-NULL-data-frames-for-QCA.patch b/package/kernel/mac80211/patches/308-ath10k-Fix-sending-NULL-Qos-NULL-data-frames-for-QCA.patch new file mode 100644 index 0000000000..8590aadabe --- /dev/null +++ b/package/kernel/mac80211/patches/308-ath10k-Fix-sending-NULL-Qos-NULL-data-frames-for-QCA.patch @@ -0,0 +1,72 @@ +From: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> +Date: Thu, 23 Jun 2016 22:10:01 +0530 +Subject: [PATCH] ath10k: Fix sending NULL/ Qos NULL data frames for + QCA99X0 and later + +For chipsets like QCA99X0, IPQ4019 and later we are not getting proper +NULL func status (always acked/successs !!) when hostapd does a +PROBE_CLIENT via nullfunc frames when the station is powered off +abruptly (inactive timer probes client via null func after the inactive +time reaches beyond the threshold). Fix this by disabling the workaround +(getting the ACK status of NULL func frames by sending via HTT mgmt-tx + path) introduced by the change ("ath10k: fix beacon loss handling ") +for QCA99X0 and later chipsets. The normal tx path provides the proper +ACK status for NULL data frames. As of now disable this workaround for +chipsets QCA99X0 and later, once the 10.1 firmware is obselete we can +completely get rid of this workaround for all the chipsets + +Signed-off-by: Tamizh chelvam <c_traja@qti.qualcomm.com> +Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com> +--- + +--- a/drivers/net/wireless/ath/ath10k/core.c ++++ b/drivers/net/wireless/ath/ath10k/core.c +@@ -181,6 +181,7 @@ static const struct ath10k_hw_params ath + .board = QCA99X0_HW_2_0_BOARD_DATA_FILE, + .board_size = QCA99X0_BOARD_DATA_SZ, + .board_ext_size = QCA99X0_BOARD_EXT_DATA_SZ, ++ .disable_null_func_workaround = true, + }, + }, + { +@@ -204,6 +205,7 @@ static const struct ath10k_hw_params ath + .board = QCA9984_HW_1_0_BOARD_DATA_FILE, + .board_size = QCA99X0_BOARD_DATA_SZ, + .board_ext_size = QCA99X0_BOARD_EXT_DATA_SZ, ++ .disable_null_func_workaround = true, + }, + }, + { +@@ -262,6 +264,7 @@ static const struct ath10k_hw_params ath + .board = QCA4019_HW_1_0_BOARD_DATA_FILE, + .board_size = QCA4019_BOARD_DATA_SZ, + .board_ext_size = QCA4019_BOARD_EXT_DATA_SZ, ++ .disable_null_func_workaround = true, + }, + }, + }; +--- a/drivers/net/wireless/ath/ath10k/core.h ++++ b/drivers/net/wireless/ath/ath10k/core.h +@@ -750,6 +750,12 @@ struct ath10k { + const char *board; + size_t board_size; + size_t board_ext_size; ++ /* Workaround of sending NULL data frames via ++ * HTT mgmt TX and getting the proper ACK status does ++ * not works for chipsets QCA99X0 and later, while ++ * Tx data path reports the ACK status properly. ++ */ ++ bool disable_null_func_workaround; + } fw; + } hw_params; + +--- a/drivers/net/wireless/ath/ath10k/mac.c ++++ b/drivers/net/wireless/ath/ath10k/mac.c +@@ -3253,6 +3253,7 @@ ath10k_mac_tx_h_get_txmode(struct ath10k + * mode though because AP don't sleep. + */ + if (ar->htt.target_version_major < 3 && ++ !ar->hw_params.fw.disable_null_func_workaround && + (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)) |