Browse Source

fw-api: CL 14344493 - update fw common interface files

Change-Id: I5c7a8a05fffe53a2377e9c774423290b5c3d1f7e
WMI: add ml_bcn_,ml_quiet_param to BCN_TMPL_,BCN_OFFLOAD_QUIET_CONFIG_CMD
CRs-Fixed: 2262693
spuligil 3 years ago
parent
commit
1b6c85568f
3 changed files with 45 additions and 3 deletions
  1. 6 2
      fw/wmi_tlv_defs.h
  2. 38 0
      fw/wmi_unified.h
  3. 1 1
      fw/wmi_version.h

+ 6 - 2
fw/wmi_tlv_defs.h

@@ -1178,6 +1178,8 @@ typedef enum {
      * extensions, the struct uses a TLV header, which uses the below tag,
      */
     WMITLV_TAG_STRUC_wmi_afc_serv_resp_struct,
+    WMITLV_TAG_STRUC_wmi_bcn_tmpl_ml_params,
+    WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_ml_quiet_config_params,
 } WMITLV_TAG_ID;
 
 /*
@@ -2354,7 +2356,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PRB_TMPL_CMDID);
 #define WMITLV_TABLE_WMI_BCN_TMPL_CMDID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param, wmi_bcn_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_bcn_tmpl_ml_params, ml_bcn_param, WMITLV_SIZE_VAR)
 
 WMITLV_CREATE_PARAM_STRUC(WMI_BCN_TMPL_CMDID);
 
@@ -3091,7 +3094,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_QUIET_MODE_CMDID);
 
 /* vdev set offload quiet Cmd */
 #define WMITLV_TABLE_WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID(id,op,buf,len) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_bcn_offload_ml_quiet_config_params, ml_quiet_param, WMITLV_SIZE_VAR)
 
 WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID);
 

+ 38 - 0
fw/wmi_unified.h

@@ -6050,6 +6050,19 @@ typedef struct {
  */
 #define WMI_OFFLOAD_QUIET_FLAG_INFO_IN_SWBA_START_STOP 0x00000004
 
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_ml_quiet_config_params */
+    A_UINT32 vdev_id;    /* partner vdev_id */
+    A_UINT32 hw_link_id; /* hw_link_id: Unique link id across SOCs, got as part of QMI handshake */
+    A_UINT32 beacon_interval; /* beacon interval in TU from received beacon of the partner link */
+    A_UINT32 period;     /* period in TUs */
+    A_UINT32 duration;   /* duration in TUs */
+    A_UINT32 next_start; /* offset in TUs from beacon */
+    A_UINT32 flags;      /* STOP or START (and single vs. repeated) Quiet IE
+                          * See WMI_OFFLOAD_QUIET_FLAG_xxx defs.
+                          */
+} wmi_vdev_bcn_offload_ml_quiet_config_params;
+
 typedef struct {
     A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param */
     A_UINT32 vdev_id;    /* Virtual interface ID */
@@ -6059,6 +6072,11 @@ typedef struct {
     A_UINT32 flags;      /* STOP or START (and single vs. repeated) Quiet IE
                           * See WMI_OFFLOAD_QUIET_FLAG_xxx defs.
                           */
+/*
+ * This TLV is optionally followed by array of wmi_vdev_bcn_offload_ml_quiet_config_params struct
+ * wmi_vdev_bcn_offload_ml_quiet_config_params will have multiple instances equal to num of links in an AP MLD
+ *   wmi_vdev_bcn_offload_ml_quiet_config_params ml_quiet_param[];
+ */
 } wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param;
 
 typedef struct {
@@ -13037,6 +13055,23 @@ typedef struct {
 #define WMI_BEACON_TMPLT_GET_LAST_TEMPLATE(_ema_param) \
     WMI_GET_BITS(_ema_param, WMI_BEACON_TMPLT_LAST_TEMPLATE_BITPOS, 8)
 
+typedef struct {
+    A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tmpl_ml_params */
+    A_UINT32 vdev_id;    /* partner vdev_id */
+    A_UINT32 hw_link_id; /* hw_link_id: Unique link id across SOCs, got as part of QMI handshake */
+    A_UINT32 beacon_interval; /* beacon interval in TU from received beacon of the partner link */
+    /** CSA IE switch count offset from the beginning of data[]
+     *  Value 0 indicates CSA IE is not present in beacon template.
+     */
+    A_UINT32 csa_switch_count_offset; /* units = bytes */
+    /** Extended CSA IE switch count offset from the beginning of data[]
+     *  Value 0 indicates ECSA IE is not present in beacon template.
+     */
+    A_UINT32 ext_csa_switch_count_offset; /* units = bytes */
+    /** TIM IE offset from the beginning of the template. */
+    A_UINT32 tim_ie_offset;
+} wmi_bcn_tmpl_ml_params;
+
 typedef struct {
     A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param */
     /** unique id identifying the VDEV, generated by the caller */
@@ -13125,6 +13160,9 @@ typedef struct {
  * The TLVs follows:
  *    wmi_bcn_prb_info bcn_prb_info; <-- beacon probe capabilities and IEs
  *    A_UINT8  data[]; <-- Variable length data
+ *    wmi_bcn_tmpl_ml_params ml_bcn_param[]; <-- per-MLO-link beacon data
+ *        wmi_bcn_tmpl_ml_params will have multiple instances equal to
+ *        the number of links in an AP MLD
  */
 } wmi_bcn_tmpl_cmd_fixed_param;
 

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