summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortinlin <tinlin@codeaurora.org>2017-11-20 18:26:32 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-11-28 02:33:21 -0800
commitf12d90ae9ff1c97e76553e44d8eb33a5cc3d45a3 (patch)
tree0d3ce6a4e1ca3b4acdaa99e1230de53b44a37bb8
parentf36c8f552b033e6a63c75bf1250ac733cba97e8c (diff)
qcacld-2.0: CL 3174922 - Update fw common interface files
Add WMI_VDEV_LIMIT_OFFCHAN_CMDID. WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID & EVENTID of 3094881 is not propagated. Fix them here. Change-Id: I572ee48d6582063c98a09c2dbd9a33026ab61681 CRs-fixed: 865207
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h1
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h23
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h58
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
4 files changed, 83 insertions, 1 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index 1256fe610845..3fcaae8a2ffe 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -303,6 +303,7 @@ typedef enum {
WMI_SERVICE_CHAN_LOAD_INFO=128, /* The values in WMI_CHAN_INFO_EVENTID is the difference in cycle counters */
WMI_SERVICE_TX_PPDU_INFO_STATS_SUPPORT=129, /* support to report tx ppdu info stats via htt events */
+ WMI_SERVICE_VDEV_LIMIT_OFFCHAN_SUPPORT=130, /* support to report the offchannel duration limiting capability on connected interface */
/******* ADD NEW SERVICES HERE *******/
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index 50f6e1d76835..71bcfff50e8b 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -830,6 +830,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_request_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_event_fixed_param,
WMITLV_TAG_STRUC_wmi_roam_lca_disallow_config_tlv_param,
+ WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1162,6 +1163,9 @@ typedef enum {
OP(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID) \
OP(WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID) \
OP(WMI_THERM_THROT_SET_CONF_CMDID) \
+ OP(WMI_OEM_DMA_RING_CFG_REQ_CMDID) \
+ OP(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID) \
+ OP(WMI_VDEV_LIMIT_OFFCHAN_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -1343,6 +1347,9 @@ typedef enum {
OP(WMI_OFFCHAN_DATA_TX_COMPLETION_EVENTID) \
OP(WMI_THERM_THROT_STATS_EVENTID) \
OP(WMI_PDEV_DIV_RSSI_ANTID_EVENTID) \
+ OP(WMI_OEM_DMA_RING_CFG_RSP_EVENTID) \
+ OP(WMI_OEM_DMA_BUF_RELEASE_EVENTID) \
+ OP(WMI_PDEV_BSS_CHAN_INFO_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -2166,11 +2173,22 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_CONFIG_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID);
+#define WMITLV_TABLE_WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_request_fixed_param, wmi_pdev_bss_chan_info_request_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID);
+
/* VDEV Get Tx power Cmd */
#define WMITLV_TABLE_WMI_VDEV_GET_TX_POWER_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_tx_power_cmd_fixed_param, wmi_vdev_get_tx_power_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TX_POWER_CMDID);
+/* Limit Offchannel duration Cmd */
+#define WMITLV_TABLE_WMI_VDEV_LIMIT_OFFCHAN_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param, wmi_vdev_limit_offchan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_LIMIT_OFFCHAN_CMDID);
+
/* PDEV Set Base Mac Address Cmd */
#define WMITLV_TABLE_WMI_PDEV_SET_BASE_MACADDR_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, wmi_pdev_set_base_macaddr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -3441,6 +3459,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TPC_CONFIG_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_div_rssi_antid_event_fixed_param, wmi_pdev_div_rssi_antid_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DIV_RSSI_ANTID_EVENTID);
+/* PDEV BSS CHAN info Event */
+#define WMITLV_TABLE_WMI_PDEV_BSS_CHAN_INFO_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_event_fixed_param, wmi_pdev_bss_chan_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_BSS_CHAN_INFO_EVENTID);
+
/* VDEV Tx Power Event */
#define WMITLV_TABLE_WMI_VDEV_GET_TX_POWER_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_tx_power_event_fixed_param, wmi_vdev_get_tx_power_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 1144995f71c8..871064757efe 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -432,6 +432,8 @@ typedef enum {
/** get tx power for the current vdev */
WMI_VDEV_GET_TX_POWER_CMDID,
+ /* limit STA offchannel activity */
+ WMI_VDEV_LIMIT_OFFCHAN_CMDID,
/* peer specific commands */
@@ -1135,6 +1137,9 @@ typedef enum {
/** Report chain RSSI and antenna index to host */
WMI_PDEV_DIV_RSSI_ANTID_EVENTID,
+ /** provide noise floor and cycle counts for a channel */
+ WMI_PDEV_BSS_CHAN_INFO_EVENTID,
+
/* VDEV specific events */
/** VDEV started event in response to VDEV_START request */
WMI_VDEV_START_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VDEV),
@@ -3909,6 +3914,26 @@ typedef struct {
A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller */
} wmi_vdev_get_tx_power_event_fixed_param;
+typedef enum {
+ /** Limit the offchannel duration */
+ WMI_VDEV_LIMIT_OFFCHAN_ENABLE = 0x1,
+ /** Skip DFS channels from Scan channel list.
+ * valid for both host scans and FW scans */
+ WMI_VDEV_LIMIT_OFFCHAN_SKIP_DFS = 0x2,
+} wmi_vdev_limit_offchan_flags;
+
+typedef struct {
+ A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param */
+ /** Limit the duration of offchannel events requested by the vdev corresponding to the specified vdev_id */
+ A_UINT32 vdev_id;
+ /** see enum wmi_vdev_limit_offchan_flags */
+ A_UINT32 flags;
+ /** max offchannel time allowed in msec when WMI_VDEV_LIMIT_OFFCHAN_ENABLE flag is set */
+ A_UINT32 max_offchan_time;
+ /** rest time in msec on the BSS channel */
+ A_UINT32 rest_time;
+} wmi_vdev_limit_offchan_cmd_fixed_param;
+
/* information sub element id for QSBW, expected value is 0x02 */
#define WMI_CSA_EVENT_QSBW_ISE_ID_MASK 0x000000FF
/* length of QSBW ISE data, expected value is 0x02 */
@@ -4459,6 +4484,11 @@ typedef struct {
wmi_mac_addr macaddr;
} wmi_pdev_div_get_rssi_antid_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_request_fixed_param */
+ A_UINT32 param; /* 1 = read only, 2= read and clear */
+} wmi_pdev_bss_chan_info_request_fixed_param;
+
#define WMI_FAST_DIVERSITY_BIT_OFFSET 0
#define WMI_SLOW_DIVERSITY_BIT_OFFSET 1
@@ -4646,6 +4676,31 @@ typedef struct {
} wmi_pdev_div_rssi_antid_event_fixed_param;
typedef struct {
+ A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_event_fixed_param */
+ A_UINT32 freq; /* Units in MHz */
+ A_INT32 noise_floor; /* units are dBm */
+
+ /* rx clear - how often the channel was unused */
+ A_UINT32 rx_clear_count_low; /* low 31 bits of rx_clear cnt in 64bits format */
+ A_UINT32 rx_clear_count_high; /* high 31 bits of rx_clear cnt in 64bits format */
+
+ /* cycle count - elapsed time during the measured period, in clock ticks */
+ A_UINT32 cycle_count_low; /* low 31 bits of cycle cnt in 64bits format */
+ A_UINT32 cycle_count_high; /* high 31 bits of cycle cnt in 64bits format */
+
+ /* tx cycle count - elapsed time spent in tx, in clock ticks */
+ A_UINT32 tx_cycle_count_low; /* low 31 bits of tx_cycle cnt in 64bits format */
+ A_UINT32 tx_cycle_count_high; /* high 31 bits of tx_cycle cnt in 64bits format */
+
+ /* rx cycle count - elapsed time spent in rx, in clock ticks */
+ A_UINT32 rx_cycle_count_low; /* low 31 bits of rx_cycle cnt in 64bits format */
+ A_UINT32 rx_cycle_count_high; /* high 31 bits of rx_cycle cnt in 64bits format */
+
+ A_UINT32 rx_bss_cycle_count_low; /* low 31 bits of rx cycle cnt for my bss in 64bits format */
+ A_UINT32 rx_bss_cycle_count_high; /* high 31 bits of rx_cycle cnt for my bss in 64bits format */
+} wmi_pdev_bss_chan_info_event_fixed_param;
+
+typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param */
A_UINT32 periodCnt;
A_UINT32 L1Cnt;
@@ -19368,6 +19423,9 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID);
WMI_RETURN_STRING(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID);
WMI_RETURN_STRING(WMI_THERM_THROT_SET_CONF_CMDID);
+ WMI_RETURN_STRING(WMI_OEM_DMA_RING_CFG_REQ_CMDID);
+ WMI_RETURN_STRING(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID);
+ WMI_RETURN_STRING(WMI_VDEV_LIMIT_OFFCHAN_CMDID);
}
return "Invalid WMI cmd";
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 1e2660491c24..df82b3234fe2 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_ 406
+#define __WMI_REVISION_ 407
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work