summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnurag Chouhan <achouhan@qti.qualcomm.com>2016-04-12 14:12:39 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-04-14 14:14:27 +0530
commit0c825cdb79599b860192bbab5d9861cb48585ee5 (patch)
treea1c95a2b24d76084836bc6a813563cec4043f313
parentb518c26d00caf0e5d1b59358368a26cc7e97f694 (diff)
qcacld-2.0: CL 1492713 - update fw common interface files
WMI changes for adaptive dwell time scan Change-Id: Ibdd1bdd607b3acac5d55312ee2595c32892c89b5 CRs-Fixed: 865207
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h12
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h45
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
4 files changed, 58 insertions, 2 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index c25ef940b779..7b92d3939c21 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -700,6 +700,8 @@ typedef enum {
WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES,
WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param,
+ WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_parameters_tlv,
+ WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -982,7 +984,8 @@ typedef enum {
OP(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID) \
OP(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID) \
OP(WMI_PDEV_WAL_POWER_DEBUG_CMDID) \
- OP(WMI_VDEV_WISA_CMDID)
+ OP(WMI_VDEV_WISA_CMDID) \
+ OP(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
@@ -1319,6 +1322,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PLMREQ_STOP_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_START_SCAN_CMDID);
+/* Scan adaptive dwell mode configuration */
+#define WMITLV_TABLE_WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param, wmi_scan_adaptive_dwell_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_adaptive_dwell_parameters_tlv, param, WMITLV_SIZE_VAR)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID);
+
/* Start ExtScan Cmd */
#define WMITLV_TABLE_WMI_EXTSCAN_START_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param, wmi_extscan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 89f370a027c8..33471779bb5c 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -264,6 +264,8 @@ typedef enum {
/** set OUI to be used in probe request if enabled */
WMI_SCAN_PROB_REQ_OUI_CMDID,
+ /** config adaptive dwell scan */
+ WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID,
/* PDEV(physical device) specific commands */
/** set regulatorty ctl id used by FW to determine the exact ctl power limits */
@@ -2511,6 +2513,27 @@ typedef struct {
/** always do passive scan on passive channels */
#define WMI_SCAN_FLAG_STRICT_PASSIVE_ON_PCHN 0x10000
+/** for adaptive scan mode using 3 bits (21 - 23 bits) */
+#define WMI_SCAN_DWELL_MODE_MASK 0x00E00000
+#define WMI_SCAN_DWELL_MODE_SHIFT 21
+
+typedef enum {
+ WMI_SCAN_DWELL_MODE_DEFAULT = 0,
+ WMI_SCAN_DWELL_MODE_CONSERVATIVE = 1,
+ WMI_SCAN_DWELL_MODE_MODERATE = 2,
+ WMI_SCAN_DWELL_MODE_AGGRESSIVE = 3,
+ WMI_SCAN_DWELL_MODE_STATIC = 4,
+} WMI_SCAN_DWELL_MODE;
+
+#define WMI_SCAN_SET_DWELL_MODE(flag, mode) \
+ do { \
+ (flag) |= (((mode) << WMI_SCAN_DWELL_MODE_SHIFT) & \
+ WMI_SCAN_DWELL_MODE_MASK); \
+ } while(0)
+
+#define WMI_SCAN_GET_DWELL_MODE(flag) \
+ (((flag) & WMI_SCAN_DWELL_MODE_MASK) >> WMI_SCAN_DWELL_MODE_SHIFT)
+
/** WMI_SCAN_CLASS_MASK must be the same value as IEEE80211_SCAN_CLASS_MASK */
#define WMI_SCAN_CLASS_MASK 0xFF000000
@@ -14663,6 +14686,28 @@ typedef struct {
// num_phy WMI_HAL_REG_CAPABILITIES_EXT TLV's
} WMI_SOC_HAL_REG_CAPABILITIES;
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_parameters_tlv */
+ /** global default adaptive dwell mode, used when WMI_SCAN_DWELL_MODE_DEFAULT */
+ A_UINT32 default_adaptive_dwell_mode;
+ /** the weight to calculate the average low pass filter for channel congestion. 0-100 */
+ A_UINT32 adapative_lpf_weight;
+ /** interval to monitor passive scan in msec */
+ A_UINT32 passive_monitor_interval_ms;
+ /** % of wifi activity to switch from passive to active 0-100 */
+ A_UINT32 wifi_activity_threshold_pct;
+} wmi_scan_adaptive_dwell_parameters_tlv;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param */
+ /* globally enable/disable adaptive dwell */
+ A_UINT32 enable;
+/**
+ * followed by TLV (tag length value) parameters array
+ * The TLV's are:
+ * wmi_scan_adaptive_dwell_parameters_tlv param[]; (0 or 1 elements)
+ */
+} wmi_scan_adaptive_dwell_config_fixed_param;
/* ADD NEW DEFS HERE */
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 57f3f1b8712e..c8b564d59560 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_ 236
+#define __WMI_REVISION_ 237
/** 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 55fb484b3ed8..c561ee9ce617 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -698,6 +698,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID);
CASE_RETURN_STRING(WMI_PDEV_WAL_POWER_DEBUG_CMDID);
CASE_RETURN_STRING(WMI_VDEV_WISA_CMDID);
+ CASE_RETURN_STRING(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID);
}
return "Invalid WMI cmd";
}