Commit 7f097988 authored by Eliad Peller's avatar Eliad Peller Committed by Luciano Coelho

wl12xx: update acx commands

Update the acx commands according to the new fw api
(fw >= 6/7.3.0.0.75).

The main change in most of the ACXs is the addition
of a new role_id/link_id field, which is required
for multi-role operation.

Currently, we don't really support multi-role, as
most of our data (inside wl) is global.
As the current fw doesn't support concurrent roles
yet, keep it this way and add wl->role_id and
wl->sta_hlid to save the active role/link.
Signed-off-by: default avatarEliad Peller <eliad@wizery.com>
Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
parent 4d56ad9c
This diff is collapsed.
This diff is collapsed.
...@@ -388,7 +388,7 @@ static int wl1271_sta_hw_init(struct wl1271 *wl) ...@@ -388,7 +388,7 @@ static int wl1271_sta_hw_init(struct wl1271 *wl)
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = wl1271_acx_sta_mem_cfg(wl); ret = wl12xx_acx_mem_cfg(wl);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -447,7 +447,7 @@ static int wl1271_ap_hw_init(struct wl1271 *wl) ...@@ -447,7 +447,7 @@ static int wl1271_ap_hw_init(struct wl1271 *wl)
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = wl1271_acx_ap_mem_cfg(wl); ret = wl12xx_acx_mem_cfg(wl);
if (ret < 0) if (ret < 0)
return ret; return ret;
......
...@@ -718,7 +718,7 @@ static int wl1271_plt_init(struct wl1271 *wl) ...@@ -718,7 +718,7 @@ static int wl1271_plt_init(struct wl1271 *wl)
if (ret < 0) if (ret < 0)
goto out_free_memmap; goto out_free_memmap;
ret = wl1271_acx_sta_mem_cfg(wl); ret = wl12xx_acx_mem_cfg(wl);
if (ret < 0) if (ret < 0)
goto out_free_memmap; goto out_free_memmap;
...@@ -1981,6 +1981,7 @@ static void __wl1271_op_remove_interface(struct wl1271 *wl, ...@@ -1981,6 +1981,7 @@ static void __wl1271_op_remove_interface(struct wl1271 *wl,
wl->ap_fw_ps_map = 0; wl->ap_fw_ps_map = 0;
wl->ap_ps_map = 0; wl->ap_ps_map = 0;
wl->sched_scanning = false; wl->sched_scanning = false;
wl->role_id = WL12XX_INVALID_ROLE_ID;
/* /*
* this is performed after the cancel_work calls and the associated * this is performed after the cancel_work calls and the associated
...@@ -4317,6 +4318,8 @@ struct ieee80211_hw *wl1271_alloc_hw(void) ...@@ -4317,6 +4318,8 @@ struct ieee80211_hw *wl1271_alloc_hw(void)
wl->sched_scanning = false; wl->sched_scanning = false;
wl->tx_security_seq = 0; wl->tx_security_seq = 0;
wl->tx_security_last_seq_lsb = 0; wl->tx_security_last_seq_lsb = 0;
wl->role_id = WL12XX_INVALID_ROLE_ID;
wl->sta_hlid = WL12XX_INVALID_LINK_ID;
setup_timer(&wl->rx_streaming_timer, wl1271_rx_streaming_timer, setup_timer(&wl->rx_streaming_timer, wl1271_rx_streaming_timer,
(unsigned long) wl); (unsigned long) wl);
......
...@@ -138,6 +138,8 @@ extern u32 wl12xx_debug_level; ...@@ -138,6 +138,8 @@ extern u32 wl12xx_debug_level;
#define WL1271_DEFAULT_DTIM_PERIOD 1 #define WL1271_DEFAULT_DTIM_PERIOD 1
#define WL12XX_MAX_LINKS 8 #define WL12XX_MAX_LINKS 8
#define WL12XX_INVALID_ROLE_ID 0xff
#define WL12XX_INVALID_LINK_ID 0xff
#define WL1271_AP_GLOBAL_HLID 0 #define WL1271_AP_GLOBAL_HLID 0
#define WL1271_AP_BROADCAST_HLID 1 #define WL1271_AP_BROADCAST_HLID 1
#define WL1271_AP_STA_HLID_START 2 #define WL1271_AP_STA_HLID_START 2
...@@ -390,6 +392,8 @@ struct wl1271 { ...@@ -390,6 +392,8 @@ struct wl1271 {
u8 ssid[IEEE80211_MAX_SSID_LEN + 1]; u8 ssid[IEEE80211_MAX_SSID_LEN + 1];
u8 ssid_len; u8 ssid_len;
int channel; int channel;
u8 role_id;
u8 sta_hlid;
struct wl1271_acx_mem_map *target_mem_map; struct wl1271_acx_mem_map *target_mem_map;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment