Kaynağa Gözat

qcacmn: Enable monitor mode flag for special vap

This change is to enable monitor mode flag is special vap is up.

Change-Id: Id7f169406e25f8f121f5e32074ac3c8049870e01
CRs-Fixed: 3326413
Nidhi Jain 2 yıl önce
ebeveyn
işleme
d340e5bc02
1 değiştirilmiş dosya ile 10 ekleme ve 5 silme
  1. 10 5
      umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c

+ 10 - 5
umac/cfr/dispatcher/src/wlan_cfr_ucfg_api.c

@@ -1176,7 +1176,8 @@ QDF_STATUS ucfg_cfr_rcc_dump_lut(struct wlan_objmgr_vdev *vdev)
 }
 
 static void cfr_set_filter(struct wlan_objmgr_pdev *pdev, bool enable,
-			   struct cdp_monitor_filter *filter_val)
+			   struct cdp_monitor_filter *filter_val,
+			   bool cfr_enable_monitor_mode)
 {
 	struct wlan_objmgr_psoc *psoc = wlan_pdev_get_psoc(pdev);
 
@@ -1184,8 +1185,8 @@ static void cfr_set_filter(struct wlan_objmgr_pdev *pdev, bool enable,
 
 	cdp_cfr_filter(wlan_psoc_get_dp_handle(psoc),
 		       wlan_objmgr_pdev_get_pdev_id(pdev),
-		       enable,
-		       filter_val);
+		       enable, filter_val,
+		       cfr_enable_monitor_mode);
 }
 
 #ifdef WLAN_ENH_CFR_ENABLE
@@ -1210,6 +1211,7 @@ QDF_STATUS ucfg_cfr_committed_rcc_config(struct wlan_objmgr_vdev *vdev)
 	struct wlan_objmgr_psoc *psoc = NULL;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	struct cdp_monitor_filter filter_val = {0};
+	bool cfr_enable_monitor_mode = false;
 
 	status = dev_sanity_check(vdev, &pdev, &pcfr);
 	if (status != QDF_STATUS_SUCCESS)
@@ -1225,6 +1227,9 @@ QDF_STATUS ucfg_cfr_committed_rcc_config(struct wlan_objmgr_vdev *vdev)
 
 	pcfr->rcc_param.vdev_id = wlan_vdev_get_id(vdev);
 
+	if (wlan_vdev_mlme_is_special_vdev(vdev))
+		cfr_enable_monitor_mode = true;
+
 	/*
 	 * If capture mode is valid, then Host:
 	 * Subscribes for PPDU status TLVs in monitor status ring.
@@ -1298,12 +1303,12 @@ QDF_STATUS ucfg_cfr_committed_rcc_config(struct wlan_objmgr_vdev *vdev)
 		if (!cdp_get_cfr_rcc(wlan_psoc_get_dp_handle(psoc),
 				    wlan_objmgr_pdev_get_pdev_id(pdev)))
 			tgt_cfr_start_lut_age_timer(pdev);
-		cfr_set_filter(pdev, 1, &filter_val);
+		cfr_set_filter(pdev, 1, &filter_val, cfr_enable_monitor_mode);
 	} else {
 		if (cdp_get_cfr_rcc(wlan_psoc_get_dp_handle(psoc),
 				    wlan_objmgr_pdev_get_pdev_id(pdev)))
 			tgt_cfr_stop_lut_age_timer(pdev);
-		cfr_set_filter(pdev, 0, &filter_val);
+		cfr_set_filter(pdev, 0, &filter_val, cfr_enable_monitor_mode);
 	}
 
 	/* Trigger wmi to start the TLV processing. */