diff options
| author | Sandeep Puligilla <spuligil@qca.qualcomm.com> | 2015-08-03 20:03:14 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-08-07 14:37:25 +0530 |
| commit | e092c9dfcfcd84da8795df6d31bb516598e5418c (patch) | |
| tree | adee5d1b2fd857c64e0766082b74d5c435979f3d | |
| parent | a7edebfc4d93a6078a9298d483991f3d6b066750 (diff) | |
qcacld-2.0: CL 1354868 - update fw common interface files
add peak index into WMI_DFS_RADAR_EVENT
support channel prediction reduction for PNO scan to save power consumption
Add WMI support to enable unsolicited IPv6 Network Advertisement filtering
Change-Id: I6e22ca8282c566f9f1c4c124bb1b8bf871b8cd15
CRs-Fixed: 865207
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 16 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 56 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
4 files changed, 71 insertions, 4 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index 1c5e669fa949..8587e50aaec2 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -577,6 +577,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param, WMITLV_TAG_STRUC_WOW_IOAC_SOCK_PATTERN_T, + WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -798,7 +799,8 @@ typedef enum { OP(WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID) \ OP(WMI_SOC_SET_PCL_CMDID) \ OP(WMI_SOC_SET_HW_MODE_CMDID) \ - OP(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID) + OP(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID) \ + OP(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID) /* * IMPORTANT: Please add _ALL_ WMI Events Here. @@ -1006,6 +1008,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_WOW_ENABLE_CMDID); +/* WOW ICMPv6 NA filtering command */ +#define WMITLV_TABLE_WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + +WMITLV_CREATE_PARAM_STRUC(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID); + /* Remove Bcn Filter Cmd */ #define WMITLV_TABLE_WMI_RMV_BCN_FILTER_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param, wmi_rmv_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) @@ -1027,7 +1035,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_MODE); /* Roam scan Rssi Threshold Cmd */ #define WMITLV_TABLE_WMI_ROAM_SCAN_RSSI_THRESHOLD(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param, wmi_roam_scan_rssi_threshold_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_scan_extended_threshold_param, extended_param, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_scan_extended_threshold_param, extended_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_earlystop_rssi_thres_param, earlystop_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_RSSI_THRESHOLD); @@ -1393,7 +1402,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_LINK_STATS_CMDID); #define WMITLV_TABLE_WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param, wmi_nlo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, nlo_configured_parameters, nlo_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, nlo_channel_prediction_cfg, channel_prediction_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID); diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index c99d73ff35d3..3ba8163c7afd 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -530,6 +530,8 @@ typedef enum { WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID, /* Extend WoW command to configure app type2 parameter */ WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID, + /* enable ICMPv6 Network advertisement filtering */ + WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID, /* RTT measurement related cmd */ /** reques to make an RTT measurement */ @@ -5418,6 +5420,10 @@ typedef struct { A_UINT32 hirssi_scan_delta; /** 5G scan upper bound */ A_UINT32 hirssi_upper_bound; + /* The TLVs will follow. + * wmi_roam_scan_extended_threshold_param extended_param; + * wmi_roam_earlystop_rssi_thres_param earlystop_param; + */ } wmi_roam_scan_rssi_threshold_fixed_param; #define WMI_ROAM_5G_BOOST_PENALIZE_ALGO_FIXED 0x0 @@ -5563,6 +5569,21 @@ typedef struct { A_UINT32 rsn_mcastmgmtcipherset; } wmi_ap_profile; +/** Support early stop roaming scanning when finding a strong candidate AP + * A 'strong' candidate is + * 1) Is eligible candidate + * (all conditions are met in existing candidate selection). + * 2) Its rssi is better than earlystop threshold. + * Earlystop threshold will be relaxed as each channel is scanned. + */ +typedef struct { + A_UINT32 tlv_header; + /* Minimum RSSI threshold value for early stop, unit is dB above NF. */ + A_UINT32 roam_earlystop_thres_min; + /* Maminum RSSI threshold value for early stop, unit is dB above NF. */ + A_UINT32 roam_earlystop_thres_max; +} wmi_roam_earlystop_rssi_thres_param; + /** Beacon filter wmi command info */ #define BCN_FLT_MAX_SUPPORTED_IES 256 @@ -6289,6 +6310,15 @@ typedef struct { A_UINT32 reserved0; } wmi_wow_hostwakeup_from_sleep_cmd_fixed_param; +#define WOW_ICMPV6_NA_FILTER_DISABLE 0 +#define WOW_ICMPV6_NA_FILTER_ENABLE 1 + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 enable; /* WOW_ICMPV6_NA_FILTER_ENABLE/DISABLE */ +} wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param; + typedef struct bitmap_pattern_s { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_BITMAP_PATTERN_T */ A_UINT32 patternbuf[WOW_DEFAULT_BITMAP_PATTERN_SIZE_DWORD]; @@ -6910,6 +6940,28 @@ typedef struct nlo_configured_parameters { wmi_nlo_bcast_nw_param bcast_nw_type; /* indicates if the SSID is hidden or not */ } nlo_configured_parameters; +/* Support channel prediction for PNO scan after scanning top_k_num channels + * if stationary_threshold is met. + */ +typedef struct nlo_channel_prediction_cfg { + /* Enable or disable this feature. */ + A_UINT32 enable; + /* Top K channels will be scanned before deciding whether to further scan + * or stop. Minimum value is 3 and maximum is 5. */ + A_UINT32 top_k_num; + /* Preconfigured stationary threshold. + * Lesser value means more conservative. Bigger value means more aggressive. + * Maximum is 100 and mininum is 0. */ + A_UINT32 stationary_threshold; + /* Periodic full channel scan in milliseconds unit. + * After full_scan_period_ms since last full scan, channel prediction + * scan is suppressed and will do full scan. + * This is to help detecting sudden AP power-on or -off. Value 0 means no + * full scan at all (not recommended). + */ + A_UINT32 full_scan_period_ms; +} nlo_channel_prediction_cfg; + typedef struct wmi_nlo_config { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param */ A_UINT32 flags; @@ -6929,6 +6981,7 @@ typedef struct wmi_nlo_config { /* The TLVs will follow. * nlo_configured_parameters nlo_list[]; * A_UINT32 channel_list[]; + * nlo_channel_prediction_cfg ch_prediction_cfg; */ } wmi_nlo_config_cmd_fixed_param; @@ -8571,6 +8624,9 @@ typedef struct { /** For 4-byte aligment padding */ A_UINT8 reserved; + /** index of peak magnitude bin (signed) */ + A_INT32 peak_sidx; + } wmi_dfs_radar_event_fixed_param; typedef struct { diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index d1705d512430..497df600640b 100644 --- a/CORE/SERVICES/COMMON/wmi_version.h +++ b/CORE/SERVICES/COMMON/wmi_version.h @@ -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_ 134 +#define __WMI_REVISION_ 137 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c index 9e615c2b915a..5486452af662 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -636,6 +636,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(WMI_SOC_SET_PCL_CMDID); CASE_RETURN_STRING(WMI_SOC_SET_HW_MODE_CMDID); CASE_RETURN_STRING(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID); + CASE_RETURN_STRING(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID); } return "Invalid WMI cmd"; } |
