From 4902c68f4d4507da5cf7607fa013a97fcb10adba Mon Sep 17 00:00:00 2001 From: Ruben Columbus Date: Wed, 2 Aug 2023 13:50:53 -0700 Subject: [PATCH] qcacmn: 4k skb buffer change add new ini to configure skb size and change it in each place its used correspondingly Change-Id: Id00c6351bf6bc1b9df5e19064b2057dadd315e9b CRs-Fixed: 3584462 --- dp/wifi3.0/be/dp_be.c | 10 ++++++++-- dp/wifi3.0/be/dp_be_rx.c | 10 +++++++--- dp/wifi3.0/dp_internal.h | 6 ++++-- dp/wifi3.0/dp_ipa.c | 7 +++++-- dp/wifi3.0/dp_rx.c | 14 ++++++++++---- dp/wifi3.0/dp_rx_err.c | 12 +++++++++--- dp/wifi3.0/li/dp_li.c | 10 ++++++++-- dp/wifi3.0/li/dp_li_rx.c | 11 ++++++++--- dp/wifi3.0/rh/dp_rh.c | 10 ++++++++-- dp/wifi3.0/rh/dp_rh_rx.c | 9 +++++++-- wlan_cfg/cfg_dp.h | 13 +++++++++++++ wlan_cfg/wlan_cfg.c | 8 ++++++++ wlan_cfg/wlan_cfg.h | 10 ++++++++++ 13 files changed, 105 insertions(+), 25 deletions(-) diff --git a/dp/wifi3.0/be/dp_be.c b/dp/wifi3.0/be/dp_be.c index a64d1e812a..0d6e2c33a5 100644 --- a/dp/wifi3.0/be/dp_be.c +++ b/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); } } diff --git a/dp/wifi3.0/be/dp_be_rx.c b/dp/wifi3.0/be/dp_be_rx.c index 11caae0934..e9fa72b599 100644 --- a/dp/wifi3.0/be/dp_be_rx.c +++ b/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 */ @@ -401,7 +403,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, @@ -2025,6 +2027,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, @@ -2052,8 +2057,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)); } /* diff --git a/dp/wifi3.0/dp_internal.h b/dp/wifi3.0/dp_internal.h index 8179b41cc5..703c33233f 100644 --- a/dp/wifi3.0/dp_internal.h +++ b/dp/wifi3.0/dp_internal.h @@ -5055,6 +5055,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); @@ -5072,8 +5075,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); diff --git a/dp/wifi3.0/dp_ipa.c b/dp/wifi3.0/dp_ipa.c index eda7467635..0b10df4079 100644 --- a/dp/wifi3.0/dp_ipa.c +++ b/dp/wifi3.0/dp_ipa.c @@ -3836,8 +3836,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); @@ -3846,7 +3849,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; diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index bf954485d9..bee9e8d4e2 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1773,13 +1773,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; @@ -3300,8 +3303,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. @@ -3326,7 +3332,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) { diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index 871589cf49..23f1c6b8fb 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/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; @@ -1617,6 +1621,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, @@ -1643,8 +1650,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)); } /* diff --git a/dp/wifi3.0/li/dp_li.c b/dp/wifi3.0/li/dp_li.c index 405cbce0f8..f75fc90bf6 100644 --- a/dp/wifi3.0/li/dp_li.c +++ b/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); } } diff --git a/dp/wifi3.0/li/dp_li_rx.c b/dp/wifi3.0/li/dp_li_rx.c index 83b225ae55..866ffdb633 100644 --- a/dp/wifi3.0/li/dp_li_rx.c +++ b/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); @@ -408,7 +411,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, @@ -1347,6 +1350,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, @@ -1374,8 +1380,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)); } /* diff --git a/dp/wifi3.0/rh/dp_rh.c b/dp/wifi3.0/rh/dp_rh.c index 0081f244de..09e7e13f62 100644 --- a/dp/wifi3.0/rh/dp_rh.c +++ b/dp/wifi3.0/rh/dp_rh.c @@ -718,6 +718,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; @@ -783,7 +786,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); } } @@ -803,6 +806,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; @@ -868,7 +874,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); } } diff --git a/dp/wifi3.0/rh/dp_rh_rx.c b/dp/wifi3.0/rh/dp_rh_rx.c index e8afdebaf2..6643d32cf6 100644 --- a/dp/wifi3.0/rh/dp_rh_rx.c +++ b/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, diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index 8a64c8fc56..24073c1958 100644 --- a/wlan_cfg/cfg_dp.h +++ b/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,\ @@ -2067,6 +2079,7 @@ CFG(CFG_DP_NSS_COMP_RING_SIZE) \ CFG(CFG_DP_PDEV_LMAC_RING) \ CFG(CFG_DP_TIME_CONTROL_BP) \ + CFG(CFG_DP_RX_BUFFER_SIZE) \ CFG(CFG_DP_QREF_CONTROL_SIZE) \ CFG(CFG_DP_BASE_HW_MAC_ID) \ CFG(CFG_DP_RX_HASH) \ diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index d14157689e..226a078d82 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -4230,6 +4230,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc) wlan_cfg_ctx->tx_ring_size = cfg_get(psoc, CFG_DP_TX_RING_SIZE); wlan_cfg_ctx->time_control_bp = cfg_get(psoc, CFG_DP_TIME_CONTROL_BP); + wlan_cfg_ctx->rx_buffer_size = cfg_get(psoc, CFG_DP_RX_BUFFER_SIZE); wlan_cfg_ctx->qref_control_size = cfg_get(psoc, CFG_DP_QREF_CONTROL_SIZE); wlan_cfg_ctx->tx_comp_ring_size = cfg_get(psoc, @@ -4850,6 +4851,13 @@ 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) +{ + 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; diff --git a/wlan_cfg/wlan_cfg.h b/wlan_cfg/wlan_cfg.h index 96dacb4928..4342429c60 100644 --- a/wlan_cfg/wlan_cfg.h +++ b/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; @@ -1607,6 +1609,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