qcacmn: York Scan radio monitor mode bringup

Initial changes for York scan radio bringup in monitor mode.
Update monitor filter settings.

Change-Id: Ib9468f11b71d0439d0bd63526f64f454ed6b5b4d
CRs-Fixed: 3421412
This commit is contained in:
Santosh Anbu
2023-03-01 18:26:00 +05:30
committed by Madan Koyyalamudi
parent 87fdda9166
commit d20a5a657c
3 changed files with 17 additions and 4 deletions

View File

@@ -400,12 +400,17 @@ QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
struct dp_srng *mon_buf_ring; struct dp_srng *mon_buf_ring;
uint32_t num_entries; uint32_t num_entries;
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev; struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
uint32_t target_type = hal_get_target_type(soc->hal_soc);
/* If monitor rings are already initialized, return from here */ /* If monitor rings are already initialized, return from here */
if (mon_pdev->pdev_mon_init) if (mon_pdev->pdev_mon_init)
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
if (target_type == TARGET_TYPE_QCN9160) {
dp_alert("Mon SOC:%pK config, skip desc pool alloc", soc);
goto pass;
}
for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) { for (mac_id = 0; mac_id < NUM_RXDMA_RINGS_PER_PDEV; mac_id++) {
mac_for_pdev = dp_get_lmac_id_for_pdev_id(pdev->soc, mac_id, mac_for_pdev = dp_get_lmac_id_for_pdev_id(pdev->soc, mac_id,
pdev->pdev_id); pdev->pdev_id);
@@ -457,8 +462,8 @@ QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
soc->rxdma_mon_dst_ring[mac_for_pdev].hal_srng, soc->rxdma_mon_dst_ring[mac_for_pdev].hal_srng,
RXDMA_MONITOR_DST); RXDMA_MONITOR_DST);
} }
pass:
mon_pdev->pdev_mon_init = 1; mon_pdev->pdev_mon_init = 1;
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
fail0: fail0:

View File

@@ -915,6 +915,7 @@ static QDF_STATUS dp_mon_filter_dest_update(struct dp_pdev *pdev,
struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev; struct dp_mon_pdev *mon_pdev = pdev->monitor_pdev;
enum dp_mon_filter_srng_type srng_type; enum dp_mon_filter_srng_type srng_type;
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
uint32_t target_type = hal_get_target_type(soc->hal_soc);
srng_type = ((soc->wlan_cfg_ctx->rxdma1_enable) ? srng_type = ((soc->wlan_cfg_ctx->rxdma1_enable) ?
DP_MON_FILTER_SRNG_TYPE_RXDMA_MON_BUF : DP_MON_FILTER_SRNG_TYPE_RXDMA_MON_BUF :
@@ -932,7 +933,8 @@ static QDF_STATUS dp_mon_filter_dest_update(struct dp_pdev *pdev,
* For WIN case the monitor buffer ring is used and it does need * For WIN case the monitor buffer ring is used and it does need
* reset when monitor mode gets enabled/disabled. * reset when monitor mode gets enabled/disabled.
*/ */
if (soc->wlan_cfg_ctx->rxdma1_enable) { if (soc->wlan_cfg_ctx->rxdma1_enable ||
target_type == TARGET_TYPE_QCN9160) {
if (mon_pdev->monitor_configured || *pmon_mode_set) { if (mon_pdev->monitor_configured || *pmon_mode_set) {
status = dp_mon_ht2_rx_ring_cfg(soc, pdev, status = dp_mon_ht2_rx_ring_cfg(soc, pdev,
srng_type, srng_type,

View File

@@ -272,6 +272,7 @@ dp_mon_ht2_rx_ring_cfg(struct dp_soc *soc,
int mac_id; int mac_id;
int max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx); int max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx);
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
uint32_t target_type = hal_get_target_type(soc->hal_soc);
/* /*
* Overwrite the max_mac_rings for the status rings. * Overwrite the max_mac_rings for the status rings.
@@ -295,7 +296,12 @@ dp_mon_ht2_rx_ring_cfg(struct dp_soc *soc,
switch (srng_type) { switch (srng_type) {
case DP_MON_FILTER_SRNG_TYPE_RXDMA_BUF: case DP_MON_FILTER_SRNG_TYPE_RXDMA_BUF:
hal_ring_hdl = pdev->rx_mac_buf_ring[lmac_id].hal_srng; if (target_type == TARGET_TYPE_QCN9160)
hal_ring_hdl =
soc->rx_refill_buf_ring[lmac_id].hal_srng;
else
hal_ring_hdl =
pdev->rx_mac_buf_ring[lmac_id].hal_srng;
hal_ring_type = RXDMA_BUF; hal_ring_type = RXDMA_BUF;
ring_buf_size = RX_DATA_BUFFER_SIZE; ring_buf_size = RX_DATA_BUFFER_SIZE;
break; break;