qcacmn: REO queue ref enhancement for Waikiki

In WIN BE chipsets, replace the REO tid
queue programming in FW via WMI with writing to a
Host managed table shared by HW and SW. REO HW will
pick the tid queue address from the table indexed by
peer id and tid number.

Change-Id: I8107ca5116425538329b11ae3519f02b32573bac
This commit is contained in:
Sumedh Baikady
2021-11-01 16:39:34 -07:00
committed by Madan Koyyalamudi
parent e54c2ef953
commit e4d9b0c2d7
17 changed files with 623 additions and 112 deletions

View File

@@ -7379,6 +7379,7 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
struct dp_peer *peer =
dp_peer_find_hash_find(soc, peer_mac, 0, vdev_id,
DP_MOD_ID_CDP);
struct dp_peer *mld_peer = NULL;
enum wlan_op_mode vdev_opmode;
uint8_t lmac_peer_id_msb = 0;
@@ -7441,8 +7442,23 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
qdf_assert_always(0);
}
if (vdev_opmode != wlan_op_mode_monitor)
dp_peer_rx_init(pdev, peer);
if (vdev_opmode != wlan_op_mode_monitor) {
/* In case of MLD peer, switch peer to mld peer and
* do peer_rx_init.
*/
if (hal_reo_shared_qaddr_is_enable(soc->hal_soc) &&
IS_MLO_DP_LINK_PEER(peer)) {
if (setup_info && setup_info->is_first_link) {
mld_peer = DP_GET_MLD_PEER_FROM_PEER(peer);
if (mld_peer)
dp_peer_rx_init(pdev, mld_peer);
else
dp_peer_err("MLD peer null. Primary link peer:%pK", peer);
}
} else {
dp_peer_rx_init(pdev, peer);
}
}
dp_peer_ppdu_delayed_ba_init(peer);