瀏覽代碼

qcacmn: set customizable rx_buffer_size

introduce custom rx_buffer_size from INI within the bounds of
2048-4096

Change-Id: I17ad727cea74fc559d6407d3c8662cb6a4cd6b0a
CRs-Fixed: 3631271
Ruben Columbus 1 年之前
父節點
當前提交
70b5c653d0

+ 8 - 2
dp/wifi3.0/be/dp_be.c

@@ -1747,6 +1747,9 @@ dp_rxdma_ring_sel_cfg_be(struct dp_soc *soc)
 	struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
 	struct dp_srng *rx_mac_srng;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	/*
 	 * In Beryllium chipset msdu_start, mpdu_end
@@ -1832,7 +1835,7 @@ dp_rxdma_ring_sel_cfg_be(struct dp_soc *soc)
 
 			htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
 					    rx_mac_srng->hal_srng,
-					    RXDMA_BUF, RX_DATA_BUFFER_SIZE,
+					    RXDMA_BUF, buf_size,
 					    &htt_tlv_filter);
 		}
 	}
@@ -1853,6 +1856,9 @@ dp_rxdma_ring_sel_cfg_be(struct dp_soc *soc)
 	struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
 	struct dp_srng *rx_mac_srng;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	/*
 	 * In Beryllium chipset msdu_start, mpdu_end
@@ -1958,7 +1964,7 @@ dp_rxdma_ring_sel_cfg_be(struct dp_soc *soc)
 
 			htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
 					    rx_mac_srng->hal_srng,
-					    RXDMA_BUF, RX_DATA_BUFFER_SIZE,
+					    RXDMA_BUF, buf_size,
 					    &htt_tlv_filter);
 		}
 	}

+ 7 - 3
dp/wifi3.0/be/dp_be_rx.c

@@ -226,6 +226,7 @@ uint32_t dp_rx_process_be(struct dp_intr *int_ctx,
 	uint32_t dsf;
 	uint32_t l3_pad;
 	uint8_t link_id = 0;
+	uint16_t buf_size;
 
 	DP_HIST_INIT();
 
@@ -237,6 +238,7 @@ uint32_t dp_rx_process_be(struct dp_intr *int_ctx,
 	intr_id = int_ctx->dp_intr_id;
 	num_entries = hal_srng_get_num_entries(hal_soc, hal_ring_hdl);
 	dp_runtime_pm_mark_last_busy(soc);
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 more_data:
 	/* reset local variables here to be re-used in the function */
@@ -400,7 +402,7 @@ more_data:
 				 * reap this MPDU
 				 */
 				if ((QDF_NBUF_CB_RX_PKT_LEN(rx_desc->nbuf) /
-				     (RX_DATA_BUFFER_SIZE -
+				     (buf_size -
 				      soc->rx_pkt_tlv_size) + 1) >
 				    num_pending) {
 					DP_STATS_INC(soc,
@@ -2111,6 +2113,9 @@ dp_rx_null_q_desc_handle_be(struct dp_soc *soc, qdf_nbuf_t nbuf,
 	uint16_t sa_idx = 0;
 	bool is_eapol = 0;
 	bool enh_flag;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	qdf_nbuf_set_rx_chfrag_start(
 				nbuf,
@@ -2138,8 +2143,7 @@ dp_rx_null_q_desc_handle_be(struct dp_soc *soc, qdf_nbuf_t nbuf,
 			goto drop_nbuf;
 
 		/* Set length in nbuf */
-		qdf_nbuf_set_pktlen(
-			nbuf, qdf_min(pkt_len, (uint32_t)RX_DATA_BUFFER_SIZE));
+		qdf_nbuf_set_pktlen(nbuf, qdf_min(pkt_len, (uint32_t)buf_size));
 	}
 
 	/*

+ 4 - 2
dp/wifi3.0/dp_internal.h

@@ -5276,6 +5276,9 @@ void dp_rx_err_send_pktlog(struct dp_soc *soc, struct dp_pdev *pdev,
 	uint16_t msdu_len, nbuf_len;
 	uint8_t *rx_tlv_hdr;
 	struct hal_rx_msdu_metadata msdu_metadata;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	if (qdf_unlikely(packetdump_cb)) {
 		rx_tlv_hdr = qdf_nbuf_data(nbuf);
@@ -5293,8 +5296,7 @@ void dp_rx_err_send_pktlog(struct dp_soc *soc, struct dp_pdev *pdev,
 
 		if (set_pktlen) {
 			msdu_len = nbuf_len + skip_size;
-			qdf_nbuf_set_pktlen(nbuf, qdf_min(msdu_len,
-					    (uint16_t)RX_DATA_BUFFER_SIZE));
+			qdf_nbuf_set_pktlen(nbuf, qdf_min(msdu_len, buf_size));
 		}
 
 		qdf_nbuf_pull_head(nbuf, skip_size);

+ 5 - 2
dp/wifi3.0/dp_ipa.c

@@ -3874,8 +3874,11 @@ static qdf_nbuf_t dp_ipa_frag_nbuf_linearize(struct dp_soc *soc,
 	uint32_t nbuf_len = qdf_nbuf_len(nbuf);
 	bool is_nbuf_head = true;
 	uint32_t copy_len = 0;
+	uint16_t buf_size;
 
-	dst_nbuf = qdf_nbuf_alloc(soc->osdev, RX_DATA_BUFFER_SIZE,
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
+
+	dst_nbuf = qdf_nbuf_alloc(soc->osdev, buf_size,
 				  RX_BUFFER_RESERVATION,
 				  RX_DATA_BUFFER_ALIGNMENT, FALSE);
 
@@ -3884,7 +3887,7 @@ static qdf_nbuf_t dp_ipa_frag_nbuf_linearize(struct dp_soc *soc,
 		return NULL;
 	}
 
-	if ((nbuf_len + L3_HEADER_PADDING) > RX_DATA_BUFFER_SIZE) {
+	if ((nbuf_len + L3_HEADER_PADDING) > buf_size) {
 		qdf_nbuf_free(dst_nbuf);
 		dp_err_rl("nbuf is jumbo data");
 		return NULL;

+ 10 - 4
dp/wifi3.0/dp_rx.c

@@ -1777,13 +1777,16 @@ static inline bool dp_rx_adjust_nbuf_len(struct dp_soc *soc,
 {
 	bool last_nbuf;
 	uint32_t pkt_hdr_size;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	pkt_hdr_size = soc->rx_pkt_tlv_size + l3_pad_len;
 
-	if ((*mpdu_len + pkt_hdr_size) > RX_DATA_BUFFER_SIZE) {
-		qdf_nbuf_set_pktlen(nbuf, RX_DATA_BUFFER_SIZE);
+	if ((*mpdu_len + pkt_hdr_size) > buf_size) {
+		qdf_nbuf_set_pktlen(nbuf, buf_size);
 		last_nbuf = false;
-		*mpdu_len -= (RX_DATA_BUFFER_SIZE - pkt_hdr_size);
+		*mpdu_len -= (buf_size - pkt_hdr_size);
 	} else {
 		qdf_nbuf_set_pktlen(nbuf, (*mpdu_len + pkt_hdr_size));
 		last_nbuf = true;
@@ -3305,8 +3308,11 @@ QDF_STATUS dp_rx_pdev_desc_pool_init(struct dp_pdev *pdev)
 	struct dp_srng *dp_rxdma_srng;
 	struct rx_desc_pool *rx_desc_pool;
 	uint32_t target_type = hal_get_target_type(soc->hal_soc);
+	uint16_t buf_size;
 
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 	rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
+
 	if (wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) {
 		/*
 		 * If NSS is enabled, rx_desc_pool is already filled.
@@ -3331,7 +3337,7 @@ QDF_STATUS dp_rx_pdev_desc_pool_init(struct dp_pdev *pdev)
 	wlan_cfg_get_dp_soc_rx_sw_desc_num(soc->wlan_cfg_ctx);
 
 	rx_desc_pool->owner = dp_rx_get_rx_bm_id(soc);
-	rx_desc_pool->buf_size = RX_DATA_BUFFER_SIZE;
+	rx_desc_pool->buf_size = buf_size;
 	rx_desc_pool->buf_alignment = RX_DATA_BUFFER_ALIGNMENT;
 	/* Disable monitor dest processing via frag */
 	if (target_type == TARGET_TYPE_QCN9160) {

+ 9 - 3
dp/wifi3.0/dp_rx_err.c

@@ -886,7 +886,11 @@ dp_rx_null_q_handle_invalid_peer_id_exception(struct dp_soc *soc,
 
 bool dp_rx_check_pkt_len(struct dp_soc *soc, uint32_t pkt_len)
 {
-	if (qdf_unlikely(pkt_len > RX_DATA_BUFFER_SIZE)) {
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
+
+	if (qdf_unlikely(pkt_len > buf_size)) {
 		DP_STATS_INC_PKT(soc, rx.err.rx_invalid_pkt_len,
 				 1, pkt_len);
 		return true;
@@ -1633,6 +1637,9 @@ dp_rx_err_route_hdl(struct dp_soc *soc, qdf_nbuf_t nbuf,
 	struct dp_vdev *vdev;
 	struct hal_rx_msdu_metadata msdu_metadata;
 	bool is_eapol;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	qdf_nbuf_set_rx_chfrag_start(
 				nbuf,
@@ -1659,8 +1666,7 @@ dp_rx_err_route_hdl(struct dp_soc *soc, qdf_nbuf_t nbuf,
 			goto drop_nbuf;
 
 		/* Set length in nbuf */
-		qdf_nbuf_set_pktlen(
-			nbuf, qdf_min(pkt_len, (uint32_t)RX_DATA_BUFFER_SIZE));
+		qdf_nbuf_set_pktlen(nbuf, qdf_min(pkt_len, (uint32_t)buf_size));
 	}
 
 	/*

+ 8 - 2
dp/wifi3.0/li/dp_li.c

@@ -259,6 +259,9 @@ dp_rxdma_ring_sel_cfg_li(struct dp_soc *soc)
 	struct dp_srng *rx_mac_srng;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	uint32_t target_type = hal_get_target_type(soc->hal_soc);
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	if (target_type == TARGET_TYPE_QCN9160)
 		return status;
@@ -327,7 +330,7 @@ dp_rxdma_ring_sel_cfg_li(struct dp_soc *soc)
 			rx_mac_srng = dp_get_rxdma_ring(pdev, lmac_id);
 			htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
 					    rx_mac_srng->hal_srng,
-					    RXDMA_BUF, RX_DATA_BUFFER_SIZE,
+					    RXDMA_BUF, buf_size,
 					    &htt_tlv_filter);
 		}
 	}
@@ -344,6 +347,9 @@ dp_rxdma_ring_sel_cfg_li(struct dp_soc *soc)
 	struct dp_srng *rx_mac_srng;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	uint32_t target_type = hal_get_target_type(soc->hal_soc);
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	if (target_type == TARGET_TYPE_QCN9160)
 		return status;
@@ -412,7 +418,7 @@ dp_rxdma_ring_sel_cfg_li(struct dp_soc *soc)
 			rx_mac_srng = dp_get_rxdma_ring(pdev, lmac_id);
 			htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
 					    rx_mac_srng->hal_srng,
-					    RXDMA_BUF, RX_DATA_BUFFER_SIZE,
+					    RXDMA_BUF, buf_size,
 					    &htt_tlv_filter);
 		}
 	}

+ 8 - 3
dp/wifi3.0/li/dp_li_rx.c

@@ -245,6 +245,7 @@ uint32_t dp_rx_process_li(struct dp_intr *int_ctx,
 	uint32_t dsf;
 	uint32_t max_ast;
 	uint64_t current_time = 0;
+	uint16_t buf_size;
 
 	DP_HIST_INIT();
 
@@ -252,6 +253,8 @@ uint32_t dp_rx_process_li(struct dp_intr *int_ctx,
 	hal_soc = soc->hal_soc;
 	qdf_assert_always(hal_soc);
 
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
+
 	scn = soc->hif_handle;
 	intr_id = int_ctx->dp_intr_id;
 	num_entries = hal_srng_get_num_entries(hal_soc, hal_ring_hdl);
@@ -407,7 +410,7 @@ more_data:
 				 * reap this MPDU
 				 */
 				if ((msdu_desc_info.msdu_len /
-				     (RX_DATA_BUFFER_SIZE -
+				     (buf_size -
 				      soc->rx_pkt_tlv_size) + 1) >
 				    num_pending) {
 					DP_STATS_INC(soc,
@@ -1345,6 +1348,9 @@ dp_rx_null_q_desc_handle_li(struct dp_soc *soc, qdf_nbuf_t nbuf,
 	uint16_t sa_idx = 0;
 	bool is_eapol = 0;
 	bool enh_flag;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	qdf_nbuf_set_rx_chfrag_start(
 				nbuf,
@@ -1372,8 +1378,7 @@ dp_rx_null_q_desc_handle_li(struct dp_soc *soc, qdf_nbuf_t nbuf,
 			goto drop_nbuf;
 
 		/* Set length in nbuf */
-		qdf_nbuf_set_pktlen(
-			nbuf, qdf_min(pkt_len, (uint32_t)RX_DATA_BUFFER_SIZE));
+		qdf_nbuf_set_pktlen(nbuf, qdf_min(pkt_len, (uint32_t)buf_size));
 	}
 
 	/*

+ 8 - 2
dp/wifi3.0/rh/dp_rh.c

@@ -722,6 +722,9 @@ dp_rxdma_ring_sel_cfg_rh(struct dp_soc *soc)
 	struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
 	struct dp_srng *rx_mac_srng;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	htt_tlv_filter.mpdu_start = 1;
 	htt_tlv_filter.msdu_start = 1;
@@ -787,7 +790,7 @@ dp_rxdma_ring_sel_cfg_rh(struct dp_soc *soc)
 			rx_mac_srng = dp_get_rxdma_ring(pdev, lmac_id);
 			htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
 					    rx_mac_srng->hal_srng,
-					    RXDMA_BUF, RX_DATA_BUFFER_SIZE,
+					    RXDMA_BUF, buf_size,
 					    &htt_tlv_filter);
 		}
 	}
@@ -807,6 +810,9 @@ dp_rxdma_ring_sel_cfg_rh(struct dp_soc *soc)
 	struct htt_rx_ring_tlv_filter htt_tlv_filter = {0};
 	struct dp_srng *rx_mac_srng;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	htt_tlv_filter.mpdu_start = 1;
 	htt_tlv_filter.msdu_start = 1;
@@ -872,7 +878,7 @@ dp_rxdma_ring_sel_cfg_rh(struct dp_soc *soc)
 			rx_mac_srng = dp_get_rxdma_ring(pdev, lmac_id);
 			htt_h2t_rx_ring_cfg(soc->htt_handle, mac_for_pdev,
 					    rx_mac_srng->hal_srng,
-					    RXDMA_BUF, RX_DATA_BUFFER_SIZE,
+					    RXDMA_BUF, buf_size,
 					    &htt_tlv_filter);
 		}
 	}

+ 7 - 2
dp/wifi3.0/rh/dp_rh_rx.c

@@ -380,6 +380,9 @@ dp_rx_decrypt_unecrypt_err_handler_rh(struct dp_soc *soc, qdf_nbuf_t nbuf,
 	bool is_broadcast;
 	uint8_t *rx_tlv_hdr;
 	uint16_t peer_id;
+	uint16_t buf_size;
+
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	rx_tlv_hdr = qdf_nbuf_data(nbuf);
 
@@ -419,7 +422,7 @@ dp_rx_decrypt_unecrypt_err_handler_rh(struct dp_soc *soc, qdf_nbuf_t nbuf,
 	msdu_len = hal_rx_msdu_start_msdu_len_get(soc->hal_soc, rx_tlv_hdr);
 	pkt_len = msdu_len + l2_hdr_offset + soc->rx_pkt_tlv_size;
 
-	if (qdf_unlikely(pkt_len > RX_DATA_BUFFER_SIZE)) {
+	if (qdf_unlikely(pkt_len > buf_size)) {
 		DP_STATS_INC_PKT(soc, rx.err.rx_invalid_pkt_len,
 				 1, pkt_len);
 		goto free_nbuf;
@@ -748,6 +751,7 @@ dp_rx_data_indication_handler(struct dp_soc *soc, qdf_nbuf_t data_ind,
 	uint32_t error;
 	uint32_t error_code;
 	QDF_STATUS status;
+	uint16_t buf_size;
 
 	DP_HIST_INIT();
 
@@ -757,6 +761,7 @@ dp_rx_data_indication_handler(struct dp_soc *soc, qdf_nbuf_t data_ind,
 
 	scn = soc->hif_handle;
 	dp_runtime_pm_mark_last_busy(soc);
+	buf_size = wlan_cfg_rx_buffer_size(soc->wlan_cfg_ctx);
 
 	/* reset local variables here to be re-used in the function */
 	nbuf_head = NULL;
@@ -834,7 +839,7 @@ dp_rx_data_indication_handler(struct dp_soc *soc, qdf_nbuf_t data_ind,
 				 * reap this MPDU
 				 */
 				if ((msdu_len /
-				     (RX_DATA_BUFFER_SIZE -
+				     (buf_size -
 				      soc->rx_pkt_tlv_size) + 1) >
 				    num_pending) {
 					DP_STATS_INC(soc,

+ 14 - 1
wlan_cfg/cfg_dp.h

@@ -100,6 +100,8 @@
 
 #define WLAN_CFG_TIME_CONTROL_BP 3000
 
+#define WLAN_CFG_RX_BUFFER_SIZE 2048
+
 #define WLAN_CFG_QREF_CONTROL_SIZE 0
 
 #if defined(WLAN_MAX_PDEVS) && (WLAN_MAX_PDEVS == 1)
@@ -183,6 +185,9 @@
 #define WLAN_CFG_TIME_CONTROL_BP_MIN 3000
 #define WLAN_CFG_TIME_CONTROL_BP_MAX 1800000
 
+#define WLAN_CFG_RX_BUFFER_SIZE_MIN 2048
+#define WLAN_CFG_RX_BUFFER_SIZE_MAX 4096
+
 #define WLAN_CFG_QREF_CONTROL_SIZE_MIN 0
 #define WLAN_CFG_QREF_CONTROL_SIZE_MAX 4000
 
@@ -846,6 +851,13 @@
 		WLAN_CFG_TIME_CONTROL_BP,\
 		CFG_VALUE_OR_DEFAULT, "DP time control back pressure")
 
+#define CFG_DP_RX_BUFFER_SIZE \
+		CFG_INI_UINT("dp_rx_buffer_size", \
+		WLAN_CFG_RX_BUFFER_SIZE_MIN,\
+		WLAN_CFG_RX_BUFFER_SIZE_MAX,\
+		WLAN_CFG_RX_BUFFER_SIZE,\
+		CFG_VALUE_OR_DEFAULT, "DP rx buffer size")
+
 #define CFG_DP_QREF_CONTROL_SIZE \
 		CFG_INI_UINT("dp_qref_control_size", \
 		WLAN_CFG_QREF_CONTROL_SIZE_MIN,\
@@ -2173,5 +2185,6 @@
 		CFG(CFG_DP_TX_CAPT_RADIO_1_RBM_ID) \
 		CFG(CFG_DP_TX_CAPT_RADIO_2_RBM_ID) \
 		CFG(CFG_DP_TX_CAPT_RADIO_3_RBM_ID) \
-		CFG_DP_UMAC_RESET_BUFFER_WINDOW_CFG
+		CFG_DP_UMAC_RESET_BUFFER_WINDOW_CFG \
+		CFG(CFG_DP_RX_BUFFER_SIZE)
 #endif /* _CFG_DP_H_ */

+ 11 - 0
wlan_cfg/wlan_cfg.c

@@ -4192,6 +4192,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
 	wlan_soc_tx_packet_inspect_attach(psoc, wlan_cfg_ctx);
 	wlan_soc_local_pkt_capture_cfg_attach(psoc, wlan_cfg_ctx);
 	wlan_soc_umac_reset_cfg_attach(psoc, wlan_cfg_ctx);
+	wlan_cfg_ctx->rx_buffer_size = cfg_get(psoc, CFG_DP_RX_BUFFER_SIZE);
 	return wlan_cfg_ctx;
 }
 
@@ -4445,6 +4446,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
 	wlan_cfg_ctx->special_frame_msk =
 			cfg_get(psoc, CFG_SPECIAL_FRAME_MSK);
 	wlan_soc_umac_reset_cfg_attach(psoc, wlan_cfg_ctx);
+	wlan_cfg_ctx->rx_buffer_size = cfg_get(psoc, CFG_DP_RX_BUFFER_SIZE);
 
 	return wlan_cfg_ctx;
 }
@@ -4853,6 +4855,15 @@ int wlan_cfg_time_control_bp(struct wlan_cfg_dp_soc_ctxt *cfg)
 	return cfg->time_control_bp;
 }
 
+int wlan_cfg_rx_buffer_size(struct wlan_cfg_dp_soc_ctxt *cfg)
+{
+	if (cfg->rx_buffer_size < RX_DATA_BUFFER_SIZE)
+		qdf_assert_always(0);
+	return cfg->rx_buffer_size;
+}
+
+qdf_export_symbol(wlan_cfg_rx_buffer_size);
+
 int wlan_cfg_qref_control_size(struct wlan_cfg_dp_soc_ctxt *cfg)
 {
 	return cfg->qref_control_size;

+ 10 - 0
wlan_cfg/wlan_cfg.h

@@ -177,6 +177,7 @@ struct wlan_srng_cfg {
  * @int_timer_threshold_mon_dest: Timer threshold counter for monitor dest
  * @tx_ring_size:
  * @time_control_bp:
+ * @rx_buffer_size: skb size
  * @qref_control_size: list size for memory history arrays
  * @tx_comp_ring_size:
  * @tx_comp_ring_size_nss:
@@ -386,6 +387,7 @@ struct wlan_cfg_dp_soc_ctxt {
 	int int_timer_threshold_mon_dest;
 	int tx_ring_size;
 	int time_control_bp;
+	int rx_buffer_size;
 	int qref_control_size;
 	int tx_comp_ring_size;
 	int tx_comp_ring_size_nss;
@@ -1617,6 +1619,14 @@ void wlan_cfg_set_tx_ring_size(struct wlan_cfg_dp_soc_ctxt *cfg,
  */
 int wlan_cfg_time_control_bp(struct wlan_cfg_dp_soc_ctxt *cfg);
 
+/**
+ * wlan_cfg_rx_buffer_size - Get buffer size for skb
+ * @cfg: soc configuration context
+ *
+ * Return: buffer size
+ */
+int wlan_cfg_rx_buffer_size(struct wlan_cfg_dp_soc_ctxt *cfg);
+
 /**
  * wlan_cfg_qref_control_size - Get debug array size
  * @cfg: soc configuration context