qcacmn: Set per_tid_basize_max_tid so that BA size is configured per TID
Set per_tid_basize_max_tid so that BA size is configured per TID. Accordingly fix dp_check_ba_buffersize to ba_window_size to incoming buffer_size. Assert for any BA window size above 1024. Change-Id: I40cb2aac012c50e253c3ef22d44cf5db3abfb7bb CRs-Fixed: 3182601
This commit is contained in:

committed by
Madan Koyyalamudi

parent
f00cc9f71a
commit
017ad75e08
@@ -15246,6 +15246,7 @@ static void dp_soc_cfg_init(struct dp_soc *soc)
|
|||||||
wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,
|
wlan_cfg_set_reo_dst_ring_size(soc->wlan_cfg_ctx,
|
||||||
REO_DST_RING_SIZE_QCA6290);
|
REO_DST_RING_SIZE_QCA6290);
|
||||||
soc->ast_override_support = 1;
|
soc->ast_override_support = 1;
|
||||||
|
soc->per_tid_basize_max_tid = 8;
|
||||||
|
|
||||||
if (soc->cdp_soc.ol_ops->get_con_mode &&
|
if (soc->cdp_soc.ol_ops->get_con_mode &&
|
||||||
soc->cdp_soc.ol_ops->get_con_mode() ==
|
soc->cdp_soc.ol_ops->get_con_mode() ==
|
||||||
|
@@ -4294,11 +4294,16 @@ static void dp_check_ba_buffersize(struct dp_peer *peer,
|
|||||||
{
|
{
|
||||||
struct dp_rx_tid *rx_tid = NULL;
|
struct dp_rx_tid *rx_tid = NULL;
|
||||||
|
|
||||||
|
dp_info(QDF_MAC_ADDR_FMT" per_tid_basize_max_tid %d tid %d buffersize %d hw_buffer_size %d",
|
||||||
|
peer->mac_addr.raw,
|
||||||
|
peer->vdev->pdev->soc->per_tid_basize_max_tid, tid, buffersize,
|
||||||
|
peer->hw_buffer_size);
|
||||||
|
|
||||||
rx_tid = &peer->rx_tid[tid];
|
rx_tid = &peer->rx_tid[tid];
|
||||||
if (peer->vdev->pdev->soc->per_tid_basize_max_tid &&
|
if (peer->vdev->pdev->soc->per_tid_basize_max_tid &&
|
||||||
tid < peer->vdev->pdev->soc->per_tid_basize_max_tid) {
|
tid < peer->vdev->pdev->soc->per_tid_basize_max_tid) {
|
||||||
rx_tid->ba_win_size = buffersize;
|
rx_tid->ba_win_size = buffersize;
|
||||||
return;
|
goto out;
|
||||||
} else {
|
} else {
|
||||||
if (peer->active_ba_session_cnt == 0) {
|
if (peer->active_ba_session_cnt == 0) {
|
||||||
rx_tid->ba_win_size = buffersize;
|
rx_tid->ba_win_size = buffersize;
|
||||||
@@ -4316,9 +4321,24 @@ static void dp_check_ba_buffersize(struct dp_peer *peer,
|
|||||||
peer->hw_buffer_size = 64;
|
peer->hw_buffer_size = 64;
|
||||||
peer->kill_256_sessions = 1;
|
peer->kill_256_sessions = 1;
|
||||||
}
|
}
|
||||||
|
} else if (buffersize <= 1024) {
|
||||||
|
/**
|
||||||
|
* Above checks are only for HK V2
|
||||||
|
* Set incoming buffer size for others
|
||||||
|
*/
|
||||||
|
rx_tid->ba_win_size = buffersize;
|
||||||
|
} else {
|
||||||
|
dp_err("Invalid buffer size %d", buffersize);
|
||||||
|
qdf_assert_always(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
|
dp_info("rx_tid->ba_win_size %d peer->hw_buffer_size %d peer->kill_256_sessions %d",
|
||||||
|
rx_tid->ba_win_size,
|
||||||
|
peer->hw_buffer_size,
|
||||||
|
peer->kill_256_sessions);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS dp_rx_tid_update_ba_win_size(struct cdp_soc_t *cdp_soc,
|
QDF_STATUS dp_rx_tid_update_ba_win_size(struct cdp_soc_t *cdp_soc,
|
||||||
|
Reference in New Issue
Block a user