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:
Manjunathappa Prakash
2020-04-20 01:15:05 -07:00
committed by nshrivas
parent 28b4573d27
commit 7de632a45c
2 changed files with 45 additions and 0 deletions

View File

@@ -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))