qcacld-3.0: Update firmware filter config (part 1)

In order to conserve firmware memory when various filtering features are
not in use, update the target configuration provided to firmware based
on the intersection of various filtering features and host
configuration.

Part 1
	num_wow_filters = ARP/NS offload enabled ? 2 : 5
	bpf_instruction_size - BPF enabled ? 0 (auto) : 0xffffffff

Part 2 (pending firmware support)
	pkt_filter_num = Packet Filter enabled ? 12 : 0 (disabled)

Change-Id: Ic6624ff04598b53d8321e4864618b12b9702780f
CRs-Fixed: 2196997
这个提交包含在:
Dustin Brown
2018-03-01 17:15:11 -08:00
提交者 nshrivas
父节点 f1d278041b
当前提交 b9987afb2c
修改 12 个文件,包含 222 行新增51 行删除

查看文件

@@ -261,12 +261,13 @@ enum pmo_auto_pwr_detect_failure_mode {
* struct pmo_psoc_cfg - user configuration required for pmo
* @ptrn_match_enable_all_vdev: true when pattern match is enable for all vdev
* @ptrn_id_per_vdev: true when pattern id can be same for different vdev
* @bpf_enable: true if psoc supports bpf else false
* @apf_enable: true if psoc supports bpf else false
* @arp_offload_enable: true if arp offload is supported for psoc else false
* @hw_filter_mode: which mode the hardware filter should use during DTIM
* @ns_offload_enable_static: true if psoc supports ns offload in ini else false
* @ns_offload_enable_dynamic: to enable / disable the ns offload using
* ioctl or vendor command.
* @packet_filter_enabled: true if feature is enabled by configuration
* @ssdp: true if psoc supports if ssdp configuration in wow mode
* @enable_mc_list: true if psoc supports mc addr list else false
* @active_mode_offload: true if psoc supports active mode offload else false
@@ -290,11 +291,12 @@ enum pmo_auto_pwr_detect_failure_mode {
struct pmo_psoc_cfg {
bool ptrn_match_enable_all_vdev;
bool ptrn_id_per_vdev;
bool bpf_enable;
bool apf_enable;
bool arp_offload_enable;
enum pmo_hw_filter_mode hw_filter_mode;
bool ns_offload_enable_static;
bool ns_offload_enable_dynamic;
bool packet_filter_enabled;
bool ssdp;
bool enable_mc_list;
bool active_mode_offload;

查看文件

@@ -33,6 +33,30 @@
#include "wlan_pmo_pkt_filter_public_struct.h"
#include "wlan_pmo_hw_filter_public_struct.h"
/**
* ucfg_pmo_get_apf_instruction_size() - get the current APF instruction size
* @psoc: the psoc to query
*
* Return: APF instruction size
*/
uint32_t ucfg_pmo_get_apf_instruction_size(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_pmo_get_num_packet_filters() - get the number of packet filters
* @psoc: the psoc to query
*
* Return: number of packet filters
*/
uint8_t ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_pmo_get_num_wow_filters() - get the supported number of WoW filters
* @psoc: the psoc to query
*
* Return: number of WoW filters supported
*/
uint8_t ucfg_pmo_get_num_wow_filters(struct wlan_objmgr_psoc *psoc);
/**
* ucfg_pmo_is_ap_mode_supports_arp_ns() - Check ap mode support arp&ns offload
* @psoc: objmgr psoc