From beb4318bc3b09cb28a64848f99f8d1c27698559b Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 27 Dec 2014 13:37:32 +0000 Subject: [PATCH] ath10k: fix tx rate selection for ad-hoc mode with HT Signed-off-by: Felix Fietkau SVN-Revision: 43790 --- ...0k-fix-low-TX-rates-when-IBSS-and-HT.patch | 30 +++++++++++++++++++ ...-assoc-peer-command-when-NSS-changed.patch | 26 ++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 package/kernel/mac80211/patches/327-ath10k-fix-low-TX-rates-when-IBSS-and-HT.patch create mode 100644 package/kernel/mac80211/patches/328-ath10k-send-re-assoc-peer-command-when-NSS-changed.patch 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 +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 +Signed-off-by: Janusz Dziedzic +--- + +--- 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 +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 +--- + +--- 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);