qcacmn: Changes to send REO command on appropriate SOC

Added changes in below API to avoid sending REO command
on non-primary SOC for MLO peers.
1. dp_get_host_peer_stats
2. dp_set_pn_check_wifi3
3. dp_peer_ctrl_frames_stats_get

Change-Id: Ia2631b2ab80d80028743b0d6255158bd6bd76e88
CRs-Fixed: 3384398
This commit is contained in:
Chaithanya Garrepalli
2023-01-19 16:19:30 +05:30
committed by Madan Koyyalamudi
parent eb0f6c63bd
commit b17c727a41
3 changed files with 13 additions and 9 deletions

View File

@@ -10273,7 +10273,8 @@ dp_get_host_peer_stats(struct cdp_soc_t *soc, uint8_t *mac_addr)
dp_get_peer_stats(peer, peer_stats);
dp_print_peer_stats(peer, peer_stats);
dp_peer_rxtid_stats(peer, dp_rx_tid_stats_cb, NULL);
dp_peer_rxtid_stats(dp_get_tgt_peer_from_peer(peer),
dp_rx_tid_stats_cb, NULL);
qdf_mem_free(peer_stats);
dp_peer_unref_delete(peer, DP_MOD_ID_CDP);

View File

@@ -4963,7 +4963,7 @@ end:
*/
QDF_STATUS
dp_set_pn_check_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
dp_set_pn_check_wifi3(struct cdp_soc_t *soc_t, uint8_t vdev_id,
uint8_t *peer_mac, enum cdp_sec_type sec_type,
uint32_t *rx_pn)
{
@@ -4973,8 +4973,9 @@ dp_set_pn_check_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
struct hal_reo_cmd_params params;
struct dp_peer *peer = NULL;
struct dp_vdev *vdev = NULL;
struct dp_soc *soc = NULL;
peer = dp_peer_find_hash_find((struct dp_soc *)soc,
peer = dp_peer_get_tgt_peer_hash_find((struct dp_soc *)soc_t,
peer_mac, 0, vdev_id,
DP_MOD_ID_CDP);
@@ -4992,6 +4993,7 @@ dp_set_pn_check_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
}
pdev = vdev->pdev;
soc = pdev->soc;
qdf_mem_zero(&params, sizeof(params));
params.std.need_status = 1;
@@ -5051,14 +5053,14 @@ dp_set_pn_check_wifi3(struct cdp_soc_t *soc, uint8_t vdev_id,
params.u.upd_queue_params.pn_127_96 = rx_pn[3];
}
rx_tid->pn_size = pn_size;
if (dp_reo_send_cmd(cdp_soc_t_to_dp_soc(soc),
if (dp_reo_send_cmd(soc,
CMD_UPDATE_RX_REO_QUEUE,
&params, dp_rx_tid_update_cb,
rx_tid)) {
dp_err_log("fail to send CMD_UPDATE_RX_REO_QUEUE"
"tid %d desc %pK", rx_tid->tid,
(void *)(rx_tid->hw_qdesc_paddr));
DP_STATS_INC(cdp_soc_t_to_dp_soc(soc),
DP_STATS_INC(soc,
rx.err.reo_cmd_send_fail, 1);
}
} else {

View File

@@ -7401,10 +7401,11 @@ dp_peer_ctrl_frames_stats_get(struct dp_soc *soc,
void *arg)
{
uint32_t waitcnt;
struct dp_pdev *pdev = peer->vdev->pdev;
struct dp_peer *tgt_peer = dp_get_tgt_peer_from_peer(peer);
struct dp_pdev *pdev = tgt_peer->vdev->pdev;
waitcnt = 0;
dp_peer_rxtid_stats(peer, dp_rx_bar_stats_cb, pdev);
dp_peer_rxtid_stats(tgt_peer, dp_rx_bar_stats_cb, pdev);
while (!(qdf_atomic_read(&pdev->stats_cmd_complete)) &&
waitcnt < 10) {
schedule_timeout_interruptible(