Skip to content

Commit 4b86b46

Browse files
Maxim Altshulgregkh
authored andcommitted
wlcore: Pass win_size taken from ieee80211_sta to FW
commit 42c7372a111630dab200c2f959424f5ec3bf79a4 upstream. When starting a new BA session, we must pass the win_size to the FW. To do this we take max_rx_aggregation_subframes (BA RX win size) which is stored in ieee80211_sta structure (e.g per link and not per HW) We will use the value stored per link when passing the win_size to firmware through the ACX_BA_SESSION_RX_SETUP command. Signed-off-by: Maxim Altshul <maxim.altshul@ti.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Signed-off-by: Amit Pundir <amit.pundir@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 8ef67e0 commit 4b86b46

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

drivers/net/wireless/ti/wlcore/acx.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1419,7 +1419,8 @@ int wl12xx_acx_set_ba_initiator_policy(struct wl1271 *wl,
14191419

14201420
/* setup BA session receiver setting in the FW. */
14211421
int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
1422-
u16 ssn, bool enable, u8 peer_hlid)
1422+
u16 ssn, bool enable, u8 peer_hlid,
1423+
u8 win_size)
14231424
{
14241425
struct wl1271_acx_ba_receiver_setup *acx;
14251426
int ret;
@@ -1435,7 +1436,7 @@ int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
14351436
acx->hlid = peer_hlid;
14361437
acx->tid = tid_index;
14371438
acx->enable = enable;
1438-
acx->win_size = wl->conf.ht.rx_ba_win_size;
1439+
acx->win_size = win_size;
14391440
acx->ssn = ssn;
14401441

14411442
ret = wlcore_cmd_configure_failsafe(wl, ACX_BA_SESSION_RX_SETUP, acx,

drivers/net/wireless/ti/wlcore/acx.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1112,7 +1112,8 @@ int wl1271_acx_set_ht_information(struct wl1271 *wl,
11121112
int wl12xx_acx_set_ba_initiator_policy(struct wl1271 *wl,
11131113
struct wl12xx_vif *wlvif);
11141114
int wl12xx_acx_set_ba_receiver_session(struct wl1271 *wl, u8 tid_index,
1115-
u16 ssn, bool enable, u8 peer_hlid);
1115+
u16 ssn, bool enable, u8 peer_hlid,
1116+
u8 win_size);
11161117
int wl12xx_acx_tsf_info(struct wl1271 *wl, struct wl12xx_vif *wlvif,
11171118
u64 *mactime);
11181119
int wl1271_acx_ps_rx_streaming(struct wl1271 *wl, struct wl12xx_vif *wlvif,

drivers/net/wireless/ti/wlcore/main.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5328,7 +5328,9 @@ static int wl1271_op_ampdu_action(struct ieee80211_hw *hw,
53285328
}
53295329

53305330
ret = wl12xx_acx_set_ba_receiver_session(wl, tid, *ssn, true,
5331-
hlid);
5331+
hlid,
5332+
params->buf_size);
5333+
53325334
if (!ret) {
53335335
*ba_bitmap |= BIT(tid);
53345336
wl->ba_rx_session_count++;
@@ -5349,7 +5351,7 @@ static int wl1271_op_ampdu_action(struct ieee80211_hw *hw,
53495351
}
53505352

53515353
ret = wl12xx_acx_set_ba_receiver_session(wl, tid, 0, false,
5352-
hlid);
5354+
hlid, 0);
53535355
if (!ret) {
53545356
*ba_bitmap &= ~BIT(tid);
53555357
wl->ba_rx_session_count--;

0 commit comments

Comments
 (0)