Browse Source

qcacld-3.0: CL 1685950 - update fw common interface files

WMI defs for DFS offload

Change-Id: Ief6ea8771ec130a94f19c7296930534364bdd2fb
CRs-Fixed: 865207
Sandeep Puligilla 8 years ago
parent
commit
9ff96571b0
4 changed files with 140 additions and 2 deletions
  1. 1 0
      target/inc/wmi_services.h
  2. 50 0
      target/inc/wmi_tlv_defs.h
  3. 88 1
      target/inc/wmi_unified.h
  4. 1 1
      target/inc/wmi_version.h

+ 1 - 0
target/inc/wmi_services.h

@@ -270,6 +270,7 @@ typedef enum {
 	 * support bigger MSDU ID partition
 	 */
 	WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT = 112,
+	WMI_SERVICE_DFS_PHYERR_OFFLOAD = 113,
 
 	/*** ADD NEW SERVICES HERE UNTIL ALL VALUES UP TO 128 ARE USED ***/
 

+ 50 - 0
target/inc/wmi_tlv_defs.h

@@ -757,6 +757,13 @@ typedef enum {
 	WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param,
 	WMITLV_TAG_STRUC_wmi_sar_limits_cmd_fixed_param,
 	WMITLV_TAG_STRUC_wmi_sar_limit_cmd_row,
+	WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_vdev_adfs_ch_cfg_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_abort_cmd_fixed_param,
+	WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param,
+	WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param,
+	WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param,
 
 } WMITLV_TAG_ID;
 
@@ -1063,6 +1070,10 @@ typedef enum {
 	OP(WMI_REQUEST_WLAN_STATS_CMDID) \
 	OP(WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID) \
 	OP(WMI_SAR_LIMITS_CMDID) \
+	OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID) \
+	OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID) \
+	OP(WMI_VDEV_ADFS_CH_CFG_CMDID) \
+	OP(WMI_VDEV_ADFS_OCAC_ABORT_CMDID) \
 	/* add new CMD_LIST elements above this line */
 
 /*
@@ -1225,6 +1236,9 @@ typedef enum {
 	OP(WMI_REPORT_RX_AGGR_FAILURE_EVENTID) \
 	OP(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID) \
 	OP(WMI_TBTTOFFSET_EXT_UPDATE_EVENTID) \
+	OP(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID) \
+	OP(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID) \
+	OP(WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID) \
 	/* add new EVT_LIST elements above this line */
 
 /* TLV definitions of WMI commands */
@@ -2072,6 +2086,30 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DFS_PHYERR_FILTER_ENA_CMDID);
 
 WMITLV_CREATE_PARAM_STRUC(WMI_DFS_PHYERR_FILTER_DIS_CMDID);
 
+/* DFS phyerr processing offload enable cmd */
+#define WMITLV_TABLE_WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID);
+
+/* DFS phyerr processing offload disble cmd */
+#define WMITLV_TABLE_WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID);
+
+/* set ADFS channel config cmd */
+#define WMITLV_TABLE_WMI_VDEV_ADFS_CH_CFG_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ch_cfg_cmd_fixed_param, wmi_vdev_adfs_ch_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADFS_CH_CFG_CMDID);
+
+/* DFS abort ADFS ocac currently in progress */
+#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_ABORT_CMDID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_abort_cmd_fixed_param, wmi_vdev_adfs_ocac_abort_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADFS_OCAC_ABORT_CMDID);
+
 /* WOW Add Wake Pattern Cmd */
 #define WMITLV_TABLE_WMI_WOW_ADD_WAKE_PATTERN_CMDID(id,op,buf,len) \
 	WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param, WMI_WOW_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -3569,6 +3607,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TX_FAIL_CNT_THR_EVENTID);
 	WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_radar_event_fixed_param, wmi_dfs_radar_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_DFS_RADAR_EVENTID);
 
+#define WMITLV_TABLE_WMI_PDEV_DFS_RADAR_DETECTION_EVENTID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID);
+
+#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param, wmi_vdev_adfs_ocac_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID);
+
+#define WMITLV_TABLE_WMI_VDEV_DFS_CAC_COMPLETE_EVENTID(id, op, buf, len) \
+	WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param, wmi_vdev_dfs_cac_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID);
+
 /* Thermal Event */
 #define WMITLV_TABLE_WMI_THERMAL_MGMT_EVENTID(id,op,buf,len) \
 	WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param, wmi_thermal_mgmt_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)

+ 88 - 1
target/inc/wmi_unified.h

@@ -525,6 +525,14 @@ typedef enum {
 	WMI_DFS_PHYERR_FILTER_ENA_CMDID,
 	/** enable DFS phyerr/parse filter offload */
 	WMI_DFS_PHYERR_FILTER_DIS_CMDID,
+	/** enable DFS phyerr processing offload */
+	WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID,
+	/** disable DFS phyerr processing offload */
+	WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID,
+	/** set ADFS channel config */
+	WMI_VDEV_ADFS_CH_CFG_CMDID,
+	/** abort ADFS off-channel-availability-check currently in progress */
+	WMI_VDEV_ADFS_OCAC_ABORT_CMDID,
 
 	/* Roaming specific  commands */
 	/** set roam scan mode */
@@ -1295,7 +1303,12 @@ typedef enum {
 	/*chatter query reply event */
 	WMI_CHATTER_PC_QUERY_EVENTID =
 		WMI_EVT_GRP_START_ID(WMI_GRP_CHATTER),
-
+	/** DFS related events */
+	WMI_PDEV_DFS_RADAR_DETECTION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_DFS),
+	/** Indicate channel-availability-check completion event to host */
+	WMI_VDEV_DFS_CAC_COMPLETE_EVENTID,
+	/** Indicate off-channel-availability-check completion event to host */
+	WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID,
 	/** echo event in response to echo command */
 	WMI_ECHO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MISC),
 
@@ -5976,6 +5989,8 @@ typedef struct {
 	/** the DBS policy manager indicates the preferred number of receive streams. */
 	A_UINT32 preferred_rx_streams;
 	A_UINT32 he_ops; /* refer to WMI_HEOPS_xxx macros */
+	A_UINT32 cac_duration_ms;  /* in milliseconds */
+	A_UINT32 regdomain;
 	/* The TLVs follows this structure:
 	 *     wmi_channel chan;   //WMI channel
 	 *     wmi_p2p_noa_descriptor  noa_descriptors[]; //actual p2p NOA descriptor from scan entry
@@ -9383,6 +9398,10 @@ enum {
 	 * to request it.
 	 */
 	WMI_WOW_FLAG_SEND_PM_PME       = 0x00000002,
+	/* Flag to indicate unit test */
+	WMI_WOW_FLAG_UNIT_TEST_ENABLE  = 0x00000004,
+	/* Force HTC wakeup */
+	WMI_WOW_FLAG_DO_HTC_WAKEUP     = 0x00000008,
 };
 
 
@@ -10963,6 +10982,74 @@ typedef struct {
 	A_UINT32 pdev_id;
 } wmi_dfs_phyerr_filter_dis_cmd_fixed_param;
 
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 pdev_id;
+} wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param;
+
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 pdev_id;
+} wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param;
+
+typedef enum {
+	QUICK_OCAC = 0,
+	EXTENSIVE_OCAC,
+} WMI_ADFS_OCAC_MODE;
+
+typedef struct {
+	A_UINT32  tlv_header;
+	A_UINT32  vdev_id;
+	A_UINT32  ocac_mode;  /* WMI_ADFS_OCAC_MODE */
+	A_UINT32  min_duration_ms; /* in milliseconds */
+	A_UINT32  max_duration_ms; /* in milliseconds */
+	A_UINT32  chan_freq;   /* in MHz */
+	A_UINT32  chan_width;  /* in MHz */
+	A_UINT32  center_freq; /* in MHz */
+} wmi_vdev_adfs_ch_cfg_cmd_fixed_param;
+
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 vdev_id;
+} wmi_vdev_adfs_ocac_abort_cmd_fixed_param;
+
+typedef enum {
+	IN_SERVICE_MODE = 0,
+	OCAC_MODE,
+} WMI_DFS_RADAR_DETECTION_MODE;
+
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 pdev_id;
+	/* In-service mode or O-CAC mode */
+	A_UINT32 detection_mode; /* WMI_DFS_RADAR_DETECTION_MODE */
+	A_UINT32 chan_freq;  /* in MHz */
+	A_UINT32 chan_width; /* in MHz */
+	A_UINT32 detector_id;
+	A_UINT32 segment_id;
+	A_UINT32 timestamp;
+	A_UINT32 is_chirp;
+} wmi_pdev_dfs_radar_detection_event_fixed_param;
+
+typedef enum {
+	OCAC_COMPLETE = 0,
+	OCAC_ABORT,
+} WMI_VDEV_OCAC_COMPLETE_STATUS;
+
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 vdev_id;
+	A_UINT32 chan_freq;   /* in MHz */
+	A_UINT32 chan_width;  /* in MHz */
+	A_UINT32 center_freq; /* in MHz */
+	A_UINT32 status;   /* WMI_VDEV_OCAC_COMPLETE_STATUS */
+} wmi_vdev_adfs_ocac_complete_event_fixed_param;
+
+typedef struct {
+	A_UINT32 tlv_header;
+	A_UINT32 vdev_id;
+} wmi_vdev_dfs_cac_complete_event_fixed_param;
+
 /** TDLS COMMANDS */
 
 /* WMI_TDLS_SET_STATE_CMDID */

+ 1 - 1
target/inc/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_ 306
+#define __WMI_REVISION_ 307
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work