qcacld-3.0: CL 1431762 update fw common interface files

qcacld-2.0 to qcacld-3.0 propagation

Update to add WMI interface for Berkeley packet filter feature.

Change-Id: Ib531691c227a4b9e4c4087f6eaf08796677c93c1
CRs-fixed: 865207
Tento commit je obsažen v:
Manikandan Mohan
2015-12-23 13:53:34 -08:00
odevzdal Akash Patel
rodič 7a32f7e9b1
revize 130eb5797f
5 změnil soubory, kde provedl 110 přidání a 3 odebrání

Zobrazit soubor

@@ -743,6 +743,11 @@ static uint8_t *get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID);
CASE_RETURN_STRING(WMI_AP_PS_EGAP_PARAM_CMDID);
CASE_RETURN_STRING(WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID);
CASE_RETURN_STRING(WMI_BPF_GET_CAPABILITY_CMDID);
CASE_RETURN_STRING(WMI_BPF_GET_VDEV_STATS_CMDID);
CASE_RETURN_STRING(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID);
CASE_RETURN_STRING(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID);
}
return "Invalid WMI cmd";
}

Zobrazit soubor

@@ -139,6 +139,7 @@ typedef enum {
WMI_SERVICE_BSS_CHANNEL_INFO_64, /* BSS channel info (freq, noise floor, 64-bit counters) event support */
WMI_SERVICE_ENTERPRISE_MESH, /* Enterprise MESH Service Support */
WMI_SERVICE_RESTRT_CHNL_SUPPORT, /* Restricted Channel Support */
WMI_SERVICE_BPF_OFFLOAD, /* FW supports bpf offload */
WMI_MAX_SERVICE = 128 /* max service */
} WMI_SERVICE;

Zobrazit soubor

@@ -605,6 +605,12 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param,
WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_chainmask_list,
WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param,
WMITLV_TAG_STRUC_wmi_bpf_get_capability_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_bpf_capability_info_evt_fixed_param,
WMITLV_TAG_STRUC_wmi_bpf_get_vdev_stats_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param,
WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -844,7 +850,12 @@ typedef enum {
OP(WMI_AP_PS_EGAP_PARAM_CMDID) \
OP(WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID) \
OP(WMI_TRANSFER_DATA_TO_FLASH_CMDID) \
OP(WMI_OEM_REQUEST_CMDID)
OP(WMI_OEM_REQUEST_CMDID) \
OP(WMI_BPF_GET_CAPABILITY_CMDID) \
OP(WMI_BPF_GET_VDEV_STATS_CMDID) \
OP(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID) \
OP(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
* Otherwise, these WMI TLV Functions will be process them.
@@ -963,7 +974,9 @@ typedef enum {
OP(WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID) \
OP(WMI_OEM_RESPONSE_EVENTID) \
OP(WMI_PDEV_UTF_SCPC_EVENTID) \
OP(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID)
OP(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID) \
OP(WMI_BPF_CAPABILIY_INFO_EVENTID) \
OP(WMI_BPF_VDEV_STATS_INFO_EVENTID)
/* TLV definitions of WMI commands */
@@ -2227,6 +2240,26 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NLO_CONFIGURE_MAWC_CMDID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param, wmi_extscan_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CONFIGURE_MAWC_CMDID);
/* bpf offload capability get cmd */
#define WMITLV_TABLE_WMI_BPF_GET_CAPABILITY_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_get_capability_cmd_fixed_param, wmi_bpf_get_capability_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_CAPABILITY_CMDID);
/* bpf offload get vdev status cmd */
#define WMITLV_TABLE_WMI_BPF_GET_VDEV_STATS_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_get_vdev_stats_cmd_fixed_param, wmi_bpf_get_vdev_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_VDEV_STATS_CMDID);
/* bpf offload set vdev instructions cmd */
#define WMITLV_TABLE_WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param, wmi_bpf_set_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID);
/* bpf offload delete vdev instructions cmd */
#define WMITLV_TABLE_WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, wmi_bpf_del_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID);
/* Set rssi monitoring config Cmd */
#define WMITLV_TABLE_WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_fixed_param, wmi_rssi_breach_monitor_config_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -3030,6 +3063,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MAWC_ENABLE_SENSOR_EVENTID);
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param, wmi_sta_smps_force_mode_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID);
/* bpf offload capability info event */
#define WMITLV_TABLE_WMI_BPF_CAPABILIY_INFO_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_capability_info_evt_fixed_param, wmi_bpf_capability_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_CAPABILIY_INFO_EVENTID);
/* bpf offload vdev status info event */
#define WMITLV_TABLE_WMI_BPF_VDEV_STATS_INFO_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param, wmi_bpf_vdev_stats_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_BPF_VDEV_STATS_INFO_EVENTID);
#ifdef __cplusplus
}
#endif

Zobrazit soubor

@@ -231,6 +231,7 @@ typedef enum {
WMI_GRP_PKT_FILTER,
WMI_GRP_MAWC,
WMI_GRP_PMF_OFFLOAD,
WMI_GRP_BPF_OFFLOAD, /* Berkeley Packet Filter */
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -869,6 +870,11 @@ typedef enum {
WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID =
WMI_CMD_GRP_START_ID(WMI_GRP_PMF_OFFLOAD),
/** WMI commands related to pkt filter (BPF) offload */
WMI_BPF_GET_CAPABILITY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_BPF_OFFLOAD),
WMI_BPF_GET_VDEV_STATS_CMDID,
WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID,
WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID,
} WMI_CMD_ID;
typedef enum {
@@ -1201,6 +1207,10 @@ typedef enum {
/** Motion Aided WiFi Connectivity (MAWC) events */
WMI_MAWC_ENABLE_SENSOR_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MAWC),
/** pkt filter (BPF) offload relevant events */
WMI_BPF_CAPABILIY_INFO_EVENTID =
WMI_EVT_GRP_START_ID(WMI_GRP_BPF_OFFLOAD),
WMI_BPF_VDEV_STATS_INFO_EVENTID,
} WMI_EVT_ID;
/* defines for OEM message sub-types */
@@ -6968,6 +6978,7 @@ typedef enum wake_reason_e {
WOW_REASON_REASSOC_REQ_RECV,
WOW_REASON_REASSOC_RES_RECV,
WOW_REASON_ACTION_FRAME_RECV,
WOW_REASON_BPF_ALLOW,
WOW_REASON_DEBUG_TEST = 0xFF,
} WOW_WAKE_REASON_TYPE;
@@ -12519,6 +12530,53 @@ typedef struct {
*/
} wmi_scpc_event_fixed_param;
/* bpf interface structure */
typedef struct wmi_bpf_get_capability_cmd_s {
A_UINT32 tlv_header;
A_UINT32 reserved; /* reserved for future use - must be filled with 0x0 */
} wmi_bpf_get_capability_cmd_fixed_param;
typedef struct wmi_bpf_capability_info_evt_s {
A_UINT32 tlv_header;
A_UINT32 bpf_version; /* fw's implement version */
A_UINT32 max_bpf_filters; /* max filters that fw supports */
A_UINT32 max_bytes_for_bpf_inst; /* the maximum bytes that can be used as bpf instructions */
} wmi_bpf_capability_info_evt_fixed_param;
/* bit 0 of flags: report counters */
#define WMI_BPF_GET_VDEV_STATS_FLAG_CTR_S 0
#define WMI_BPF_GET_VDEV_STATS_FLAG_CTR_M 0x1
typedef struct wmi_bpf_get_vdev_stats_cmd_s {
A_UINT32 tlv_header;
A_UINT32 flags;
A_UINT32 vdev_id;
} wmi_bpf_get_vdev_stats_cmd_fixed_param;
typedef struct wmi_bpf_vdev_stats_info_evt_s {
A_UINT32 tlv_header;
A_UINT32 vdev_id;
A_UINT32 num_filters;
A_UINT32 num_checked_pkts;
A_UINT32 num_dropped_pkts;
} wmi_bpf_vdev_stats_info_evt_fixed_param;
typedef struct wmi_bpf_set_vdev_instructions_cmd_s {
A_UINT32 tlv_header;
A_UINT32 vdev_id;
A_UINT32 filter_id;
A_UINT32 bpf_version; /* host bpf version */
A_UINT32 total_length;
A_UINT32 current_offset;
A_UINT32 current_length;
} wmi_bpf_set_vdev_instructions_cmd_fixed_param;
#define BPF_FILTER_ID_ALL 0xFFFFFFFF
typedef struct wmi_bpf_del_vdev_instructions_cmd_s {
A_UINT32 tlv_header;
A_UINT32 vdev_id;
A_UINT32 filter_id; /* BPF_FILTER_ID_ALL means delete all */
} wmi_bpf_del_vdev_instructions_cmd_fixed_param;
/* ADD NEW DEFS HERE */
/*****************************************************************************

Zobrazit soubor

@@ -36,7 +36,7 @@
#define __WMI_VER_MINOR_ 0
/** WMI revision number has to be incremented when there is a
* change that may or may not break compatibility */
#define __WMI_REVISION_ 189
#define __WMI_REVISION_ 190
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work