qcacmn: Data path changes for Dynamic Mode Change FR. Changes include-

1. Move all LMAC rings to SOC from pDEV
	2. Dynamically obtain lmac->pdev mapping while handling LMAC interrupts

Change-Id: Ib017d49243405b62fc34099c01a2b898b25341d0
This commit is contained in:
Amit Shukla
2019-10-24 14:03:39 -07:00
committed by nshrivas
parent 3033883308
commit 1edfe5ae7c
16 changed files with 758 additions and 433 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -4750,19 +4750,19 @@ void dp_print_mon_ring_stat_from_hal(struct dp_pdev *pdev, uint8_t mac_id)
{
if (pdev->soc->wlan_cfg_ctx->rxdma1_enable) {
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rxdma_mon_buf_ring[mac_id],
RXDMA_MONITOR_BUF);
&pdev->soc->rxdma_mon_buf_ring[mac_id],
RXDMA_MONITOR_BUF);
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rxdma_mon_dst_ring[mac_id],
RXDMA_MONITOR_DST);
&pdev->soc->rxdma_mon_dst_ring[mac_id],
RXDMA_MONITOR_DST);
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rxdma_mon_desc_ring[mac_id],
RXDMA_MONITOR_DESC);
&pdev->soc->rxdma_mon_desc_ring[mac_id],
RXDMA_MONITOR_DESC);
}
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rxdma_mon_status_ring[mac_id],
RXDMA_MONITOR_STATUS);
&pdev->soc->rxdma_mon_status_ring[mac_id],
RXDMA_MONITOR_STATUS);
}
void
@@ -4770,6 +4770,7 @@ dp_print_ring_stats(struct dp_pdev *pdev)
{
uint32_t i;
int mac_id;
int lmac_id;
if (hif_pm_runtime_get_sync(pdev->soc->hif_handle))
return;
@@ -4812,9 +4813,10 @@ dp_print_ring_stats(struct dp_pdev *pdev)
&pdev->soc->tx_comp_ring[i],
WBM2SW_RELEASE);
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc, 0, pdev->pdev_id);
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rx_refill_buf_ring,
RXDMA_BUF);
&pdev->soc->rx_refill_buf_ring[lmac_id],
RXDMA_BUF);
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rx_refill_buf_ring2,
@@ -4825,14 +4827,22 @@ dp_print_ring_stats(struct dp_pdev *pdev)
&pdev->rx_mac_buf_ring[i],
RXDMA_BUF);
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++)
dp_print_mon_ring_stat_from_hal(pdev, mac_id);
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
mac_id, pdev->pdev_id);
dp_print_mon_ring_stat_from_hal(pdev, lmac_id);
}
for (i = 0; i < NUM_RXDMA_RINGS_PER_PDEV; i++) {
lmac_id = dp_get_lmac_id_for_pdev_id(pdev->soc,
i, pdev->pdev_id);
for (i = 0; i < NUM_RXDMA_RINGS_PER_PDEV; i++)
dp_print_ring_stat_from_hal(pdev->soc,
&pdev->rxdma_err_dst_ring[i],
&pdev->soc->rxdma_err_dst_ring
[lmac_id],
RXDMA_DST);
}
hif_pm_runtime_put(pdev->soc->hif_handle);
}