diff options
Diffstat (limited to 'package/kernel/mac80211/patches/909-wl18xx-move-to-new-firmware-wl18xx-fw-3.bin.patch')
-rw-r--r-- | package/kernel/mac80211/patches/909-wl18xx-move-to-new-firmware-wl18xx-fw-3.bin.patch | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/package/kernel/mac80211/patches/909-wl18xx-move-to-new-firmware-wl18xx-fw-3.bin.patch b/package/kernel/mac80211/patches/909-wl18xx-move-to-new-firmware-wl18xx-fw-3.bin.patch deleted file mode 100644 index 85214c1..0000000 --- a/package/kernel/mac80211/patches/909-wl18xx-move-to-new-firmware-wl18xx-fw-3.bin.patch +++ /dev/null @@ -1,200 +0,0 @@ -Bump the min wl18xx fw version to 8.8.0.0.13 - -This fw is not backward compatible with older -firmware (due to api changes), so use bump -the firmware name as well. - -Some modifications were done to the driver-fw api -in order to support multiple APs. - -Additionally, some of the consts (such as max stations, -max links and max RX BA sessions) were changed. - -Signed-off-by: Arik Nemtsov <arik@wizery.com> -Signed-off-by: Eliad Peller <eliad@wizery.com> - ---- -drivers/net/wireless/ti/wl18xx/main.c | 2 +- - drivers/net/wireless/ti/wl18xx/wl18xx.h | 10 +++++----- - drivers/net/wireless/ti/wlcore/acx.c | 4 +++- - drivers/net/wireless/ti/wlcore/acx.h | 6 ++++-- - drivers/net/wireless/ti/wlcore/cmd.c | 5 ++++- - drivers/net/wireless/ti/wlcore/cmd.h | 7 +++++-- - drivers/net/wireless/ti/wlcore/main.c | 2 +- - drivers/net/wireless/ti/wlcore/tx.c | 2 +- - drivers/net/wireless/ti/wlcore/wlcore_i.h | 2 +- - 9 files changed, 25 insertions(+), 15 deletions(-) - ---- a/drivers/net/wireless/ti/wl18xx/main.c -+++ b/drivers/net/wireless/ti/wl18xx/main.c -@@ -648,7 +648,7 @@ static const struct wl18xx_clk_cfg wl18x - }; - - /* TODO: maybe move to a new header file? */ --#define WL18XX_FW_NAME "ti-connectivity/wl18xx-fw-2.bin" -+#define WL18XX_FW_NAME "ti-connectivity/wl18xx-fw-3.bin" - - static int wl18xx_identify_chip(struct wl1271 *wl) - { ---- a/drivers/net/wireless/ti/wl18xx/wl18xx.h -+++ b/drivers/net/wireless/ti/wl18xx/wl18xx.h -@@ -26,10 +26,10 @@ - - /* minimum FW required for driver */ - #define WL18XX_CHIP_VER 8 --#define WL18XX_IFTYPE_VER 5 -+#define WL18XX_IFTYPE_VER 8 - #define WL18XX_MAJOR_VER WLCORE_FW_VER_IGNORE - #define WL18XX_SUBTYPE_VER WLCORE_FW_VER_IGNORE --#define WL18XX_MINOR_VER 39 -+#define WL18XX_MINOR_VER 13 - - #define WL18XX_CMD_MAX_SIZE 740 - -@@ -40,10 +40,10 @@ - - #define WL18XX_NUM_MAC_ADDRESSES 3 - --#define WL18XX_RX_BA_MAX_SESSIONS 5 -+#define WL18XX_RX_BA_MAX_SESSIONS 13 - --#define WL18XX_MAX_AP_STATIONS 8 --#define WL18XX_MAX_LINKS 12 -+#define WL18XX_MAX_AP_STATIONS 10 -+#define WL18XX_MAX_LINKS 16 - - struct wl18xx_priv { - /* buffer for sending commands to FW */ ---- a/drivers/net/wireless/ti/wlcore/acx.c -+++ b/drivers/net/wireless/ti/wlcore/acx.c -@@ -1591,7 +1591,8 @@ out: - return ret; - } - --int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr) -+int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, -+ struct wl12xx_vif *wlvif, u8 *addr) - { - struct wl1271_acx_inconnection_sta *acx = NULL; - int ret; -@@ -1603,6 +1604,7 @@ int wl1271_acx_set_inconnection_sta(stru - return -ENOMEM; - - memcpy(acx->addr, addr, ETH_ALEN); -+ acx->role_id = wlvif->role_id; - - ret = wl1271_cmd_configure(wl, ACX_UPDATE_INCONNECTION_STA_LIST, - acx, sizeof(*acx)); ---- a/drivers/net/wireless/ti/wlcore/acx.h -+++ b/drivers/net/wireless/ti/wlcore/acx.h -@@ -824,7 +824,8 @@ struct wl1271_acx_inconnection_sta { - struct acx_header header; - - u8 addr[ETH_ALEN]; -- u8 padding1[2]; -+ u8 role_id; -+ u8 padding; - } __packed; - - /* -@@ -1118,7 +1119,8 @@ int wl1271_acx_ps_rx_streaming(struct wl - bool enable); - int wl1271_acx_ap_max_tx_retry(struct wl1271 *wl, struct wl12xx_vif *wlvif); - int wl12xx_acx_config_ps(struct wl1271 *wl, struct wl12xx_vif *wlvif); --int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, u8 *addr); -+int wl1271_acx_set_inconnection_sta(struct wl1271 *wl, -+ struct wl12xx_vif *wlvif, u8 *addr); - int wl1271_acx_fm_coex(struct wl1271 *wl); - int wl12xx_acx_set_rate_mgmt_params(struct wl1271 *wl); - int wl12xx_acx_config_hangover(struct wl1271 *wl); ---- a/drivers/net/wireless/ti/wlcore/cmd.c -+++ b/drivers/net/wireless/ti/wlcore/cmd.c -@@ -1532,6 +1532,7 @@ int wl12xx_cmd_add_peer(struct wl1271 *w - cmd->sp_len = sta->max_sp; - cmd->wmm = sta->wme ? 1 : 0; - cmd->session_id = wl->session_ids[hlid]; -+ cmd->role_id = wlvif->role_id; - - for (i = 0; i < NUM_ACCESS_CATEGORIES_COPY; i++) - if (sta->wme && (sta->uapsd_queues & BIT(i))) -@@ -1568,7 +1569,8 @@ out: - return ret; - } - --int wl12xx_cmd_remove_peer(struct wl1271 *wl, u8 hlid) -+int wl12xx_cmd_remove_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif, -+ u8 hlid) - { - struct wl12xx_cmd_remove_peer *cmd; - int ret; -@@ -1586,6 +1588,7 @@ int wl12xx_cmd_remove_peer(struct wl1271 - /* We never send a deauth, mac80211 is in charge of this */ - cmd->reason_opcode = 0; - cmd->send_deauth_flag = 0; -+ cmd->role_id = wlvif->role_id; - - ret = wl1271_cmd_send(wl, CMD_REMOVE_PEER, cmd, sizeof(*cmd), 0); - if (ret < 0) { ---- a/drivers/net/wireless/ti/wlcore/cmd.h -+++ b/drivers/net/wireless/ti/wlcore/cmd.h -@@ -88,7 +88,8 @@ int wl12xx_roc(struct wl1271 *wl, struct - int wl12xx_croc(struct wl1271 *wl, u8 role_id); - int wl12xx_cmd_add_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif, - struct ieee80211_sta *sta, u8 hlid); --int wl12xx_cmd_remove_peer(struct wl1271 *wl, u8 hlid); -+int wl12xx_cmd_remove_peer(struct wl1271 *wl, struct wl12xx_vif *wlvif, -+ u8 hlid); - void wlcore_set_pending_regdomain_ch(struct wl1271 *wl, u16 channel, - enum ieee80211_band band); - int wlcore_cmd_regdomain_config_locked(struct wl1271 *wl); -@@ -594,6 +595,8 @@ struct wl12xx_cmd_add_peer { - u8 sp_len; - u8 wmm; - u8 session_id; -+ u8 role_id; -+ u8 padding[3]; - } __packed; - - struct wl12xx_cmd_remove_peer { -@@ -602,7 +605,7 @@ struct wl12xx_cmd_remove_peer { - u8 hlid; - u8 reason_opcode; - u8 send_deauth_flag; -- u8 padding1; -+ u8 role_id; - } __packed; - - /* ---- a/drivers/net/wireless/ti/wlcore/main.c -+++ b/drivers/net/wireless/ti/wlcore/main.c -@@ -4798,7 +4798,7 @@ static int wl12xx_sta_remove(struct wl12 - if (WARN_ON(!test_bit(id, wlvif->ap.sta_hlid_map))) - return -EINVAL; - -- ret = wl12xx_cmd_remove_peer(wl, wl_sta->hlid); -+ ret = wl12xx_cmd_remove_peer(wl, wlvif, wl_sta->hlid); - if (ret < 0) - return ret; - ---- a/drivers/net/wireless/ti/wlcore/tx.c -+++ b/drivers/net/wireless/ti/wlcore/tx.c -@@ -101,7 +101,7 @@ static void wl1271_tx_ap_update_inconnec - * authentication response. this way it won't get de-authed by FW - * when transmitting too soon. - */ -- wl1271_acx_set_inconnection_sta(wl, hdr->addr1); -+ wl1271_acx_set_inconnection_sta(wl, wlvif, hdr->addr1); - - /* - * ROC for 1 second on the AP channel for completing the connection. ---- a/drivers/net/wireless/ti/wlcore/wlcore_i.h -+++ b/drivers/net/wireless/ti/wlcore/wlcore_i.h -@@ -65,7 +65,7 @@ - * max number of links allowed by all HWs. - * this is NOT the actual max links supported by the current hw. - */ --#define WLCORE_MAX_LINKS 12 -+#define WLCORE_MAX_LINKS 16 - - /* the driver supports the 2.4Ghz and 5Ghz bands */ - #define WLCORE_NUM_BANDS 2 |