qcacmn: Setup bank id for IPA TX pipe
Get bank id initialized for IPA usage from DP layer and pass it up to IPA driver. IPA is not able to handle bank id on a per-interface basis, and hence set up same bank id for both TX pipes. Change-Id: I69632a5e4e2ae115ef9131d5579822b82c001fca CRs-Fixed: 3289537
This commit is contained in:

committed by
Madan Koyyalamudi

parent
4b36439025
commit
b6c2183b7a
@@ -403,6 +403,62 @@ static QDF_STATUS dp_ipa_get_shared_mem_info(qdf_device_t osdev,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* dp_ipa_get_tx_bank_id - API to get TCL bank id
|
||||
* @soc: dp_soc handle
|
||||
* @bank_id: out parameter for bank id
|
||||
*
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static QDF_STATUS dp_ipa_get_tx_bank_id(struct dp_soc *soc, uint8_t *bank_id)
|
||||
{
|
||||
if (soc->arch_ops.ipa_get_bank_id) {
|
||||
*bank_id = soc->arch_ops.ipa_get_bank_id(soc);
|
||||
if (*bank_id < 0) {
|
||||
return QDF_STATUS_E_INVAL;
|
||||
} else {
|
||||
dp_info("bank_id %u", *bank_id);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
} else {
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
}
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)) || \
|
||||
defined(CONFIG_IPA_WDI_UNIFIED_API)
|
||||
static void dp_ipa_setup_tx_params_bank_id(struct dp_soc *soc,
|
||||
qdf_ipa_wdi_pipe_setup_info_t *tx)
|
||||
{
|
||||
uint8_t bank_id;
|
||||
|
||||
if (QDF_IS_STATUS_SUCCESS(dp_ipa_get_tx_bank_id(soc, &bank_id)))
|
||||
QDF_IPA_WDI_SETUP_INFO_RX_BANK_ID(tx, bank_id);
|
||||
}
|
||||
|
||||
static void
|
||||
dp_ipa_setup_tx_smmu_params_bank_id(struct dp_soc *soc,
|
||||
qdf_ipa_wdi_pipe_setup_info_smmu_t *tx_smmu)
|
||||
{
|
||||
uint8_t bank_id;
|
||||
|
||||
if (QDF_IS_STATUS_SUCCESS(dp_ipa_get_tx_bank_id(soc, &bank_id)))
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_RX_BANK_ID(tx_smmu, bank_id);
|
||||
}
|
||||
#else
|
||||
static inline void
|
||||
dp_ipa_setup_tx_params_bank_id(struct dp_soc *soc,
|
||||
qdf_ipa_wdi_pipe_setup_info_t *tx)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void
|
||||
dp_ipa_setup_tx_smmu_params_bank_id(struct dp_soc *soc,
|
||||
qdf_ipa_wdi_pipe_setup_info_smmu_t *tx_smmu)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef IPA_WDI3_TX_TWO_PIPES
|
||||
static void dp_ipa_tx_alt_pool_detach(struct dp_soc *soc, struct dp_pdev *pdev)
|
||||
{
|
||||
@@ -788,6 +844,8 @@ static void dp_ipa_wdi_tx_alt_pipe_params(struct dp_soc *soc,
|
||||
ipa_res->tx_alt_ring_num_alloc_buffer;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(tx) = 0;
|
||||
|
||||
dp_ipa_setup_tx_params_bank_id(soc, tx);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -822,6 +880,8 @@ dp_ipa_wdi_tx_alt_pipe_smmu_params(struct dp_soc *soc,
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(tx_smmu) =
|
||||
ipa_res->tx_alt_ring_num_alloc_buffer;
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(tx_smmu) = 0;
|
||||
|
||||
dp_ipa_setup_tx_smmu_params_bank_id(soc, tx_smmu);
|
||||
}
|
||||
|
||||
static void dp_ipa_setup_tx_alt_pipe(struct dp_soc *soc,
|
||||
@@ -2164,6 +2224,8 @@ static void dp_ipa_wdi_tx_params(struct dp_soc *soc,
|
||||
ipa_res->tx_num_alloc_buffer;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(tx) = 0;
|
||||
|
||||
dp_ipa_setup_tx_params_bank_id(soc, tx);
|
||||
}
|
||||
|
||||
static void dp_ipa_wdi_rx_params(struct dp_soc *soc,
|
||||
@@ -2251,6 +2313,7 @@ dp_ipa_wdi_tx_smmu_params(struct dp_soc *soc,
|
||||
ipa_res->tx_num_alloc_buffer;
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(tx_smmu) = 0;
|
||||
|
||||
dp_ipa_setup_tx_smmu_params_bank_id(soc, tx_smmu);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user