summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfw/wmi_tlv_defs.h10
-rwxr-xr-xfw/wmi_unified.h47
-rwxr-xr-xfw/wmi_version.h2
3 files changed, 58 insertions, 1 deletions
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index a0a3d18a49f2..eb4320bffdf1 100755
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -819,6 +819,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_tx_send_params,
WMITLV_TAG_STRUC_wmi_he_rate_set,
WMITLV_TAG_STRUC_wmi_congestion_stats,
+ WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_fixed_param,
+ WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_param_tlv,
} WMITLV_TAG_ID;
/*
@@ -1148,6 +1150,7 @@ typedef enum {
OP(WMI_VDEV_GET_ARP_STAT_CMDID) \
OP(WMI_VDEV_GET_TX_POWER_CMDID) \
OP(WMI_OFFCHAN_DATA_TX_SEND_CMDID) \
+ OP(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID) \
/* add new CMD_LIST elements above this line */
@@ -1537,6 +1540,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_START_SCAN_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID);
+/* Set scan selection duty cycle */
+#define WMITLV_TABLE_WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_fixed_param, wmi_scan_dbs_duty_cycle_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_dbs_duty_cycle_tlv_param, param, WMITLV_SIZE_VAR)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_SET_SCAN_DBS_DUTY_CYCLE_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/fw/wmi_unified.h b/fw/wmi_unified.h
index c5f28e137f62..08c0f38748a2 100755
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -271,6 +271,8 @@ typedef enum {
WMI_SCAN_PROB_REQ_OUI_CMDID,
/** config adaptive dwell scan */
WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID,
+ /** Only applicable to DBS capable product */
+ WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID,
/* PDEV(physical device) specific commands */
/** set regulatorty ctl id used by FW to determine the exact ctl power limits */
@@ -2070,6 +2072,7 @@ typedef enum {
WMI_FW_AP_RTT_RESPR = 0x00000080,
WMI_FW_NAN_RTT_INITR = 0x00000100,
WMI_FW_NAN_RTT_RESPR = 0x00000200,
+ WMI_FW_SCAN_DBS_POLICY = 0x00000400,
/*
* New fw sub feature capabilites before
* WMI_FW_MAX_SUB_FEAT_CAP
@@ -2504,6 +2507,9 @@ typedef struct {
* which is using MAC ID. 1 means PDEV ID, 0 means MAC ID.
*/
A_UINT32 use_pdev_id;
+
+ /** Maximum number of scan clients whose DBS scan duty cycle can be configured */
+ A_UINT32 max_num_dbs_scan_duty_cycle;
} wmi_resource_config;
#define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \
@@ -2732,6 +2738,8 @@ typedef struct {
A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE];
/** Number of vendor OUIs. In the TLV vendor_oui[] **/
A_UINT32 num_vendor_oui;
+ /** Scan control flags extended **/
+ A_UINT32 scan_ctrl_flags_ext;
/**
* TLV (tag length value) parameters follow the scan_cmd
@@ -2827,6 +2835,17 @@ typedef enum {
#define WMI_SCN_STOP_VAP_ALL 0x01000000
#define WMI_SCAN_STOP_ALL 0x04000000
+/** extended Scan ctrl flags **/
+#define WMI_SCAN_FLAG_EXT_DBS_SCAN_POLICY_MASK 0x00000003 /* Bit 0-1 reserved for DBS scan selection policy.*/
+
+#define WMI_SCAN_DBS_POLICY_DEFAULT 0x0 /** Select duty cycle if configured, else fall back to whatever
+ policy scan manager computes */
+#define WMI_SCAN_DBS_POLICY_FORCE_NONDBS 0x1 /** Force to select Non-DBS scan */
+#define WMI_SCAN_DBS_POLICY_IGNORE_DUTY 0x2 /** Ignore duty cycle even if configured and fall back to whatever
+ policy scan manager computes*/
+#define WMI_SCAN_DBS_POLICY_RESERVED 0x3
+#define WMI_SCAN_DBS_POLICY_MAX 0x3
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */
/** requestor requesting cancel */
@@ -18202,6 +18221,33 @@ typedef struct {
*/
} wmi_scan_adaptive_dwell_config_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_param_tlv */
+ /** module_id **/
+ A_UINT32 module_id;
+ /** number of dbs scans */
+ A_UINT32 num_dbs_scans;
+ /** number of non-dbs scans */
+ A_UINT32 num_non_dbs_scans;
+} wmi_scan_dbs_duty_cycle_tlv_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_fixed_param */
+ /* number of scan client dutycycle param elements */
+ A_UINT32 num_clients;
+ /** pdev_id for identifying the MAC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ * In non-DBDC case host should set it to 0
+ */
+ A_UINT32 pdev_id;
+/**
+ * followed by TLV (tag length value) parameters array
+ * The TLV's are:
+ * wmi_scan_selection_duty_cycle_tlv_param[num_clients];
+ */
+} wmi_scan_dbs_duty_cycle_fixed_param;
+
+
typedef enum {
WMI_REG_EXT_FCC_MIDBAND = 0,
WMI_REG_EXT_JAPAN_MIDBAND = 1,
@@ -18810,6 +18856,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID);
WMI_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID);
WMI_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID);
+ WMI_RETURN_STRING(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID);
}
return "Invalid WMI cmd";
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index cb360193c96a..bc57af7e4c15 100755
--- a/fw/wmi_version.h
+++ b/fw/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_ 373
+#define __WMI_REVISION_ 375
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work