summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCNSS_WLAN Service <cnssbldsw@qualcomm.com>2018-02-23 02:10:29 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2018-02-23 02:10:29 -0800
commitd904382ef103cf38e36c19dbe5336c711b500cb7 (patch)
treec8a0bac1cf09e6bee8e3401ff0f6f2c9f8a41775
parent64080d6791aeaf38176e85cb2b4e309d9cb7de0c (diff)
parentb1039610401ca65d811a14b09030a74729b8865c (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.h14
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h64
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c3
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";
}