qcacmn: Changes to support for vlan tagged traffic in IPA offload

IPA component changes to support for vlan tagged traffic in IPA offload

Change-Id: Ie28474537332d31f1ed1403ee0b774563a16a3ab
CRs-Fixed: 3229801
这个提交包含在:
Himanshu Batra
2022-06-27 15:38:46 +05:30
提交者 Madan Koyyalamudi
父节点 8c61283889
当前提交 7c3316638a
修改 8 个文件,包含 79 行新增1 行删除

查看文件

@@ -159,6 +159,13 @@ bool ipa_config_is_enabled(void);
*/
bool ipa_config_is_uc_enabled(void);
/**
* ipa_config_is_vlan_enabled() - Is IPA vlan config enabled?
*
* Return: true if IPA clan support is enabled in IPA config
*/
bool ipa_config_is_vlan_enabled(void);
/**
* ipa_obj_setup() - IPA obj initialization and setup
* @ipa_ctx: IPA obj context

查看文件

@@ -96,6 +96,14 @@ bool ipa_config_is_uc_enabled(void)
return g_ipa_config ? wlan_ipa_uc_is_enabled(g_ipa_config) : 0;
}
bool ipa_config_is_vlan_enabled(void)
{
if (!ipa_config_is_enabled())
return false;
return g_ipa_config ? g_ipa_config->ipa_vlan_support : 0;
}
QDF_STATUS ipa_obj_setup(struct wlan_ipa_priv *ipa_ctx)
{
return wlan_ipa_setup(ipa_ctx, g_ipa_config);
@@ -847,6 +855,8 @@ void ipa_component_config_update(struct wlan_objmgr_psoc *psoc)
cfg_get(psoc, CFG_DP_IPA_ENABLE_FORCE_VOTING);
g_ipa_config->ipa_wds =
cfg_get(psoc, CFG_DP_IPA_WDS_STATUS);
g_ipa_config->ipa_vlan_support =
cfg_get(psoc, CFG_DP_IPA_ENABLE_VLAN_SUPPORT);
}
void ipa_component_config_free(void)

查看文件

@@ -218,6 +218,25 @@
CFG_INI_BOOL("gIPAWds", \
false, "Ctrl to enable WDS for EasyMesh")
/*
* <ini>
* gIPAVlanEnable - IPA vlan support enable
* @Default: false
*
* This ini specifies to enable IPA vlan support
*
* Related: N/A
*
* Supported Feature: IPA
*
* Usage: Internal
*
* </ini>
*/
#define CFG_DP_IPA_ENABLE_VLAN_SUPPORT \
CFG_INI_BOOL("gIPAVlanEnable", \
false, "Ctrl to enable vlan support with IPA Offload")
#define CFG_IPA \
CFG(CFG_DP_IPA_OFFLOAD_CONFIG) \
CFG(CFG_DP_IPA_DESC_SIZE) \
@@ -226,5 +245,6 @@
CFG(CFG_DP_IPA_LOW_BANDWIDTH_MBPS) \
CFG(CFG_DP_IPA_ENABLE_FORCE_VOTING) \
CFG(CFG_DP_IPA_UC_TX_BUF_COUNT) \
CFG(CFG_DP_IPA_WDS_STATUS)
CFG(CFG_DP_IPA_WDS_STATUS) \
CFG(CFG_DP_IPA_ENABLE_VLAN_SUPPORT)
#endif /* _CFG_IPA_H_ */

查看文件

@@ -79,6 +79,13 @@ static inline bool wlan_ipa_config_is_enabled(void)
*/
qdf_ipa_wdi_hdl_t wlan_ipa_get_hdl(void *soc, uint8_t pdev_id);
/**
* wlan_ipa_is_vlan enabled() - get IPA vlan support enable status
*
* Return: true - ipa vlan support is enabled
* false - ipa vlan support is not enabled
*/
bool wlan_ipa_is_vlan_enabled(void);
#else
static inline QDF_STATUS ipa_init(void)
@@ -105,6 +112,11 @@ static inline bool wlan_ipa_config_is_enabled(void)
{
return false;
}
static inline bool wlan_ipa_is_vlan_enabled(void)
{
return false;
}
#endif /* IPA_OFFLOAD */
#endif /* _WLAN_IPA_OBJ_MGMT_H_ */

查看文件

@@ -41,6 +41,7 @@
* @ipa_bw_low: IPA bandwidth low threshold
* @ipa_force_voting: support force bw voting
* @ipa_wds: WDS support for IPA
* @ipa_vlan_support: support got vlan with IPA
*/
struct wlan_ipa_config {
uint32_t ipa_config;
@@ -54,6 +55,7 @@ struct wlan_ipa_config {
uint32_t ipa_bw_low;
bool ipa_force_voting;
bool ipa_wds;
bool ipa_vlan_support;
};
/**

查看文件

@@ -87,6 +87,14 @@ bool ucfg_ipa_is_enabled(void);
*/
bool ucfg_ipa_uc_is_enabled(void);
/**
* ucfg_ipa_is_vlan enabled() - get IPA vlan support enable status
*
* Return: true - ipa vlan support is enabled
* false - ipa vlan support is not enabled
*/
bool ucfg_ipa_is_vlan_enabled(void);
/**
* ucfg_ipa_set_dp_handle() - register DP handle
* @psoc: psoc handle
@@ -495,6 +503,11 @@ static inline bool ucfg_ipa_uc_is_enabled(void)
return false;
}
static inline bool ucfg_ipa_is_vlan_enabled(void)
{
return false;
}
static inline
QDF_STATUS ucfg_ipa_set_dp_handle(struct wlan_objmgr_psoc *psoc,
void *dp_soc)

查看文件

@@ -363,3 +363,10 @@ qdf_ipa_wdi_hdl_t wlan_ipa_get_hdl(void *soc, uint8_t pdev_id)
}
qdf_export_symbol(wlan_ipa_get_hdl);
bool wlan_ipa_is_vlan_enabled(void)
{
return ipa_config_is_vlan_enabled();
}
qdf_export_symbol(wlan_ipa_is_vlan_enabled);

查看文件

@@ -67,6 +67,13 @@ bool ucfg_ipa_uc_is_enabled(void)
qdf_export_symbol(ucfg_ipa_uc_is_enabled);
bool ucfg_ipa_is_vlan_enabled(void)
{
return ipa_config_is_vlan_enabled();
}
qdf_export_symbol(ucfg_ipa_is_vlan_enabled);
void ucfg_ipa_set_pdev_id(struct wlan_objmgr_psoc *psoc,
uint8_t pdev_id)
{