qcacmn: Decouple IPA TCLring and WBM ring size config
Decouple IPA TCLring and IPA WBM completion ring size from regular Tx TCLring and WBM completion ring size configuration. This is required as there is limitation on IPA GSI rin size configuration. Change-Id: I689d0e8ca72f069c5b68dc1789358e091c554d30 CRs-Fixed: 2665010
This commit is contained in:

committed by
nshrivas

parent
28b4573d27
commit
7de632a45c
@@ -2791,6 +2791,35 @@ bool dp_reo_remap_config(struct dp_soc *soc, uint32_t *remap1, uint32_t *remap2)
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_ipa_get_tx_ring_size() - Get Tx ring size for IPA
|
||||
*
|
||||
* @tx_ring_num: Tx ring number
|
||||
* @tx_ipa_ring_sz: Return param only updated for IPA.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void dp_ipa_get_tx_ring_size(int tx_ring_num, int *tx_ipa_ring_sz)
|
||||
{
|
||||
if (tx_ring_num == IPA_TCL_DATA_RING_IDX)
|
||||
*tx_ipa_ring_sz = WLAN_CFG_IPA_TX_RING_SIZE;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_ipa_get_tx_comp_ring_size() - Get Tx comp ring size for IPA
|
||||
*
|
||||
* @tx_comp_ring_num: Tx comp ring number
|
||||
* @tx_comp_ipa_ring_sz: Return param only updated for IPA.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
static void dp_ipa_get_tx_comp_ring_size(int tx_comp_ring_num,
|
||||
int *tx_comp_ipa_ring_sz)
|
||||
{
|
||||
if (tx_comp_ring_num == IPA_TCL_DATA_RING_IDX)
|
||||
*tx_comp_ipa_ring_sz = WLAN_CFG_IPA_TX_COMP_RING_SIZE;
|
||||
}
|
||||
#else
|
||||
static bool dp_reo_remap_config(struct dp_soc *soc,
|
||||
uint32_t *remap1,
|
||||
@@ -2870,6 +2899,15 @@ static bool dp_reo_remap_config(struct dp_soc *soc,
|
||||
*remap1, *remap2, offload_radio);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void dp_ipa_get_tx_ring_size(int ring_num, int *tx_ipa_ring_sz)
|
||||
{
|
||||
}
|
||||
|
||||
static void dp_ipa_get_tx_comp_ring_size(int tx_comp_ring_num,
|
||||
int *tx_comp_ipa_ring_sz)
|
||||
{
|
||||
}
|
||||
#endif /* IPA_OFFLOAD */
|
||||
|
||||
/*
|
||||
@@ -2955,6 +2993,8 @@ QDF_STATUS dp_setup_tx_ring_pair_by_index(struct dp_soc *soc, uint8_t index)
|
||||
int cached;
|
||||
|
||||
tx_ring_size = wlan_cfg_tx_ring_size(soc_cfg_ctx);
|
||||
dp_ipa_get_tx_ring_size(index, &tx_ring_size);
|
||||
|
||||
if (dp_srng_setup(soc, &soc->tcl_data_ring[index], TCL_DATA,
|
||||
index, 0, tx_ring_size, 0)) {
|
||||
dp_err("dp_srng_setup failed for tcl_data_ring");
|
||||
@@ -2967,6 +3007,7 @@ QDF_STATUS dp_setup_tx_ring_pair_by_index(struct dp_soc *soc, uint8_t index)
|
||||
"tcl_data_ring");
|
||||
|
||||
tx_comp_ring_size = wlan_cfg_tx_comp_ring_size(soc_cfg_ctx);
|
||||
dp_ipa_get_tx_comp_ring_size(index, &tx_comp_ring_size);
|
||||
/* Disable cached desc if NSS offload is enabled */
|
||||
cached = WLAN_CFG_DST_RING_CACHED_DESC;
|
||||
if (wlan_cfg_get_dp_soc_nss_cfg(soc_cfg_ctx))
|
||||
|
Reference in New Issue
Block a user