qcacmn: Setup max BA value for tids for mesh peers during peer add

Setup max BA value for tids for mesh peers during peer add

Change-Id: Ia18f5d65db819d87b81c217e5e11fba3316b8d16
CRs-Fixed: 3536290
Esse commit está contido em:
Himanshu Batra
2023-07-21 11:39:00 +05:30
commit de Rahul Choudhary
commit c290e36c21
3 arquivos alterados com 50 adições e 8 exclusões

Ver arquivo

@@ -1152,6 +1152,10 @@ static void dp_peer_rx_tids_init(struct dp_peer *peer)
void dp_peer_rx_tid_setup(struct dp_peer *peer)
{
struct dp_soc *soc = peer->vdev->pdev->soc;
struct dp_txrx_peer *txrx_peer = dp_get_txrx_peer(peer);
struct dp_vdev *vdev = peer->vdev;
dp_peer_rx_tids_init(peer);
/* Setup default (non-qos) rx tid queue */
@@ -1159,9 +1163,19 @@ void dp_peer_rx_tid_setup(struct dp_peer *peer)
/* Setup rx tid queue for TID 0.
* Other queues will be setup on receiving first packet, which will cause
* NULL REO queue error
* NULL REO queue error. For Mesh peer, if on one of the mesh AP the
* mesh peer is not deleted, the new addition of mesh peer on other mesh AP
* doesn't do BA negotiation leading to mismatch in BA windows.
* To avoid this send max BA window during init.
*/
dp_rx_tid_setup_wifi3(peer, 0, 1, 0);
if (qdf_unlikely(vdev->mesh_vdev) ||
qdf_unlikely(txrx_peer->nawds_enabled))
dp_rx_tid_setup_wifi3(
peer, 0,
hal_get_rx_max_ba_window(soc->hal_soc, 0),
0);
else
dp_rx_tid_setup_wifi3(peer, 0, 1, 0);
/*
* Setup the rest of TID's to handle LFR