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:

committed by
Madan Koyyalamudi

parent
87fdda9166
commit
d20a5a657c
@@ -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:
|
||||||
|
@@ -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,
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user