diff --git a/dp/wifi3.0/be/dp_be_tx.c b/dp/wifi3.0/be/dp_be_tx.c index 07fe39df67..0abde3ee6d 100644 --- a/dp/wifi3.0/be/dp_be_tx.c +++ b/dp/wifi3.0/be/dp_be_tx.c @@ -847,7 +847,7 @@ void dp_tx_update_bank_profile(struct dp_soc_be *be_soc, } QDF_STATUS dp_tx_desc_pool_init_be(struct dp_soc *soc, - uint16_t num_elem, + uint32_t num_elem, uint8_t pool_id) { struct dp_tx_desc_pool_s *tx_desc_pool; diff --git a/dp/wifi3.0/be/dp_be_tx.h b/dp/wifi3.0/be/dp_be_tx.h index 3a2cdcb25f..e5609a3624 100644 --- a/dp/wifi3.0/be/dp_be_tx.h +++ b/dp/wifi3.0/be/dp_be_tx.h @@ -142,7 +142,7 @@ void dp_tx_update_bank_profile(struct dp_soc_be *be_soc, * Return: QDF_STATUS_SUCCESS - success, others - failure */ QDF_STATUS dp_tx_desc_pool_init_be(struct dp_soc *soc, - uint16_t num_elem, + uint32_t num_elem, uint8_t pool_id); /** * dp_tx_desc_pool_deinit_be() - De-initialize Tx Descriptor pool(s) diff --git a/dp/wifi3.0/dp_internal.h b/dp/wifi3.0/dp_internal.h index 51ef95436a..58ea4af0bb 100644 --- a/dp/wifi3.0/dp_internal.h +++ b/dp/wifi3.0/dp_internal.h @@ -3224,7 +3224,7 @@ void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc, enum dp_desc_type desc_type, struct qdf_mem_multi_page_t *pages, size_t element_size, - uint16_t element_num, + uint32_t element_num, qdf_dma_context_t memctxt, bool cacheable); @@ -3268,7 +3268,7 @@ void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc, enum dp_desc_type desc_type, struct qdf_mem_multi_page_t *pages, size_t element_size, - uint16_t element_num, + uint32_t element_num, qdf_dma_context_t memctxt, bool cacheable) { diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 9dea81b009..bbdc47612a 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -2024,7 +2024,7 @@ void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc, enum dp_desc_type desc_type, struct qdf_mem_multi_page_t *pages, size_t element_size, - uint16_t element_num, + uint32_t element_num, qdf_dma_context_t memctxt, bool cacheable) { diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 9fab35de92..31a9f8a4ad 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -5440,7 +5440,7 @@ static QDF_STATUS dp_tx_alloc_static_pools(struct dp_soc *soc, int num_pool, } static QDF_STATUS dp_tx_init_static_pools(struct dp_soc *soc, int num_pool, - int num_desc) + uint32_t num_desc) { return QDF_STATUS_SUCCESS; } @@ -5458,7 +5458,7 @@ static void dp_tx_delete_static_pools(struct dp_soc *soc, int num_pool) } #else /* QCA_LL_TX_FLOW_CONTROL_V2! */ static QDF_STATUS dp_tx_alloc_static_pools(struct dp_soc *soc, int num_pool, - int num_desc) + uint32_t num_desc) { uint8_t i, count; @@ -5481,7 +5481,7 @@ fail: } static QDF_STATUS dp_tx_init_static_pools(struct dp_soc *soc, int num_pool, - int num_desc) + uint32_t num_desc) { uint8_t i; for (i = 0; i < num_pool; i++) { @@ -5591,7 +5591,7 @@ void dp_soc_tx_desc_sw_pools_deinit(struct dp_soc *soc) */ QDF_STATUS dp_tx_tso_cmn_desc_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_desc) + uint32_t num_desc) { if (dp_tx_tso_desc_pool_alloc(soc, num_pool, num_desc)) { dp_err("TSO Desc Pool alloc %d failed %pK", num_pool, soc); @@ -5620,7 +5620,7 @@ QDF_STATUS dp_tx_tso_cmn_desc_pool_alloc(struct dp_soc *soc, QDF_STATUS dp_tx_tso_cmn_desc_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_desc) + uint32_t num_desc) { if (dp_tx_tso_desc_pool_init(soc, num_pool, num_desc)) { dp_err("TSO Desc Pool alloc %d failed %pK", num_pool, soc); diff --git a/dp/wifi3.0/dp_tx.h b/dp/wifi3.0/dp_tx.h index 328109138a..a2574b5033 100644 --- a/dp/wifi3.0/dp_tx.h +++ b/dp/wifi3.0/dp_tx.h @@ -236,21 +236,14 @@ void dp_tx_deinit_pair_by_index(struct dp_soc *soc, int index); void dp_tx_tso_cmn_desc_pool_deinit(struct dp_soc *soc, uint8_t num_pool); void dp_tx_tso_cmn_desc_pool_free(struct dp_soc *soc, uint8_t num_pool); -QDF_STATUS dp_tx_tso_cmn_desc_pool_alloc(struct dp_soc *soc, - uint8_t num_pool, - uint16_t num_desc); -QDF_STATUS dp_tx_tso_cmn_desc_pool_init(struct dp_soc *soc, - uint8_t num_pool, - uint16_t num_desc); - void dp_tx_tso_cmn_desc_pool_deinit(struct dp_soc *soc, uint8_t num_pool); void dp_tx_tso_cmn_desc_pool_free(struct dp_soc *soc, uint8_t num_pool); QDF_STATUS dp_tx_tso_cmn_desc_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_desc); + uint32_t num_desc); QDF_STATUS dp_tx_tso_cmn_desc_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_desc); + uint32_t num_desc); void dp_tx_comp_free_buf(struct dp_soc *soc, struct dp_tx_desc_s *desc); void dp_tx_desc_release(struct dp_tx_desc_s *tx_desc, uint8_t desc_pool_id); void dp_tx_compute_delay(struct dp_vdev *vdev, struct dp_tx_desc_s *tx_desc, diff --git a/dp/wifi3.0/dp_tx_desc.c b/dp/wifi3.0/dp_tx_desc.c index efecb24eee..a68753a1f3 100644 --- a/dp/wifi3.0/dp_tx_desc.c +++ b/dp/wifi3.0/dp_tx_desc.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -91,7 +92,7 @@ dp_tx_desc_pool_counter_initialize(struct dp_tx_desc_pool_s *tx_desc_pool, * Return: Status code. 0 for success. */ QDF_STATUS dp_tx_desc_pool_alloc(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem) + uint32_t num_elem) { uint32_t desc_size; struct dp_tx_desc_pool_s *tx_desc_pool; @@ -138,7 +139,7 @@ void dp_tx_desc_pool_free(struct dp_soc *soc, uint8_t pool_id) * QDF_STATUS_E_FAULT */ QDF_STATUS dp_tx_desc_pool_init(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem) + uint32_t num_elem) { struct dp_tx_desc_pool_s *tx_desc_pool; uint32_t desc_size; @@ -196,7 +197,7 @@ void dp_tx_desc_pool_deinit(struct dp_soc *soc, uint8_t pool_id) * QDF_STATUS_E_NOMEM */ QDF_STATUS dp_tx_ext_desc_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { QDF_STATUS status = QDF_STATUS_SUCCESS; qdf_dma_context_t memctx = 0; @@ -285,7 +286,7 @@ fail_exit: * QDF_STATUS_E_NOMEM */ QDF_STATUS dp_tx_ext_desc_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { uint32_t i; struct dp_tx_ext_desc_elem_s *c_elem, *p_elem; @@ -418,7 +419,7 @@ void dp_tx_ext_desc_pool_deinit(struct dp_soc *soc, uint8_t num_pool) * QDF_STATUS_E_NOMEM */ QDF_STATUS dp_tx_tso_desc_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { struct dp_tx_tso_seg_pool_s *tso_desc_pool; uint32_t desc_size, pool_id, i; @@ -480,7 +481,7 @@ void dp_tx_tso_desc_pool_free(struct dp_soc *soc, uint8_t num_pool) * QDF_STATUS_E_NOMEM */ QDF_STATUS dp_tx_tso_desc_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { struct dp_tx_tso_seg_pool_s *tso_desc_pool; uint32_t desc_size, pool_id; @@ -546,7 +547,7 @@ void dp_tx_tso_desc_pool_deinit(struct dp_soc *soc, uint8_t num_pool) * QDF_STATUS_E_NOMEM */ QDF_STATUS dp_tx_tso_num_seg_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { struct dp_tx_tso_num_seg_pool_s *tso_num_seg_pool; uint32_t desc_size, pool_id, i; @@ -610,7 +611,7 @@ void dp_tx_tso_num_seg_pool_free(struct dp_soc *soc, uint8_t num_pool) * QDF_STATUS_E_FAULT */ QDF_STATUS dp_tx_tso_num_seg_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { struct dp_tx_tso_num_seg_pool_s *tso_num_seg_pool; uint32_t desc_size, pool_id; @@ -666,13 +667,13 @@ void dp_tx_tso_num_seg_pool_deinit(struct dp_soc *soc, uint8_t num_pool) } #else QDF_STATUS dp_tx_tso_desc_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { return QDF_STATUS_SUCCESS; } QDF_STATUS dp_tx_tso_desc_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { return QDF_STATUS_SUCCESS; } @@ -686,7 +687,7 @@ void dp_tx_tso_desc_pool_deinit(struct dp_soc *soc, uint8_t num_pool) } QDF_STATUS dp_tx_tso_num_seg_pool_alloc(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { return QDF_STATUS_SUCCESS; } @@ -696,7 +697,7 @@ void dp_tx_tso_num_seg_pool_free(struct dp_soc *soc, uint8_t num_pool) } QDF_STATUS dp_tx_tso_num_seg_pool_init(struct dp_soc *soc, uint8_t num_pool, - uint16_t num_elem) + uint32_t num_elem) { return QDF_STATUS_SUCCESS; } diff --git a/dp/wifi3.0/dp_tx_desc.h b/dp/wifi3.0/dp_tx_desc.h index fa2d62e349..5560aaf911 100644 --- a/dp/wifi3.0/dp_tx_desc.h +++ b/dp/wifi3.0/dp_tx_desc.h @@ -107,30 +107,30 @@ static inline void dp_tx_desc_set_magic(struct dp_tx_desc_s *tx_desc, #endif QDF_STATUS dp_tx_desc_pool_alloc(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); QDF_STATUS dp_tx_desc_pool_init(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); void dp_tx_desc_pool_free(struct dp_soc *soc, uint8_t pool_id); void dp_tx_desc_pool_deinit(struct dp_soc *soc, uint8_t pool_id); QDF_STATUS dp_tx_ext_desc_pool_alloc(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); QDF_STATUS dp_tx_ext_desc_pool_init(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); void dp_tx_ext_desc_pool_free(struct dp_soc *soc, uint8_t pool_id); void dp_tx_ext_desc_pool_deinit(struct dp_soc *soc, uint8_t pool_id); QDF_STATUS dp_tx_tso_desc_pool_alloc(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); QDF_STATUS dp_tx_tso_desc_pool_init(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); void dp_tx_tso_desc_pool_free(struct dp_soc *soc, uint8_t pool_id); void dp_tx_tso_desc_pool_deinit(struct dp_soc *soc, uint8_t pool_id); QDF_STATUS dp_tx_tso_num_seg_pool_alloc(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); QDF_STATUS dp_tx_tso_num_seg_pool_init(struct dp_soc *soc, uint8_t pool_id, - uint16_t num_elem); + uint32_t num_elem); void dp_tx_tso_num_seg_pool_free(struct dp_soc *soc, uint8_t pool_id); void dp_tx_tso_num_seg_pool_deinit(struct dp_soc *soc, uint8_t pool_id); @@ -146,10 +146,10 @@ void dp_tx_flow_pool_unmap(struct cdp_soc_t *handle, uint8_t pdev_id, uint8_t vdev_id); void dp_tx_clear_flow_pool_stats(struct dp_soc *soc); struct dp_tx_desc_pool_s *dp_tx_create_flow_pool(struct dp_soc *soc, - uint8_t flow_pool_id, uint16_t flow_pool_size); + uint8_t flow_pool_id, uint32_t flow_pool_size); QDF_STATUS dp_tx_flow_pool_map_handler(struct dp_pdev *pdev, uint8_t flow_id, - uint8_t flow_type, uint8_t flow_pool_id, uint16_t flow_pool_size); + uint8_t flow_type, uint8_t flow_pool_id, uint32_t flow_pool_size); void dp_tx_flow_pool_unmap_handler(struct dp_pdev *pdev, uint8_t flow_id, uint8_t flow_type, uint8_t flow_pool_id); @@ -647,7 +647,7 @@ static inline void dp_tx_flow_control_deinit(struct dp_soc *handle) static inline QDF_STATUS dp_tx_flow_pool_map_handler(struct dp_pdev *pdev, uint8_t flow_id, uint8_t flow_type, uint8_t flow_pool_id, - uint16_t flow_pool_size) + uint32_t flow_pool_size) { return QDF_STATUS_SUCCESS; } diff --git a/dp/wifi3.0/dp_tx_flow_control.c b/dp/wifi3.0/dp_tx_flow_control.c index 41654aa1e7..dde523def5 100644 --- a/dp/wifi3.0/dp_tx_flow_control.c +++ b/dp/wifi3.0/dp_tx_flow_control.c @@ -327,7 +327,7 @@ void dp_tx_clear_flow_pool_stats(struct dp_soc *soc) * Return: flow_pool pointer / NULL for error */ struct dp_tx_desc_pool_s *dp_tx_create_flow_pool(struct dp_soc *soc, - uint8_t flow_pool_id, uint16_t flow_pool_size) + uint8_t flow_pool_id, uint32_t flow_pool_size) { struct dp_tx_desc_pool_s *pool; uint32_t stop_threshold; @@ -512,7 +512,7 @@ static void dp_tx_flow_pool_vdev_unmap(struct dp_pdev *pdev, * Return: none */ QDF_STATUS dp_tx_flow_pool_map_handler(struct dp_pdev *pdev, uint8_t flow_id, - uint8_t flow_type, uint8_t flow_pool_id, uint16_t flow_pool_size) + uint8_t flow_type, uint8_t flow_pool_id, uint32_t flow_pool_size) { struct dp_soc *soc = pdev->soc; struct dp_tx_desc_pool_s *pool; diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 2b1eeaafa9..606f9acd92 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -1711,7 +1711,7 @@ struct dp_arch_ops { uint8_t reo_ring_num, uint32_t quota); QDF_STATUS (*dp_tx_desc_pool_init)(struct dp_soc *soc, - uint16_t num_elem, + uint32_t num_elem, uint8_t pool_id); void (*dp_tx_desc_pool_deinit)( struct dp_soc *soc, diff --git a/dp/wifi3.0/li/dp_li_tx.c b/dp/wifi3.0/li/dp_li_tx.c index 8f86faf40d..3ab9f51144 100644 --- a/dp/wifi3.0/li/dp_li_tx.c +++ b/dp/wifi3.0/li/dp_li_tx.c @@ -521,7 +521,7 @@ ring_access_fail: } QDF_STATUS dp_tx_desc_pool_init_li(struct dp_soc *soc, - uint16_t num_elem, + uint32_t num_elem, uint8_t pool_id) { uint32_t id, count, page_id, offset, pool_id_32; diff --git a/dp/wifi3.0/li/dp_li_tx.h b/dp/wifi3.0/li/dp_li_tx.h index 71c8afe0b0..c282b05e96 100644 --- a/dp/wifi3.0/li/dp_li_tx.h +++ b/dp/wifi3.0/li/dp_li_tx.h @@ -1,6 +1,6 @@ /* * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. - * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. + * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -79,7 +79,7 @@ void dp_tx_process_htt_completion_li(struct dp_soc *soc, * Return: QDF_STATUS_SUCCESS - success, others - failure */ QDF_STATUS dp_tx_desc_pool_init_li(struct dp_soc *soc, - uint16_t num_elem, + uint32_t num_elem, uint8_t pool_id); /** diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index 3f0f496aa0..92274b6c58 100644 --- a/wlan_cfg/cfg_dp.h +++ b/wlan_cfg/cfg_dp.h @@ -166,7 +166,7 @@ #define WLAN_CFG_TX_COMP_RING_SIZE_MAX 0x80000 #define WLAN_CFG_NUM_TX_DESC_MIN 16 -#define WLAN_CFG_NUM_TX_DESC_MAX 32768 +#define WLAN_CFG_NUM_TX_DESC_MAX 0x10000 #define WLAN_CFG_NUM_TX_EXT_DESC_MIN 16 #define WLAN_CFG_NUM_TX_EXT_DESC_MAX 0x80000