Răsfoiți Sursa

qcacmn: Add cdp params to configure soc/pdev cfg items

Add soc/pdev level cdp config params, so that these can be used
to get and set config context items.

Change-Id: I6cfeafb4333bf2f267121dce37b64f22cb86e98c
CRs-Fixed: 3502588
Karthik Kantamneni 2 ani în urmă
părinte
comite
7990bb266d
2 a modificat fișierele cu 119 adăugiri și 3 ștergeri
  1. 39 0
      dp/inc/cdp_txrx_cmn_struct.h
  2. 80 3
      dp/wifi3.0/dp_main.c

+ 39 - 0
dp/inc/cdp_txrx_cmn_struct.h

@@ -1334,6 +1334,7 @@ enum cdp_peer_param_type {
  * @CDP_CONFIG_ENHANCED_STATS_ENABLE:
  * @CDP_ISOLATION: set isolation flag
  * @CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE: Undecoded metadata capture
+ * @CDP_CONFIG_RXDMA_BUF_RING_SIZE: RXDMA buffer ring size configure
  */
 enum cdp_pdev_param_type {
 	CDP_CONFIG_DEBUG_SNIFFER,
@@ -1369,6 +1370,7 @@ enum cdp_pdev_param_type {
 	CDP_CONFIG_ENHANCED_STATS_ENABLE,
 	CDP_ISOLATION,
 	CDP_CONFIG_UNDECODED_METADATA_CAPTURE_ENABLE,
+	CDP_CONFIG_RXDMA_BUF_RING_SIZE,
 };
 
 /**
@@ -1449,6 +1451,15 @@ enum cdp_pdev_param_type {
  * @cdp_vdev_tx_to_fw: Set to_fw bit for all tx packets for the vdev
  * @cdp_peer_metadata_ver: DP rx peer metadata version configuration
  * @hal_soc_hdl: DP HAL soc handle
+ * @cdp_tx_desc_num: DP TX desc number config
+ * @cdp_tx_ext_desc_num: number of TX EXT desc config
+ * @cdp_tx_ring_size: TX ring size config
+ * @cdp_tx_comp_ring_size: TX completion ring size config
+ * @cdp_rx_sw_desc_num: RX SW descriptor number config
+ * @cdp_reo_dst_ring_size: REO destination ring size config
+ * @cdp_rxdma_refill_ring_size: RXDMA refill ring size config
+ * @cdp_rx_refill_buf_pool_size: RX refill ring size config
+ * @cdp_rxdma_buf_ring_size: RXDMA buf ring size config
  */
 typedef union cdp_config_param_t {
 	/* peer params */
@@ -1541,6 +1552,16 @@ typedef union cdp_config_param_t {
 	bool cdp_vdev_tx_to_fw;
 	uint8_t cdp_peer_metadata_ver;
 	void *hal_soc_hdl;
+
+	int cdp_tx_desc_num;
+	int cdp_tx_ext_desc_num;
+	int cdp_tx_ring_size;
+	int cdp_tx_comp_ring_size;
+	int cdp_rx_sw_desc_num;
+	int cdp_reo_dst_ring_size;
+	int cdp_rxdma_refill_ring_size;
+	int cdp_rx_refill_buf_pool_size;
+	int cdp_rxdma_buf_ring_size;
 } cdp_config_param_type;
 
 /**
@@ -1698,6 +1719,14 @@ enum cdp_vdev_param_type {
  * @CDP_UMAC_RESET_STATS: UMAC reset stats
  * @CDP_CFG_RX_PEER_METADATA_VER: RX peer metadata configuration
  * @CDP_TXRX_HAL_SOC_HDL: HAL soc handle
+ * @CDP_CFG_TX_DESC_NUM: number of TX descriptors config
+ * @CDP_CFG_TX_EXT_DESC_NUM: number of TX EXT descriptors config
+ * @CDP_CFG_TX_RING_SIZE: TX ring size config param
+ * @CDP_CFG_TX_COMPL_RING_SIZE: TX completion ring size param
+ * @CDP_CFG_RX_SW_DESC_NUM: RX SW descriptor number
+ * @CDP_CFG_REO_DST_RING_SIZE: REO destination ring size config
+ * @CDP_CFG_RXDMA_REFILL_RING_SIZE: RXDMA refill ring size config
+ * @CDP_CFG_RX_REFILL_POOL_NUM: RX refill pool size config param
  */
 enum cdp_psoc_param_type {
 	CDP_ENABLE_RATE_STATS,
@@ -1712,6 +1741,16 @@ enum cdp_psoc_param_type {
 	CDP_UMAC_RESET_STATS,
 	CDP_CFG_RX_PEER_METADATA_VER,
 	CDP_TXRX_HAL_SOC_HDL,
+	CDP_CFG_TX_DESC_NUM,
+	CDP_CFG_TX_EXT_DESC_NUM,
+	CDP_CFG_TX_RING_SIZE,
+	CDP_CFG_TX_COMPL_RING_SIZE,
+	CDP_CFG_RX_SW_DESC_NUM,
+	CDP_CFG_REO_DST_RING_SIZE,
+	CDP_CFG_RXDMA_REFILL_RING_SIZE,
+#ifdef WLAN_FEATURE_RX_PREALLOC_BUFFER_POOL
+	CDP_CFG_RX_REFILL_POOL_NUM,
+#endif
 };
 
 #ifdef CONFIG_AP_PLATFORM

+ 80 - 3
dp/wifi3.0/dp_main.c

@@ -7000,6 +7000,10 @@ static QDF_STATUS dp_get_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
 		val->cdp_pdev_param_mon_freq =
 			dp_monitor_get_chan_freq((struct dp_pdev *)pdev);
 		break;
+	case CDP_CONFIG_RXDMA_BUF_RING_SIZE:
+		val->cdp_rxdma_buf_ring_size =
+			wlan_cfg_get_rx_dma_buf_ring_size(((struct dp_pdev *)pdev)->wlan_cfg_ctx);
+		break;
 	default:
 		return QDF_STATUS_E_FAILURE;
 	}
@@ -7133,6 +7137,10 @@ static QDF_STATUS dp_set_pdev_param(struct cdp_soc_t *cdp_soc, uint8_t pdev_id,
 		return dp_monitor_config_undecoded_metadata_capture(pdev,
 				val.cdp_pdev_param_undecoded_metadata_enable);
 		break;
+	case CDP_CONFIG_RXDMA_BUF_RING_SIZE:
+		wlan_cfg_set_rx_dma_buf_ring_size(pdev->wlan_cfg_ctx,
+						  val.cdp_rxdma_buf_ring_size);
+		break;
 	default:
 		return QDF_STATUS_E_INVAL;
 	}
@@ -7757,6 +7765,40 @@ dp_set_psoc_param(struct cdp_soc_t *cdp_soc,
 	case CDP_TXRX_HAL_SOC_HDL:
 		val.hal_soc_hdl = soc->hal_soc;
 		break;
+	case CDP_CFG_TX_DESC_NUM:
+		wlan_cfg_set_num_tx_desc(wlan_cfg_ctx,
+					 val.cdp_tx_desc_num);
+		break;
+	case CDP_CFG_TX_EXT_DESC_NUM:
+		wlan_cfg_set_num_tx_ext_desc(wlan_cfg_ctx,
+					     val.cdp_tx_ext_desc_num);
+		break;
+	case CDP_CFG_TX_RING_SIZE:
+		wlan_cfg_set_tx_ring_size(wlan_cfg_ctx,
+					  val.cdp_tx_ring_size);
+		break;
+	case CDP_CFG_TX_COMPL_RING_SIZE:
+		wlan_cfg_set_tx_comp_ring_size(wlan_cfg_ctx,
+					       val.cdp_tx_comp_ring_size);
+		break;
+	case CDP_CFG_RX_SW_DESC_NUM:
+		wlan_cfg_set_dp_soc_rx_sw_desc_num(wlan_cfg_ctx,
+						   val.cdp_rx_sw_desc_num);
+		break;
+	case CDP_CFG_REO_DST_RING_SIZE:
+		wlan_cfg_set_reo_dst_ring_size(wlan_cfg_ctx,
+					       val.cdp_reo_dst_ring_size);
+		break;
+	case CDP_CFG_RXDMA_REFILL_RING_SIZE:
+		wlan_cfg_set_dp_soc_rxdma_refill_ring_size(wlan_cfg_ctx,
+					val.cdp_rxdma_refill_ring_size);
+		break;
+#ifdef WLAN_FEATURE_RX_PREALLOC_BUFFER_POOL
+	case CDP_CFG_RX_REFILL_POOL_NUM:
+		wlan_cfg_set_rx_refill_buf_pool_size(wlan_cfg_ctx,
+						val.cdp_rx_refill_buf_pool_size);
+		break;
+#endif
 	default:
 		break;
 	}
@@ -7767,7 +7809,7 @@ dp_set_psoc_param(struct cdp_soc_t *cdp_soc,
 /**
  * dp_get_psoc_param: function to get parameters in soc
  * @cdp_soc: DP soc handle
- * @param: parameter type to be set
+ * @param: parameter type to be get
  * @val: address of buffer
  *
  * Return: status
@@ -7777,22 +7819,57 @@ static QDF_STATUS dp_get_psoc_param(struct cdp_soc_t *cdp_soc,
 				    cdp_config_param_type *val)
 {
 	struct dp_soc *soc = (struct dp_soc *)cdp_soc;
+	struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx;
 
 	if (!soc)
 		return QDF_STATUS_E_FAILURE;
 
+	wlan_cfg_ctx = soc->wlan_cfg_ctx;
+
 	switch (param) {
 	case CDP_CFG_PEER_EXT_STATS:
 		val->cdp_psoc_param_pext_stats =
-			wlan_cfg_is_peer_ext_stats_enabled(soc->wlan_cfg_ctx);
+			wlan_cfg_is_peer_ext_stats_enabled(wlan_cfg_ctx);
 		break;
 	case CDP_CFG_VDEV_STATS_HW_OFFLOAD:
 		val->cdp_psoc_param_vdev_stats_hw_offload =
-			wlan_cfg_get_vdev_stats_hw_offload_config(soc->wlan_cfg_ctx);
+			wlan_cfg_get_vdev_stats_hw_offload_config(wlan_cfg_ctx);
 		break;
 	case CDP_UMAC_RST_SKEL_ENABLE:
 		val->cdp_umac_rst_skel = dp_umac_rst_skel_enable_get(soc);
 		break;
+	case CDP_CFG_TX_DESC_NUM:
+		val->cdp_tx_desc_num = wlan_cfg_get_num_tx_desc(wlan_cfg_ctx);
+		break;
+	case CDP_CFG_TX_EXT_DESC_NUM:
+		val->cdp_tx_ext_desc_num =
+			wlan_cfg_get_num_tx_ext_desc(wlan_cfg_ctx);
+		break;
+	case CDP_CFG_TX_RING_SIZE:
+		val->cdp_tx_ring_size = wlan_cfg_tx_ring_size(wlan_cfg_ctx);
+		break;
+	case CDP_CFG_TX_COMPL_RING_SIZE:
+		val->cdp_tx_comp_ring_size =
+			wlan_cfg_tx_comp_ring_size(wlan_cfg_ctx);
+		break;
+	case CDP_CFG_RX_SW_DESC_NUM:
+		val->cdp_rx_sw_desc_num =
+			wlan_cfg_get_dp_soc_rx_sw_desc_num(wlan_cfg_ctx);
+		break;
+	case CDP_CFG_REO_DST_RING_SIZE:
+		val->cdp_reo_dst_ring_size =
+			wlan_cfg_get_reo_dst_ring_size(wlan_cfg_ctx);
+		break;
+	case CDP_CFG_RXDMA_REFILL_RING_SIZE:
+		val->cdp_rxdma_refill_ring_size =
+			wlan_cfg_get_dp_soc_rxdma_refill_ring_size(wlan_cfg_ctx);
+		break;
+#ifdef WLAN_FEATURE_RX_PREALLOC_BUFFER_POOL
+	case CDP_CFG_RX_REFILL_POOL_NUM:
+		val->cdp_rx_refill_buf_pool_size =
+			wlan_cfg_get_rx_refill_buf_pool_size(wlan_cfg_ctx);
+#endif
+		break;
 	default:
 		dp_warn("Invalid param: %u", param);
 		break;