Forráskód Böngészése

qcacmn: Enable/Disable AM copy mode

AM copy mode
Have a configuration to send first 100 bytes of PPDU, whenever
requested by upper layer.

Add required variable and handle code to enable/disable AM copy mode.

Change-Id: I1ebdcd0d1777e276af8c16334dae1f1a0760d5a8
CRs-Fixed: 2127108
Soumya Bhat 7 éve
szülő
commit
89647efbf6
3 módosított fájl, 25 hozzáadás és 7 törlés
  1. 2 1
      dp/wifi3.0/dp_htt.c
  2. 22 6
      dp/wifi3.0/dp_main.c
  3. 1 0
      dp/wifi3.0/dp_types.h

+ 2 - 1
dp/wifi3.0/dp_htt.c

@@ -2002,7 +2002,8 @@ static void dp_txrx_ppdu_stats_handler(struct dp_soc *soc,
 	int status;
 	int i;
 
-	if (!pdev->enhanced_stats_en && !pdev->tx_sniffer_enable)
+	if (!pdev->enhanced_stats_en && !pdev->tx_sniffer_enable &&
+			!pdev->am_copy_mode)
 		return;
 
 	if (!pdev->tx_ppdu_info.buf) {

+ 22 - 6
dp/wifi3.0/dp_main.c

@@ -74,6 +74,8 @@ bool rx_hash = 1;
 qdf_declare_param(rx_hash, bool);
 
 #define STR_MAXLEN	64
+
+#define DP_PPDU_STATS_CFG_ALL 0xffff
 /**
  * default_dscp_tid_map - Default DSCP-TID mapping
  *
@@ -4644,16 +4646,30 @@ dp_config_tx_capture(struct cdp_pdev *pdev_handle, int val)
 {
 	struct dp_pdev *pdev = (struct dp_pdev *)pdev_handle;
 
-	if (val) {
-		pdev->tx_sniffer_enable = 1;
-		dp_h2t_cfg_stats_msg_send(pdev, 0xffff);
-	} else {
+	switch (val) {
+	case 0:
 		pdev->tx_sniffer_enable = 0;
+		pdev->am_copy_mode = 0;
 
 		if (!pdev->enhanced_stats_en)
 			dp_h2t_cfg_stats_msg_send(pdev, 0);
-	}
+		break;
 
+	case 1:
+		pdev->tx_sniffer_enable = 1;
+		pdev->am_copy_mode = 0;
+		dp_h2t_cfg_stats_msg_send(pdev, DP_PPDU_STATS_CFG_ALL);
+		break;
+	case 2:
+		pdev->am_copy_mode = 1;
+		pdev->tx_sniffer_enable = 0;
+		dp_h2t_cfg_stats_msg_send(pdev, DP_PPDU_STATS_CFG_ALL);
+		break;
+	default:
+		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
+			"Invalid value\n");
+		break;
+	}
 }
 
 /*
@@ -4685,7 +4701,7 @@ dp_disable_enhanced_stats(struct cdp_pdev *pdev_handle)
 
 	pdev->enhanced_stats_en = 0;
 
-	if (!pdev->tx_sniffer_enable)
+	if (!pdev->tx_sniffer_enable && !pdev->am_copy_mode)
 		dp_h2t_cfg_stats_msg_send(pdev, 0);
 }
 

+ 1 - 0
dp/wifi3.0/dp_types.h

@@ -1050,6 +1050,7 @@ struct dp_pdev {
 	} tx_ppdu_info;
 
 	bool tx_sniffer_enable;
+	bool am_copy_mode;
 };
 
 struct dp_peer;