[mac80211]: add add new firmware support and additional fixes for wl18xx
[openwrt.git] / package / kernel / mac80211 / patches / 912-wlcore-wl18xx-allow-CCK-rates-for-AP-mode.patch
1 12xx chips allow only OFDM rates in AP mode for BT-Coex purposes. This
2 is no longer required in 18xx chips, starting with FW 8.6.0.0.8.
3
4 Update the min allowed FW version in 18xx to support this functionality.
5
6 Signed-off-by: Arik Nemtsov <arik@wizery.com>
7 Signed-off-by: Eliad Peller <eliad@wizery.com>
8
9 ---
10 drivers/net/wireless/ti/wl12xx/main.c   | 1 +
11  drivers/net/wireless/ti/wlcore/init.c   | 2 +-
12  drivers/net/wireless/ti/wlcore/wlcore.h | 3 +++
13  3 files changed, 5 insertions(+), 1 deletion(-)
14
15 --- a/drivers/net/wireless/ti/wl12xx/main.c
16 +++ b/drivers/net/wireless/ti/wl12xx/main.c
17 @@ -1789,6 +1789,7 @@ static int wl12xx_setup(struct wl1271 *w
18         wl->fw_status_len = sizeof(struct wl12xx_fw_status);
19         wl->fw_status_priv_len = 0;
20         wl->stats.fw_stats_len = sizeof(struct wl12xx_acx_statistics);
21 +       wl->ofdm_only_ap = true;
22         wlcore_set_ht_cap(wl, IEEE80211_BAND_2GHZ, &wl12xx_ht_cap);
23         wlcore_set_ht_cap(wl, IEEE80211_BAND_5GHZ, &wl12xx_ht_cap);
24         wl12xx_conf_init(wl);
25 --- a/drivers/net/wireless/ti/wlcore/init.c
26 +++ b/drivers/net/wireless/ti/wlcore/init.c
27 @@ -462,7 +462,7 @@ int wl1271_init_ap_rates(struct wl1271 *
28          * If the basic rates contain OFDM rates, use OFDM only
29          * rates for unicast TX as well. Else use all supported rates.
30          */
31 -       if ((wlvif->basic_rate_set & CONF_TX_OFDM_RATES))
32 +       if (wl->ofdm_only_ap && (wlvif->basic_rate_set & CONF_TX_OFDM_RATES))
33                 supported_rates = CONF_TX_OFDM_RATES;
34         else
35                 supported_rates = CONF_TX_ENABLED_RATES;
36 --- a/drivers/net/wireless/ti/wlcore/wlcore.h
37 +++ b/drivers/net/wireless/ti/wlcore/wlcore.h
38 @@ -409,6 +409,9 @@ struct wl1271 {
39         /* AP-mode - number of currently connected stations */
40         int active_sta_count;
41  
42 +       /* Flag determining whether AP should broadcast OFDM-only rates */
43 +       bool ofdm_only_ap;
44 +
45         /* last wlvif we transmitted from */
46         struct wl12xx_vif *last_wlvif;
47