qcacmn: Move prealloc DP descriptor types to QDF

Move prealloc DP descriptor types to QDF so that
the macros can be used in HIF layer.

Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502615
This commit is contained in:
Yeshwanth Sriram Guntuka
2023-05-18 15:50:37 +05:30
committed by Rahul Choudhary
parent a5beb4bc26
commit 4dc955351e
12 changed files with 77 additions and 74 deletions

View File

@@ -346,7 +346,7 @@ QDF_STATUS
dp_hw_cookie_conversion_attach(struct dp_soc_be *be_soc,
struct dp_hw_cookie_conversion_t *cc_ctx,
uint32_t num_descs,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
uint8_t desc_pool_id)
{
struct dp_soc *soc = DP_SOC_BE_GET_SOC(be_soc);
@@ -361,7 +361,7 @@ dp_hw_cookie_conversion_attach(struct dp_soc_be *be_soc,
num_spt_pages : DP_CC_PPT_MAX_ENTRIES;
dp_info("num_spt_pages needed %d", num_spt_pages);
dp_desc_multi_pages_mem_alloc(soc, DP_HW_CC_SPT_PAGE_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_HW_CC_SPT_PAGE_TYPE,
&cc_ctx->page_pool, qdf_page_size,
num_spt_pages, 0, false);
if (!cc_ctx->page_pool.dma_pages) {
@@ -404,7 +404,7 @@ dp_hw_cookie_conversion_attach(struct dp_soc_be *be_soc,
fail_1:
qdf_mem_free(cc_ctx->page_desc_base);
fail_0:
dp_desc_multi_pages_mem_free(soc, DP_HW_CC_SPT_PAGE_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_HW_CC_SPT_PAGE_TYPE,
&cc_ctx->page_pool, 0, false);
return QDF_STATUS_E_FAILURE;
@@ -417,7 +417,7 @@ dp_hw_cookie_conversion_detach(struct dp_soc_be *be_soc,
struct dp_soc *soc = DP_SOC_BE_GET_SOC(be_soc);
qdf_mem_free(cc_ctx->page_desc_base);
dp_desc_multi_pages_mem_free(soc, DP_HW_CC_SPT_PAGE_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_HW_CC_SPT_PAGE_TYPE,
&cc_ctx->page_pool, 0, false);
qdf_spinlock_destroy(&cc_ctx->cc_lock);
@@ -973,7 +973,7 @@ static QDF_STATUS dp_soc_attach_be(struct dp_soc *soc,
dp_hw_cookie_conversion_attach(be_soc,
&be_soc->tx_cc_ctx[i],
num_entries,
DP_TX_DESC_TYPE, i);
QDF_DP_TX_DESC_TYPE, i);
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
goto fail;
}
@@ -989,7 +989,8 @@ static QDF_STATUS dp_soc_attach_be(struct dp_soc *soc,
dp_hw_cookie_conversion_attach(be_soc,
&be_soc->rx_cc_ctx[i],
num_entries,
DP_RX_DESC_BUF_TYPE, i);
QDF_DP_RX_DESC_BUF_TYPE,
i);
if (!QDF_IS_STATUS_SUCCESS(qdf_status))
goto fail;
}

View File

@@ -634,7 +634,7 @@ QDF_STATUS
dp_hw_cookie_conversion_attach(struct dp_soc_be *be_soc,
struct dp_hw_cookie_conversion_t *cc_ctx,
uint32_t num_descs,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
uint8_t desc_pool_id);
void dp_reo_shared_qaddr_detach(struct dp_soc *soc);
@@ -845,17 +845,17 @@ _dp_srng_test_and_update_nf_params(struct dp_soc *soc,
static inline
uint32_t dp_desc_pool_get_cmem_base(uint8_t chip_id, uint8_t desc_pool_id,
enum dp_desc_type desc_type)
enum qdf_dp_desc_type desc_type)
{
switch (desc_type) {
case DP_TX_DESC_TYPE:
case QDF_DP_TX_DESC_TYPE:
return (DP_TX_DESC_CMEM_OFFSET +
(desc_pool_id * DP_TX_DESC_POOL_CMEM_SIZE));
case DP_RX_DESC_BUF_TYPE:
case QDF_DP_RX_DESC_BUF_TYPE:
return (DP_RX_DESC_CMEM_OFFSET +
((chip_id * MAX_RXDESC_POOLS) + desc_pool_id) *
DP_RX_DESC_POOL_CMEM_SIZE);
case DP_TX_PPEDS_DESC_TYPE:
case QDF_DP_TX_PPEDS_DESC_TYPE:
return DP_TX_PPEDS_DESC_CMEM_OFFSET;
default:
QDF_BUG(0);

View File

@@ -1041,7 +1041,7 @@ QDF_STATUS dp_rx_desc_pool_init_be(struct dp_soc *soc,
QDF_STATUS status = QDF_STATUS_SUCCESS;
/* Only regular RX buffer desc pool use HW cookie conversion */
if (rx_desc_pool->desc_type == DP_RX_DESC_BUF_TYPE) {
if (rx_desc_pool->desc_type == QDF_DP_RX_DESC_BUF_TYPE) {
dp_info("rx_desc_buf pool init");
status = dp_rx_desc_pool_init_be_cc(soc,
rx_desc_pool,
@@ -1059,7 +1059,7 @@ void dp_rx_desc_pool_deinit_be(struct dp_soc *soc,
struct rx_desc_pool *rx_desc_pool,
uint32_t pool_id)
{
if (rx_desc_pool->desc_type == DP_RX_DESC_BUF_TYPE)
if (rx_desc_pool->desc_type == QDF_DP_RX_DESC_BUF_TYPE)
dp_rx_desc_pool_deinit_be_cc(soc, rx_desc_pool, pool_id);
}

View File

@@ -4412,7 +4412,7 @@ void dp_context_free_mem(struct dp_soc *soc, enum dp_ctxt_type ctxt_type,
* Return: None
*/
void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
struct qdf_mem_multi_page_t *pages,
size_t element_size,
uint32_t element_num,
@@ -4434,7 +4434,7 @@ void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc,
* Return: None
*/
void dp_desc_multi_pages_mem_free(struct dp_soc *soc,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
struct qdf_mem_multi_page_t *pages,
qdf_dma_context_t memctxt,
bool cacheable);
@@ -4456,7 +4456,7 @@ void dp_context_free_mem(struct dp_soc *soc, enum dp_ctxt_type ctxt_type,
static inline
void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
struct qdf_mem_multi_page_t *pages,
size_t element_size,
uint32_t element_num,
@@ -4469,7 +4469,7 @@ void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc,
static inline
void dp_desc_multi_pages_mem_free(struct dp_soc *soc,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
struct qdf_mem_multi_page_t *pages,
qdf_dma_context_t memctxt,
bool cacheable)

View File

@@ -1250,7 +1250,7 @@ static inline void dp_srng_mem_free_consistent(struct dp_soc *soc,
}
void dp_desc_multi_pages_mem_alloc(struct dp_soc *soc,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
struct qdf_mem_multi_page_t *pages,
size_t element_size,
uint32_t element_num,
@@ -1282,7 +1282,7 @@ end:
}
void dp_desc_multi_pages_mem_free(struct dp_soc *soc,
enum dp_desc_type desc_type,
enum qdf_dp_desc_type desc_type,
struct qdf_mem_multi_page_t *pages,
qdf_dma_context_t memctxt,
bool cacheable)

View File

@@ -2016,7 +2016,7 @@ void dp_hw_link_desc_pool_banks_free(struct dp_soc *soc, uint32_t mac_id)
soc->ctrl_psoc,
WLAN_MD_DP_SRNG_WBM_IDLE_LINK,
"hw_link_desc_bank");
dp_desc_multi_pages_mem_free(soc, DP_HW_LINK_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_HW_LINK_DESC_TYPE,
pages, 0, false);
}
}
@@ -2105,7 +2105,7 @@ QDF_STATUS dp_hw_link_desc_pool_banks_alloc(struct dp_soc *soc, uint32_t mac_id)
soc, total_mem_size);
dp_set_max_page_size(pages, max_alloc_size);
dp_desc_multi_pages_mem_alloc(soc, DP_HW_LINK_DESC_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_HW_LINK_DESC_TYPE,
pages,
link_desc_size,
*total_link_descs,

View File

@@ -3164,7 +3164,7 @@ dp_rx_pdev_desc_pool_alloc(struct dp_pdev *pdev)
rx_desc_pool = &soc->rx_desc_buf[mac_for_pdev];
rx_sw_desc_num = wlan_cfg_get_dp_soc_rx_sw_desc_num(soc->wlan_cfg_ctx);
rx_desc_pool->desc_type = DP_RX_DESC_BUF_TYPE;
rx_desc_pool->desc_type = QDF_DP_RX_DESC_BUF_TYPE;
status = dp_rx_desc_pool_alloc(soc,
rx_sw_desc_num,
rx_desc_pool);

View File

@@ -125,7 +125,7 @@ QDF_STATUS dp_tx_desc_pool_alloc(struct dp_soc *soc, uint8_t pool_id,
desc_size = DP_TX_DESC_SIZE(sizeof(struct dp_tx_desc_s));
tx_desc_pool = &((soc)->tx_desc[(pool_id)]);
tx_desc_pool->desc_pages.page_size = DP_BLOCKMEM_SIZE;
dp_desc_multi_pages_mem_alloc(soc, DP_TX_DESC_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_TX_DESC_TYPE,
&tx_desc_pool->desc_pages,
desc_size, num_elem,
0, true);
@@ -152,7 +152,7 @@ void dp_tx_desc_pool_free(struct dp_soc *soc, uint8_t pool_id)
tx_desc_pool = &((soc)->tx_desc[pool_id]);
if (tx_desc_pool->desc_pages.num_pages)
dp_desc_multi_pages_mem_free(soc, DP_TX_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_DESC_TYPE,
&tx_desc_pool->desc_pages, 0,
true);
@@ -217,7 +217,7 @@ dp_tx_ext_desc_pool_alloc_by_id(struct dp_soc *soc, uint32_t num_elem,
memctx = qdf_get_dma_mem_context(dp_tx_ext_desc_pool, memctx);
/* Coherent tx extension descriptor alloc */
dp_desc_multi_pages_mem_alloc(soc, DP_TX_EXT_DESC_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_TX_EXT_DESC_TYPE,
&dp_tx_ext_desc_pool->desc_pages,
elem_size, num_elem, memctx, false);
@@ -233,7 +233,7 @@ dp_tx_ext_desc_pool_alloc_by_id(struct dp_soc *soc, uint32_t num_elem,
* single element is 24bytes, 2K elements are 48Kbytes
* Have to alloc multi page cacheable memory
*/
dp_desc_multi_pages_mem_alloc(soc, DP_TX_EXT_DESC_LINK_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_TX_EXT_DESC_LINK_TYPE,
&dp_tx_ext_desc_pool->desc_link_pages,
link_elem_size, num_elem, 0, true);
@@ -247,7 +247,7 @@ dp_tx_ext_desc_pool_alloc_by_id(struct dp_soc *soc, uint32_t num_elem,
return QDF_STATUS_SUCCESS;
free_ext_desc:
dp_desc_multi_pages_mem_free(soc, DP_TX_EXT_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_EXT_DESC_TYPE,
&dp_tx_ext_desc_pool->desc_pages,
memctx, false);
return status;
@@ -378,11 +378,11 @@ void dp_tx_ext_desc_pool_free_by_id(struct dp_soc *soc, uint8_t pool_id)
dp_tx_ext_desc_pool = &((soc)->tx_ext_desc[pool_id]);
memctx = qdf_get_dma_mem_context(dp_tx_ext_desc_pool, memctx);
dp_desc_multi_pages_mem_free(soc, DP_TX_EXT_DESC_LINK_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_EXT_DESC_LINK_TYPE,
&dp_tx_ext_desc_pool->desc_link_pages,
0, true);
dp_desc_multi_pages_mem_free(soc, DP_TX_EXT_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_EXT_DESC_TYPE,
&dp_tx_ext_desc_pool->desc_pages,
memctx, false);
}
@@ -422,7 +422,7 @@ QDF_STATUS dp_tx_tso_desc_pool_alloc_by_id(struct dp_soc *soc, uint32_t num_elem
tso_desc_pool = &soc->tx_tso_desc[pool_id];
tso_desc_pool->num_free = 0;
dp_desc_multi_pages_mem_alloc(soc, DP_TX_TSO_DESC_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_TX_TSO_DESC_TYPE,
&tso_desc_pool->desc_pages,
desc_size, num_elem, 0, true);
if (!tso_desc_pool->desc_pages.num_pages) {
@@ -462,7 +462,7 @@ void dp_tx_tso_desc_pool_free_by_id(struct dp_soc *soc, uint8_t pool_id)
struct dp_tx_tso_seg_pool_s *tso_desc_pool;
tso_desc_pool = &soc->tx_tso_desc[pool_id];
dp_desc_multi_pages_mem_free(soc, DP_TX_TSO_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_TSO_DESC_TYPE,
&tso_desc_pool->desc_pages,
0, true);
}
@@ -558,7 +558,7 @@ QDF_STATUS dp_tx_tso_num_seg_pool_alloc_by_id(struct dp_soc *soc,
tso_num_seg_pool = &soc->tx_tso_num_seg[pool_id];
tso_num_seg_pool->num_free = 0;
dp_desc_multi_pages_mem_alloc(soc, DP_TX_TSO_NUM_SEG_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_TX_TSO_NUM_SEG_TYPE,
&tso_num_seg_pool->desc_pages,
desc_size,
num_elem, 0, true);
@@ -600,7 +600,7 @@ void dp_tx_tso_num_seg_pool_free_by_id(struct dp_soc *soc, uint8_t pool_id)
struct dp_tx_tso_num_seg_pool_s *tso_num_seg_pool;
tso_num_seg_pool = &soc->tx_tso_num_seg[pool_id];
dp_desc_multi_pages_mem_free(soc, DP_TX_TSO_NUM_SEG_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_TSO_NUM_SEG_TYPE,
&tso_num_seg_pool->desc_pages,
0, true);
}

View File

@@ -545,42 +545,6 @@ enum dp_ctxt_type {
DP_CFG_EVENT_HIST_TYPE,
};
/**
* enum dp_desc_type - source type for multiple pages allocation
* @DP_TX_DESC_TYPE: DP SW TX descriptor
* @DP_TX_PPEDS_DESC_TYPE: DP PPE-DS Tx descriptor
* @DP_TX_EXT_DESC_TYPE: DP TX msdu extension descriptor
* @DP_TX_EXT_DESC_LINK_TYPE: DP link descriptor for msdu ext_desc
* @DP_TX_TSO_DESC_TYPE: DP TX TSO descriptor
* @DP_TX_TSO_NUM_SEG_TYPE: DP TX number of segments
* @DP_RX_DESC_BUF_TYPE: DP RX SW descriptor
* @DP_RX_DESC_STATUS_TYPE: DP RX SW descriptor for monitor status
* @DP_HW_LINK_DESC_TYPE: DP HW link descriptor
* @DP_HW_CC_SPT_PAGE_TYPE: DP pages for HW CC secondary page table
* @DP_TX_TCL_DESC_TYPE: DP TCL descriptor
* @DP_TX_DIRECT_LINK_CE_BUF_TYPE: DP tx direct link CE source ring buf pages
* @DP_TX_DIRECT_LINK_BUF_TYPE: DP tx direct link buffer pages
* @DP_DESC_TYPE_MAX: DP max desc type
*/
enum dp_desc_type {
DP_TX_DESC_TYPE,
DP_TX_PPEDS_DESC_TYPE,
DP_TX_EXT_DESC_TYPE,
DP_TX_EXT_DESC_LINK_TYPE,
DP_TX_TSO_DESC_TYPE,
DP_TX_TSO_NUM_SEG_TYPE,
DP_RX_DESC_BUF_TYPE,
DP_RX_DESC_STATUS_TYPE,
DP_HW_LINK_DESC_TYPE,
DP_HW_CC_SPT_PAGE_TYPE,
DP_TX_TCL_DESC_TYPE,
#ifdef FEATURE_DIRECT_LINK
DP_TX_DIRECT_LINK_CE_BUF_TYPE,
DP_TX_DIRECT_LINK_BUF_TYPE,
#endif
DP_DESC_TYPE_MAX
};
/**
* struct rx_desc_pool
* @pool_size: number of RX descriptor in the pool
@@ -609,7 +573,7 @@ struct rx_desc_pool {
uint16_t buf_size;
uint8_t buf_alignment;
bool rx_mon_dest_frag_enable;
enum dp_desc_type desc_type;
enum qdf_dp_desc_type desc_type;
};
/**

View File

@@ -895,7 +895,7 @@ dp_rx_pdev_mon_status_desc_pool_alloc(struct dp_pdev *pdev, uint32_t mac_id)
dp_debug("Mon RX Desc Pool[%d] entries=%u", pdev_id, num_entries);
rx_desc_pool->desc_type = DP_RX_DESC_STATUS_TYPE;
rx_desc_pool->desc_type = QDF_DP_RX_DESC_STATUS_TYPE;
return dp_rx_desc_pool_alloc(soc, num_entries + 1, rx_desc_pool);
}

View File

@@ -392,7 +392,7 @@ dp_tx_tcl_desc_pool_alloc_rh(struct dp_soc *soc, uint32_t num_elem,
/* Allocate tcl descriptors in coherent memory */
tcl_desc_pool = &rh_soc->tcl_desc_pool[pool_id];
memctx = qdf_get_dma_mem_context(tcl_desc_pool, memctx);
dp_desc_multi_pages_mem_alloc(soc, DP_TX_TCL_DESC_TYPE,
dp_desc_multi_pages_mem_alloc(soc, QDF_DP_TX_TCL_DESC_TYPE,
&tcl_desc_pool->desc_pages,
elem_size, num_elem, memctx, false);
@@ -405,7 +405,7 @@ dp_tx_tcl_desc_pool_alloc_rh(struct dp_soc *soc, uint32_t num_elem,
return status;
err_alloc_fail:
dp_desc_multi_pages_mem_free(soc, DP_TX_TCL_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_TCL_DESC_TYPE,
&tcl_desc_pool->desc_pages,
memctx, false);
return status;
@@ -429,7 +429,7 @@ static void dp_tx_tcl_desc_pool_free_rh(struct dp_soc *soc, uint8_t pool_id)
tcl_desc_pool = &rh_soc->tcl_desc_pool[pool_id];
memctx = qdf_get_dma_mem_context(tcl_desc_pool, memctx);
dp_desc_multi_pages_mem_free(soc, DP_TX_TCL_DESC_TYPE,
dp_desc_multi_pages_mem_free(soc, QDF_DP_TX_TCL_DESC_TYPE,
&tcl_desc_pool->desc_pages,
memctx, false);
}

View File

@@ -1797,4 +1797,42 @@ enum qdf_iommu_attr {
QDF_DOMAIN_ATTR_MAX,
};
/**
* enum qdf_dp_desc_type - source type for multiple pages allocation
* @QDF_DP_TX_DESC_TYPE: DP SW TX descriptor
* @QDF_DP_TX_PPEDS_DESC_TYPE: DP PPE-DS Tx descriptor
* @QDF_DP_TX_EXT_DESC_TYPE: DP TX msdu extension descriptor
* @QDF_DP_TX_EXT_DESC_LINK_TYPE: DP link descriptor for msdu ext_desc
* @QDF_DP_TX_TSO_DESC_TYPE: DP TX TSO descriptor
* @QDF_DP_TX_TSO_NUM_SEG_TYPE: DP TX number of segments
* @QDF_DP_RX_DESC_BUF_TYPE: DP RX SW descriptor
* @QDF_DP_RX_DESC_STATUS_TYPE: DP RX SW descriptor for monitor status
* @QDF_DP_HW_LINK_DESC_TYPE: DP HW link descriptor
* @QDF_DP_HW_CC_SPT_PAGE_TYPE: DP pages for HW CC secondary page table
* @QDF_DP_TX_TCL_DESC_TYPE: DP TCL descriptor
* @QDF_DP_TX_DIRECT_LINK_CE_BUF_TYPE: DP tx direct link CE source ring buf
* pages
* @QDF_DP_TX_DIRECT_LINK_BUF_TYPE: DP tx direct link buffer pages
* @QDF_DP_RX_DIRECT_LINK_CE_BUF_TYPE: DP RX direct link CE dest ring buf pages
* @QDF_DP_DESC_TYPE_MAX: DP max desc type
*/
enum qdf_dp_desc_type {
QDF_DP_TX_DESC_TYPE,
QDF_DP_TX_PPEDS_DESC_TYPE,
QDF_DP_TX_EXT_DESC_TYPE,
QDF_DP_TX_EXT_DESC_LINK_TYPE,
QDF_DP_TX_TSO_DESC_TYPE,
QDF_DP_TX_TSO_NUM_SEG_TYPE,
QDF_DP_RX_DESC_BUF_TYPE,
QDF_DP_RX_DESC_STATUS_TYPE,
QDF_DP_HW_LINK_DESC_TYPE,
QDF_DP_HW_CC_SPT_PAGE_TYPE,
QDF_DP_TX_TCL_DESC_TYPE,
#ifdef FEATURE_DIRECT_LINK
QDF_DP_TX_DIRECT_LINK_CE_BUF_TYPE,
QDF_DP_TX_DIRECT_LINK_BUF_TYPE,
QDF_DP_RX_DIRECT_LINK_CE_BUF_TYPE,
#endif
QDF_DP_DESC_TYPE_MAX
};
#endif /* __QDF_TYPES_H */