aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch')
-rw-r--r--package/kernel/mac80211/patches/912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch b/package/kernel/mac80211/patches/912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch
new file mode 100644
index 0000000000..c957b9c04e
--- /dev/null
+++ b/package/kernel/mac80211/patches/912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch
@@ -0,0 +1,47 @@
+12xx chips allow only OFDM rates in AP mode for BT-Coex purposes. This
+is no longer required in 18xx chips, starting with FW 8.6.0.0.8.
+
+Update the min allowed FW version in 18xx to support this functionality.
+
+Signed-off-by: Arik Nemtsov <arik@wizery.com>
+Signed-off-by: Eliad Peller <eliad@wizery.com>
+
+---
+drivers/net/wireless/ti/wl12xx/main.c | 1 +
+ drivers/net/wireless/ti/wlcore/init.c | 2 +-
+ drivers/net/wireless/ti/wlcore/wlcore.h | 3 +++
+ 3 files changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/wireless/ti/wl12xx/main.c
++++ b/drivers/net/wireless/ti/wl12xx/main.c
+@@ -1789,6 +1789,7 @@ static int wl12xx_setup(struct wl1271 *w
+ wl->fw_status_len = sizeof(struct wl12xx_fw_status);
+ wl->fw_status_priv_len = 0;
+ wl->stats.fw_stats_len = sizeof(struct wl12xx_acx_statistics);
++ wl->ofdm_only_ap = true;
+ wlcore_set_ht_cap(wl, IEEE80211_BAND_2GHZ, &wl12xx_ht_cap);
+ wlcore_set_ht_cap(wl, IEEE80211_BAND_5GHZ, &wl12xx_ht_cap);
+ wl12xx_conf_init(wl);
+--- a/drivers/net/wireless/ti/wlcore/init.c
++++ b/drivers/net/wireless/ti/wlcore/init.c
+@@ -462,7 +462,7 @@ int wl1271_init_ap_rates(struct wl1271 *
+ * If the basic rates contain OFDM rates, use OFDM only
+ * rates for unicast TX as well. Else use all supported rates.
+ */
+- if ((wlvif->basic_rate_set & CONF_TX_OFDM_RATES))
++ if (wl->ofdm_only_ap && (wlvif->basic_rate_set & CONF_TX_OFDM_RATES))
+ supported_rates = CONF_TX_OFDM_RATES;
+ else
+ supported_rates = CONF_TX_ENABLED_RATES;
+--- a/drivers/net/wireless/ti/wlcore/wlcore.h
++++ b/drivers/net/wireless/ti/wlcore/wlcore.h
+@@ -409,6 +409,9 @@ struct wl1271 {
+ /* AP-mode - number of currently connected stations */
+ int active_sta_count;
+
++ /* Flag determining whether AP should broadcast OFDM-only rates */
++ bool ofdm_only_ap;
++
+ /* last wlvif we transmitted from */
+ struct wl12xx_vif *last_wlvif;
+