Ver Fonte

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
Santosh Anbu há 2 anos atrás
pai
commit
d20a5a657c

+ 7 - 2
dp/wifi3.0/monitor/1.0/dp_mon_1.0.c

@@ -400,12 +400,17 @@ QDF_STATUS dp_vdev_set_monitor_mode_rings(struct dp_pdev *pdev,
 	struct dp_srng *mon_buf_ring;
 	uint32_t num_entries;
 	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 (mon_pdev->pdev_mon_init)
 		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++) {
 		mac_for_pdev = dp_get_lmac_id_for_pdev_id(pdev->soc, mac_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,
 			       RXDMA_MONITOR_DST);
 	}
+pass:
 	mon_pdev->pdev_mon_init = 1;
-
 	return QDF_STATUS_SUCCESS;
 
 fail0:

+ 3 - 1
dp/wifi3.0/monitor/1.0/dp_mon_filter_1.0.c

@@ -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;
 	enum dp_mon_filter_srng_type srng_type;
 	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) ?
 			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
 		 * 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) {
 				status = dp_mon_ht2_rx_ring_cfg(soc, pdev,
 								srng_type,

+ 7 - 1
dp/wifi3.0/monitor/dp_mon_filter.c

@@ -272,6 +272,7 @@ dp_mon_ht2_rx_ring_cfg(struct dp_soc *soc,
 	int mac_id;
 	int max_mac_rings = wlan_cfg_get_num_mac_rings(pdev->wlan_cfg_ctx);
 	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.
@@ -295,7 +296,12 @@ dp_mon_ht2_rx_ring_cfg(struct dp_soc *soc,
 
 		switch (srng_type) {
 		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;
 			ring_buf_size = RX_DATA_BUFFER_SIZE;
 			break;