Quellcode durchsuchen

qcacmn: Add dp ini param for sawf stats

Add dp ini-param to configure sawf_stats.

CRs-Fixed: 3300948
Change-Id: Ifeb6935e2309be1f974c4da30b33a5caca308569
Vivek vor 2 Jahren
Ursprung
Commit
3b1f7ced17
6 geänderte Dateien mit 117 neuen und 2 gelöschten Zeilen
  1. 5 0
      dp/inc/cdp_txrx_cmn_struct.h
  2. 12 0
      dp/inc/cdp_txrx_sawf.h
  3. 5 1
      dp/wifi3.0/dp_main.c
  4. 20 1
      wlan_cfg/cfg_dp.h
  5. 53 0
      wlan_cfg/wlan_cfg.c
  6. 22 0
      wlan_cfg/wlan_cfg.h

+ 5 - 0
dp/inc/cdp_txrx_cmn_struct.h

@@ -1288,6 +1288,8 @@ enum cdp_pdev_param_type {
  * @cdp_ipa_enabled : set ipa mode
  * @cdp_psoc_param_vdev_stats_hw_offload: Configure HW vdev stats offload
  * @cdp_pdev_param_undecoded_metadata_enable: Undecoded metadata capture enable
+ * @cdp_sawf_enabled: SAWF enable/dsiable
+ * @cdp_sawf_stats: SAWF stats config
  * @cdp_vdev_param_traffic_end_ind: Traffic end indication enable/disable
  * @cdp_skel_enable : Enable/Disable skeleton code for Umac reset debug
  */
@@ -1375,6 +1377,7 @@ typedef union cdp_config_param_t {
 	bool cdp_psoc_param_vdev_stats_hw_offload;
 	bool cdp_pdev_param_undecoded_metadata_enable;
 	bool cdp_sawf_enabled;
+	uint8_t cdp_sawf_stats;
 	bool cdp_drop_3addr_mcast;
 	bool cdp_vdev_param_traffic_end_ind;
 	bool cdp_umac_rst_skel;
@@ -1516,6 +1519,7 @@ enum cdp_vdev_param_type {
  * @CDP_CFG_VDEV_STATS_HW_OFFLOAD: HW Vdev stats config
  * @CDP_UMAC_RST_SKEL_ENABLE: Enable Umac reset skeleton code for debug
  * @CDP_CDP_PPEDS_ENABLE: PPEDS is enabled or not
+ * @CDP_SAWF_STATS : set SAWF stats config
  */
 enum cdp_psoc_param_type {
 	CDP_ENABLE_RATE_STATS,
@@ -1527,6 +1531,7 @@ enum cdp_psoc_param_type {
 	CDP_SAWF_ENABLE,
 	CDP_UMAC_RST_SKEL_ENABLE,
 	CDP_PPEDS_ENABLE,
+	CDP_SAWF_STATS,
 };
 
 #define TXRX_FW_STATS_TXSTATS                     1

+ 12 - 0
dp/inc/cdp_txrx_sawf.h

@@ -313,6 +313,18 @@ cdp_get_drop_stats(ol_txrx_soc_handle soc, void *arg,
 }
 
 #else
+static inline QDF_STATUS
+cdp_sawf_mpdu_stats_req(ol_txrx_soc_handle soc, uint8_t enable)
+{
+	return QDF_STATUS_E_FAILURE;
+}
+
+static inline QDF_STATUS
+cdp_sawf_mpdu_details_stats_req(ol_txrx_soc_handle soc, uint8_t enable)
+{
+	return QDF_STATUS_E_FAILURE;
+}
+
 static inline QDF_STATUS
 cdp_get_peer_sawf_delay_stats(ol_txrx_soc_handle soc, uint32_t svc_id,
 			      uint8_t *mac, void *data)

+ 5 - 1
dp/wifi3.0/dp_main.c

@@ -11004,6 +11004,10 @@ dp_set_psoc_param(struct cdp_soc_t *cdp_soc,
 	case CDP_UMAC_RST_SKEL_ENABLE:
 		dp_umac_rst_skel_enable_update(soc, val.cdp_umac_rst_skel);
 		break;
+	case CDP_SAWF_STATS:
+		wlan_cfg_set_sawf_stats_config(wlan_cfg_ctx,
+					       val.cdp_sawf_stats);
+		break;
 	default:
 		break;
 	}
@@ -14047,7 +14051,7 @@ static struct cdp_sawf_ops dp_ops_sawf = {
 	.sawf_def_queues_unmap_req = dp_sawf_def_queues_unmap_req,
 	.sawf_def_queues_get_map_report =
 		dp_sawf_def_queues_get_map_report,
-#ifdef CONFIG_SAWF
+#ifdef CONFIG_SAWF_STATS
 	.txrx_get_peer_sawf_delay_stats = dp_sawf_get_peer_delay_stats,
 	.txrx_get_peer_sawf_tx_stats = dp_sawf_get_peer_tx_stats,
 	.sawf_mpdu_stats_req = dp_sawf_mpdu_stats_req,

+ 20 - 1
wlan_cfg/cfg_dp.h

@@ -472,6 +472,11 @@
 #define WLAN_CFG_DP_NAPI_SCALE_FACTOR_MIN 0
 #define WLAN_CFG_DP_NAPI_SCALE_FACTOR_MAX 4
 
+#ifdef CONFIG_SAWF_STATS
+#define WLAN_CFG_SAWF_STATS 0x0
+#define WLAN_CFG_SAWF_STATS_MIN 0x0
+#define WLAN_CFG_SAWF_STATS_MAX 0x7
+#endif
 /*
  * <ini>
  * "dp_tx_capt_max_mem_mb"- maximum memory used by Tx capture
@@ -691,6 +696,19 @@
 		WLAN_CFG_TIME_CONTROL_BP_MAX,\
 		WLAN_CFG_TIME_CONTROL_BP,\
 		CFG_VALUE_OR_DEFAULT, "DP time control back pressure")
+
+#ifdef CONFIG_SAWF_STATS
+#define CFG_DP_SAWF_STATS \
+		CFG_INI_UINT("dp_sawf_stats", \
+		WLAN_CFG_SAWF_STATS_MIN,\
+		WLAN_CFG_SAWF_STATS_MAX,\
+		WLAN_CFG_SAWF_STATS,\
+		CFG_VALUE_OR_DEFAULT, "DP sawf stats config")
+#define CFG_DP_SAWF_STATS_CONFIG CFG(CFG_DP_SAWF_STATS)
+#else
+#define CFG_DP_SAWF_STATS_CONFIG
+#endif
+
 /*
  * <ini>
  * dp_rx_pending_hl_threshold - High threshold of frame number to start
@@ -1830,5 +1848,6 @@
 		CFG_DP_VDEV_STATS_HW_OFFLOAD \
 		CFG(CFG_DP_TX_CAPT_MAX_MEM_MB) \
 		CFG(CFG_DP_NAPI_SCALE_FACTOR) \
-		CFG(CFG_DP_HOST_AST_DB_ENABLE)
+		CFG(CFG_DP_HOST_AST_DB_ENABLE) \
+		CFG_DP_SAWF_STATS_CONFIG
 #endif /* _CFG_DP_H_ */

+ 53 - 0
wlan_cfg/wlan_cfg.c

@@ -2629,6 +2629,58 @@ wlan_cfg_soc_update_tgt_params(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
 						  CFG_DP_REO_RINGS_MAP);
 }
 
+#ifdef CONFIG_SAWF_STATS
+/**
+ * wlan_soc_sawf_stats_cfg_attach() - Update sawf stats config in dp soc
+ *  cfg context
+ * @psoc - Object manager psoc
+ * @wlan_cfg_ctx - dp soc cfg ctx
+ *
+ * Return: None
+ */
+static void
+wlan_soc_sawf_stats_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
+			       struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
+{
+	wlan_cfg_ctx->sawf_stats = cfg_get(psoc, CFG_DP_SAWF_STATS);
+}
+
+uint8_t wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg)
+{
+	return cfg->sawf_stats;
+}
+
+void wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg,
+				    uint8_t val)
+{
+	cfg->sawf_stats = val;
+}
+#else
+/**
+ * wlan_soc_sawf_stats_cfg_attach() - Update sawf stats config in dp soc
+ *  cfg context
+ * @psoc - Object manager psoc
+ * @wlan_cfg_ctx - dp soc cfg ctx
+ *
+ * Return: None
+ */
+static void
+wlan_soc_sawf_stats_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
+			       struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
+{
+}
+
+uint8_t wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg)
+{
+	return 0;
+}
+
+void wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg,
+				    uint8_t val)
+{
+}
+#endif /* CONFIG_SAWF_STATS */
+
 /**
  * wlan_cfg_soc_attach() - Allocate and prepare SoC configuration
  * @psoc - Object manager psoc
@@ -2840,6 +2892,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
 
 	wlan_cfg_ctx->napi_scale_factor = cfg_get(psoc,
 						  CFG_DP_NAPI_SCALE_FACTOR);
+	wlan_soc_sawf_stats_cfg_attach(psoc, wlan_cfg_ctx);
 	return wlan_cfg_ctx;
 }
 

+ 22 - 0
wlan_cfg/wlan_cfg.h

@@ -438,6 +438,9 @@ struct wlan_cfg_dp_soc_ctxt {
 #endif
 #ifdef CONFIG_SAWF
 	bool sawf_enabled;
+#endif
+#ifdef CONFIG_SAWF_STATS
+	uint8_t sawf_stats;
 #endif
 	uint8_t mpdu_retry_threshold_1;
 	uint8_t mpdu_retry_threshold_2;
@@ -2122,6 +2125,25 @@ wlan_cfg_set_sawf_config(struct wlan_cfg_dp_soc_ctxt *cfg, bool value);
 bool
 wlan_cfg_get_sawf_config(struct wlan_cfg_dp_soc_ctxt *cfg);
 
+/**
+ * wlan_cfg_set_sawf_stats_config() - Set SAWF stats config
+ * @cfg: config context
+ * @value: value to be set
+ *
+ * Return: void
+ */
+void
+wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg, uint8_t value);
+
+/**
+ * wlan_cfg_get_sawf_stats_config() - Get SAWF stats config
+ * @cfg: config context
+ *
+ * Return: value for sawf_stats_config
+ */
+uint8_t
+wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg);
+
 #if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
 /**
  * wlan_cfg_mlo_rx_ring_map_get() - get rx ring map