aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2014-12-27 13:37:32 +0000
committerFelix Fietkau <nbd@openwrt.org>2014-12-27 13:37:32 +0000
commitbeb4318bc3b09cb28a64848f99f8d1c27698559b (patch)
treee2c656b3e94e93faf24809b04feaa4bc29c41dd5
parent0f0460afda1cb5f8d3f62b4ff7a47f74840d1af5 (diff)
downloadupstream-beb4318bc3b09cb28a64848f99f8d1c27698559b.tar.gz
upstream-beb4318bc3b09cb28a64848f99f8d1c27698559b.tar.bz2
upstream-beb4318bc3b09cb28a64848f99f8d1c27698559b.zip
ath10k: fix tx rate selection for ad-hoc mode with HT
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43790
-rw-r--r--package/kernel/mac80211/patches/327-ath10k-fix-low-TX-rates-when-IBSS-and-HT.patch30
-rw-r--r--package/kernel/mac80211/patches/328-ath10k-send-re-assoc-peer-command-when-NSS-changed.patch26
2 files changed, 56 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/327-ath10k-fix-low-TX-rates-when-IBSS-and-HT.patch b/package/kernel/mac80211/patches/327-ath10k-fix-low-TX-rates-when-IBSS-and-HT.patch
new file mode 100644
index 0000000000..09f1e25fa0
--- /dev/null
+++ b/package/kernel/mac80211/patches/327-ath10k-fix-low-TX-rates-when-IBSS-and-HT.patch
@@ -0,0 +1,30 @@
+From: Janusz Dziedzic <janusz.dziedzic@tieto.com>
+Date: Tue, 16 Dec 2014 09:52:59 +0100
+Subject: [PATCH] ath10k: fix low TX rates when IBSS and HT
+
+This fix TX problem when IBSS used in HT mode.
+Before we used 6Mbps all the time for TX direction.
+
+Reported-by: Yeoh Chun-Yeow <yeohchunyeow@gmail.com>
+Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
+---
+
+--- a/drivers/net/wireless/ath/ath10k/mac.c
++++ b/drivers/net/wireless/ath/ath10k/mac.c
+@@ -1375,9 +1375,16 @@ static void ath10k_peer_assoc_h_qos(stru
+ if (vif->bss_conf.qos)
+ arg->peer_flags |= WMI_PEER_QOS;
+ break;
++ case WMI_VDEV_TYPE_IBSS:
++ if (sta->wme)
++ arg->peer_flags |= WMI_PEER_QOS;
++ break;
+ default:
+ break;
+ }
++
++ ath10k_dbg(ar, ATH10K_DBG_MAC, "mac peer %pM qos %d\n",
++ sta->addr, !!(arg->peer_flags & WMI_PEER_QOS));
+ }
+
+ static void ath10k_peer_assoc_h_phymode(struct ath10k *ar,
diff --git a/package/kernel/mac80211/patches/328-ath10k-send-re-assoc-peer-command-when-NSS-changed.patch b/package/kernel/mac80211/patches/328-ath10k-send-re-assoc-peer-command-when-NSS-changed.patch
new file mode 100644
index 0000000000..56290cd58f
--- /dev/null
+++ b/package/kernel/mac80211/patches/328-ath10k-send-re-assoc-peer-command-when-NSS-changed.patch
@@ -0,0 +1,26 @@
+From: Janusz Dziedzic <janusz.dziedzic@tieto.com>
+Date: Tue, 16 Dec 2014 09:53:00 +0100
+Subject: [PATCH] ath10k: send (re)assoc peer command when NSS changed
+
+Assoc peer command contain information about NSS.
+When we will get IEEE80211_RC_NSS_CHANGED we should
+also send (re) assoc peer command to be sure firmware
+will know about it and RC will work correctly.
+
+Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
+---
+
+--- a/drivers/net/wireless/ath/ath10k/mac.c
++++ b/drivers/net/wireless/ath/ath10k/mac.c
+@@ -3497,8 +3497,9 @@ static void ath10k_sta_rc_update_wk(stru
+ sta->addr, smps, err);
+ }
+
+- if (changed & IEEE80211_RC_SUPP_RATES_CHANGED) {
+- ath10k_dbg(ar, ATH10K_DBG_MAC, "mac update sta %pM supp rates\n",
++ if (changed & IEEE80211_RC_SUPP_RATES_CHANGED ||
++ changed & IEEE80211_RC_NSS_CHANGED) {
++ ath10k_dbg(ar, ATH10K_DBG_MAC, "mac update sta %pM supp rates/nss\n",
+ sta->addr);
+
+ err = ath10k_station_assoc(ar, arvif->vif, sta, true);