qcacmn: Defer IPA SMMU mapping to OPT_DP reserve
Currently, IPA SMMU map/unmap is called as part of init. This causes every nbuf to be mapped to IPA in the Rx path, causing throughputs to drop. This change resolves the problem by deferring the IPA SMMU map/unmap call to OPT_DP filter reserve/release, as nbuf needs to be mapped to IPA only in this scenario. Change-Id: If198a6c5f22af58fdaf9d9c020c74b1f76002e37 CRs-Fixed: 3496679
This commit is contained in:

committed by
Rahul Choudhary

parent
7830b92b9d
commit
b50ceeee79
@@ -409,7 +409,6 @@ QDF_STATUS dp_ipa_handle_rx_buf_smmu_mapping(struct dp_soc *soc,
|
||||
bool create,
|
||||
const char *func,
|
||||
uint32_t line);
|
||||
|
||||
/**
|
||||
* dp_ipa_tx_buf_smmu_mapping() - Create SMMU mappings for IPA
|
||||
* allocated TX buffers
|
||||
@@ -437,6 +436,13 @@ QDF_STATUS dp_ipa_tx_buf_smmu_mapping(struct cdp_soc_t *soc_hdl,
|
||||
QDF_STATUS dp_ipa_tx_buf_smmu_unmapping(struct cdp_soc_t *soc_hdl,
|
||||
uint8_t pdev_id, const char *func,
|
||||
uint32_t line);
|
||||
QDF_STATUS dp_ipa_rx_buf_pool_smmu_mapping(struct cdp_soc_t *soc_hdl,
|
||||
uint8_t pdev_id,
|
||||
bool create,
|
||||
const char *func,
|
||||
uint32_t line);
|
||||
QDF_STATUS dp_ipa_set_smmu_mapped(struct cdp_soc_t *soc, int val);
|
||||
int dp_ipa_get_smmu_mapped(struct cdp_soc_t *soc);
|
||||
|
||||
#ifndef QCA_OL_DP_SRNG_LOCK_LESS_ACCESS
|
||||
static inline void
|
||||
@@ -679,6 +685,26 @@ static inline QDF_STATUS dp_ipa_tx_buf_smmu_unmapping(struct cdp_soc_t *soc_hdl,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS dp_ipa_rx_buf_pool_smmu_mapping(
|
||||
struct cdp_soc_t *soc_hdl,
|
||||
uint8_t pdev_id,
|
||||
bool create,
|
||||
const char *func,
|
||||
uint32_t line)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline QDF_STATUS dp_ipa_set_smmu_mapped(struct cdp_soc_t *soc, int val)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static inline int dp_ipa_get_smmu_mapped(struct cdp_soc_t *soc)
|
||||
{
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
#ifdef IPA_WDS_EASYMESH_FEATURE
|
||||
static inline QDF_STATUS dp_ipa_ast_create(struct cdp_soc_t *soc_hdl,
|
||||
qdf_ipa_ast_info_type_t *data)
|
||||
|
Reference in New Issue
Block a user