diff options
| author | CNSS_WLAN Service <cnssbldsw@qualcomm.com> | 2018-02-23 02:10:29 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-02-23 02:10:29 -0800 |
| commit | d904382ef103cf38e36c19dbe5336c711b500cb7 (patch) | |
| tree | c8a0bac1cf09e6bee8e3401ff0f6f2c9f8a41775 | |
| parent | 64080d6791aeaf38176e85cb2b4e309d9cb7de0c (diff) | |
| parent | b1039610401ca65d811a14b09030a74729b8865c (diff) | |
Merge "qcacld-2.0: CL 3880548 - update fw commmon interface files" into wlan-cld2.driver.lnx.1.0
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 14 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 64 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 3 |
4 files changed, 79 insertions, 4 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index 62e89127d5a5..d4510669ebf1 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -866,6 +866,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_set_rx_filter_promiscuous_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_sar2_result_event_fixed_param, WMITLV_TAG_STRUC_WMI_SAR_CAPABILITIES, + WMITLV_TAG_STRUC_wmi_sap_obss_detection_cfg_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sap_obss_detection_info_evt_fixed_param, } WMITLV_TAG_ID; /* @@ -1216,6 +1218,7 @@ typedef enum { OP(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID) \ OP(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID) \ OP(WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID) \ + OP(WMI_SAP_OBSS_DETECTION_CFG_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -1405,6 +1408,7 @@ typedef enum { OP(WMI_PDEV_UPDATE_CTLTABLE_EVENTID) \ OP(WMI_HOST_SWFDA_EVENTID) \ OP(WMI_NDL_SCHEDULE_UPDATE_EVENTID) \ + OP(WMI_SAP_OBSS_DETECTION_REPORT_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -3005,6 +3009,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_ENABLE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param, wmi_sap_set_blacklist_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SAP_SET_BLACKLIST_PARAM_CMDID); +/* SAP OBSS detection offload param Cmd */ +#define WMITLV_TABLE_WMI_SAP_OBSS_DETECTION_CFG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_obss_detection_cfg_cmd_fixed_param, wmi_sap_obss_detection_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OBSS_DETECTION_CFG_CMDID); + /* APFIND Request */ #define WMITLV_TABLE_WMI_APFIND_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_apfind_cmd_param, wmi_apfind_cmd_param, fixed_param, WMITLV_SIZE_FIX) \ @@ -4295,6 +4304,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_ADD_STA_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param, wmi_sap_ofl_del_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_DEL_STA_EVENTID); +/* SAP OBSS detection offload event */ +#define WMITLV_TABLE_WMI_SAP_OBSS_DETECTION_REPORT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_obss_detection_info_evt_fixed_param, wmi_sap_obss_detection_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OBSS_DETECTION_REPORT_EVENTID); + /* Set OCB schedule cmd, DEPRECATED */ #define WMITLV_TABLE_WMI_OCB_SET_SCHED_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, wmi_ocb_set_sched_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index af8b9498091b..91b082531fb3 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -1028,7 +1028,7 @@ typedef enum { /* enable/disable AP Authentication offload */ WMI_SAP_OFL_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SAP_OFL), WMI_SAP_SET_BLACKLIST_PARAM_CMDID, - + WMI_SAP_OBSS_DETECTION_CFG_CMDID, /** Out-of-context-of-BSS (OCB) commands */ WMI_OCB_SET_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OCB), WMI_OCB_SET_UTC_TIME_CMDID, @@ -1556,7 +1556,7 @@ typedef enum { /* SAP Authentication offload events */ WMI_SAP_OFL_ADD_STA_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SAP_OFL), WMI_SAP_OFL_DEL_STA_EVENTID, - + WMI_SAP_OBSS_DETECTION_REPORT_EVENTID, /** Out-of-context-of-bss (OCB) events */ WMI_OCB_SET_CONFIG_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_OCB), @@ -11420,6 +11420,7 @@ typedef enum event_type_e { WOW_CRITICAL_LOG_EVENT, WOW_CHIP_POWER_FAILURE_DETECT_EVENT, WOW_11D_SCAN_EVENT, + WOW_SAP_OBSS_DETECTION_EVENT, } WOW_WAKE_EVENT_TYPE; typedef enum wake_reason_e { @@ -11476,6 +11477,7 @@ typedef enum wake_reason_e { WOW_REASON_THERMAL_CHANGE, WOW_REASON_OIC_PING_OFFLOAD, WOW_REASON_WLAN_DHCP_RENEW, + WOW_REASON_SAP_OBSS_DETECTION, WOW_REASON_DEBUG_TEST = 0xFF, } WOW_WAKE_REASON_TYPE; @@ -17214,6 +17216,63 @@ typedef struct { */ } wmi_apfind_event_hdr; +/* SAP obss detection offload types */ +typedef enum { + WMI_SAP_OBSS_DETECTION_MODE_DISABLED = 0, /* fw to disable the detection */ + WMI_SAP_OBSS_DETECTION_MODE_PRESENT_NOTIFY = 1, /* if the matching beacon is present, notify host immediately */ + WMI_SAP_OBSS_DETECTION_MODE_ABSENT_TIMEOUT_NOTIFY = 2,/* if the matching beacon is absent for the timeout period, notify host */ +} WMI_SAP_OBSS_DETECTION_MODE; + +typedef struct wmi_sap_obss_detection_cfg_cmd_s { + A_UINT32 tlv_header; /* tag = WMITLV_TAG_STRUC_wmi_sap_obss_detection_cfg_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 detect_period_ms; + + /* detect whether there is 11b ap/ibss */ + A_UINT32 b_ap_detect_mode; /* refer WMI_SAP_OBSS_DETECTION_MODE */ + + /* detect whether there is 11b sta connected with other APs */ + A_UINT32 b_sta_detect_mode; + + /* detect whether there is 11g AP */ + A_UINT32 g_ap_detect_mode; + + /* detect whether there is legacy 11a traffic */ + A_UINT32 a_detect_mode; + + /* detect whether there is ap which is ht legacy mode */ + A_UINT32 ht_legacy_detect_mode; + + /* detect whether there is ap which is ht mixed mode : has 11b/11g sta */ + A_UINT32 ht_mixed_detect_mode; + + /* detect whether there is ap which has 20M only station */ + A_UINT32 ht_20mhz_detect_mode; + +} wmi_sap_obss_detection_cfg_cmd_fixed_param; + +typedef enum { + WMI_SAP_OBSS_DETECTION_EVENT_REASON_NOT_SUPPORT = 0, + WMI_SAP_OBSS_DETECTION_EVENT_REASON_PRESENT_NOTIFY, + WMI_SAP_OBSS_DETECTION_EVENT_REASON_ABSENT_TIMEOUT, +} WMI_SAP_OBSS_DETECTION_EVENT_REASON; + +/* WMI_SAP_OBSS_DETECTION_MATCH_MASK is one or more of the following shift bits */ +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_11B_AP_S 0 +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_11B_STA_S 1 +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_11G_AP_S 2 +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_11A_S 3 +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_HT_LEGACY_S 4 +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_HT_MIXED_S 5 +#define WMI_SAP_OBSS_DETECTION_MATCH_BIT_HT_20MHZ_S 6 + +typedef struct wmi_sap_obss_detection_info_evt_s { + A_UINT32 tlv_header; /* tag = WMITLV_TAG_STRUC_wmi_sap_obss_detection_info_evt_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 reason; /* refer WMI_SAP_OBSS_DETECTION_EVENT_REASON */ + A_UINT32 matched_detection_masks; /* bit(s) from WMI_SAP_OBSS_DETECTION_MATCH_MASK */ + wmi_mac_addr matched_bssid_addr; /* valid when reason is WMI_SAP_OBSS_DETECTION_EVENT_REASON_PRESENT_NOTIFY */ +} wmi_sap_obss_detection_info_evt_fixed_param; /** * OCB DCC types and structures. @@ -21014,6 +21073,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); WMI_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); WMI_RETURN_STRING(WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID); + WMI_RETURN_STRING(WMI_SAP_OBSS_DETECTION_CFG_CMDID); } return "Invalid WMI cmd"; diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index ca7a6b594d7e..09493d35ce7c 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_ 478 +#define __WMI_REVISION_ 479 /** 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 a66269e36444..ec0f3206ead0 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2017 The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2018 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -768,6 +768,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(WMI_PDEV_UPDATE_PMK_CACHE_CMDID); CASE_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); CASE_RETURN_STRING(WMI_PDEV_SET_RX_FILTER_PROMISCUOUS_CMDID); + CASE_RETURN_STRING(WMI_SAP_OBSS_DETECTION_CFG_CMDID); } return "Invalid WMI cmd"; } |
