Эх сурвалжийг харах

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

Change-Id: I6f1714facd7482449f0b256a250b1218e0d64973
WMI: BSS color change configuration and report msg defs
CRs-Fixed: 1107600
spuligil 7 жил өмнө
parent
commit
36082eb56d

+ 1 - 0
fw/wmi_services.h

@@ -243,6 +243,7 @@ typedef  enum  {
     WMI_SERVICE_AP_OBSS_DETECTION_OFFLOAD=147, /* Support SAP mode OBSS detection offload */
     WMI_SERVICE_11K_NEIGHBOUR_REPORT_SUPPORT=148, /* Support for 11k neighbor report */
     WMI_SERVICE_LISTEN_INTERVAL_OFFLOAD_SUPPORT=149, /* Support listen interval offload */
+    WMI_SERVICE_BSS_COLOR_OFFLOAD=150, /* Support BSS color change for STA, OBSS color collision detection in FW for AP and STA */
 
 
     /******* ADD NEW SERVICES HERE *******/

+ 21 - 0
fw/wmi_tlv_defs.h

@@ -893,6 +893,9 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_bpf_get_vdev_work_memory_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_bpf_get_vdev_work_memory_resp_evt_fixed_param,
     WMITLV_TAG_STRUC_wmi_pdev_get_nfcal_power_fixed_param,
+    WMITLV_TAG_STRUC_wmi_bss_color_change_enable_fixed_param,
+    WMITLV_TAG_STRUC_wmi_obss_color_collision_det_config_fixed_param,
+    WMITLV_TAG_STRUC_wmi_obss_color_collision_evt_fixed_param,
 } WMITLV_TAG_ID;
 
 /*
@@ -1253,6 +1256,8 @@ typedef enum {
     OP(WMI_BPF_SET_VDEV_WORK_MEMORY_CMDID) \
     OP(WMI_BPF_GET_VDEV_WORK_MEMORY_CMDID) \
     OP(WMI_PDEV_GET_NFCAL_POWER_CMDID) \
+    OP(WMI_BSS_COLOR_CHANGE_ENABLE_CMDID) \
+    OP(WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID) \
     /* add new CMD_LIST elements above this line */
 
 
@@ -1451,6 +1456,7 @@ typedef enum {
     OP(WMI_SAR_GET_LIMITS_EVENTID) \
     OP(WMI_SAR2_RESULT_EVENTID) \
     OP(WMI_BPF_GET_VDEV_WORK_MEMORY_RESP_EVENTID) \
+    OP(WMI_OBSS_COLOR_COLLISION_DETECTION_EVENTID) \
     /* add new EVT_LIST elements above this line */
 
 
@@ -3084,6 +3090,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAP_SET_BLACKLIST_PARAM_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_obss_detection_cfg_cmd_fixed_param, wmi_sap_obss_detection_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OBSS_DETECTION_CFG_CMDID);
 
+/* STA BSS Color change offload param Cmd */
+#define WMITLV_TABLE_WMI_BSS_COLOR_CHANGE_ENABLE_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bss_color_change_enable_fixed_param, wmi_bss_color_change_enable_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_BSS_COLOR_CHANGE_ENABLE_CMDID);
+
+/* OBSS Color collision detection config cmd */
+#define WMITLV_TABLE_WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_obss_color_collision_det_config_fixed_param, wmi_obss_color_collision_det_config_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID);
+
 /* APFIND Request */
 #define WMITLV_TABLE_WMI_APFIND_CMDID(id,op,buf,len) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_apfind_cmd_param, wmi_apfind_cmd_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -4420,6 +4436,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_DEL_STA_EVENTID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_obss_detection_info_evt_fixed_param, wmi_sap_obss_detection_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OBSS_DETECTION_REPORT_EVENTID);
 
+/* OBSS Color collision detection event */
+#define WMITLV_TABLE_WMI_OBSS_COLOR_COLLISION_DETECTION_EVENTID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_obss_color_collision_evt_fixed_param, wmi_obss_color_collision_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_COLOR_COLLISION_DETECTION_EVENTID);
+
 /* Set OCB schedule event, DEPRECATED */
 #define WMITLV_TABLE_WMI_OCB_SET_SCHED_EVENTID(id,op,buf,len) \
     WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, wmi_ocb_set_sched_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)

+ 45 - 0
fw/wmi_unified.h

@@ -533,6 +533,8 @@ typedef enum {
     WMI_PDEV_SEND_FD_CMDID,
     /** Cmd to enable/disable offloaded beacons */
     WMI_BCN_OFFLOAD_CTRL_CMDID,
+    /** Cmd to enable FW handling BSS color change notification from AP. */
+    WMI_BSS_COLOR_CHANGE_ENABLE_CMDID,
 
     /** commands to directly control ba negotiation directly from host. only used in test mode */
 
@@ -998,6 +1000,7 @@ typedef enum {
      */
     WMI_OBSS_SCAN_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OBSS_OFL),
     WMI_OBSS_SCAN_DISABLE_CMDID,
+    WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID,
 
     /**LPI commands*/
     /**LPI mgmt snooping config command*/
@@ -1571,6 +1574,9 @@ typedef enum {
     WMI_SAP_OFL_DEL_STA_EVENTID,
     WMI_SAP_OBSS_DETECTION_REPORT_EVENTID,
 
+    /* OBSS Offloads events */
+    WMI_OBSS_COLOR_COLLISION_DETECTION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_OBSS_OFL),
+
     /** Out-of-context-of-bss (OCB) events */
     WMI_OCB_SET_CONFIG_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_OCB),
     WMI_OCB_GET_TSF_TIMER_RESP_EVENTID,
@@ -11460,6 +11466,7 @@ typedef enum event_type_e {
     WOW_CHIP_POWER_FAILURE_DETECT_EVENT,
     WOW_11D_SCAN_EVENT,
     WOW_SAP_OBSS_DETECTION_EVENT,
+    WOW_BSS_COLOR_COLLISION_DETECT_EVENT,
 } WOW_WAKE_EVENT_TYPE;
 
 typedef enum wake_reason_e {
@@ -11517,6 +11524,7 @@ typedef enum wake_reason_e {
     WOW_REASON_OIC_PING_OFFLOAD,
     WOW_REASON_WLAN_DHCP_RENEW,
     WOW_REASON_SAP_OBSS_DETECTION,
+    WOW_REASON_BSS_COLOR_COLLISION_DETECT,
 
     WOW_REASON_DEBUG_TEST = 0xFF,
 } WOW_WAKE_REASON_TYPE;
@@ -17369,6 +17377,41 @@ typedef struct wmi_sap_obss_detection_info_evt_s {
     wmi_mac_addr matched_bssid_addr;  /* valid when reason is WMI_SAP_OBSS_DETECTION_EVENT_REASON_PRESENT_NOTIFY */
 } wmi_sap_obss_detection_info_evt_fixed_param;
 
+/** WMI command to enable STA FW handle bss color change notification from AP */
+typedef struct  {
+    A_UINT32 tlv_header; /* tag equals WMITLV_TAG_STRUC_wmi_bss_color_change_enable_fixed_param */
+    A_UINT32 vdev_id;
+    A_UINT32 enable;
+} wmi_bss_color_change_enable_fixed_param;
+
+typedef enum  {
+    WMI_BSS_COLOR_COLLISION_DISABLE = 0,
+    WMI_BSS_COLOR_COLLISION_DETECTION,
+    WMI_BSS_COLOR_FREE_SLOT_TIMER_EXPIRY,
+    WMI_BSS_COLOR_FREE_SLOT_AVAILABLE,
+} WMI_BSS_COLOR_COLLISION_EVT_TYPE;
+
+/** Command to enable OBSS Color collision detection for both STA and AP mode */
+typedef struct  {
+    A_UINT32 tlv_header;                /* tag equals WMITLV_TAG_STRUC_wmi_obss_color_collision_det_config_fixed_param */
+    A_UINT32 vdev_id;
+    A_UINT32 flags;                     /* proposed for future use cases */
+    A_UINT32 evt_type;                  /* WMI_BSS_COLOR_COLLISION_EVT_TYPE */
+    A_UINT32 current_bss_color;
+    A_UINT32 detection_period_ms;       /* scan interval for both AP and STA mode */
+    A_UINT32 scan_period_ms;            /* scan period for passive scan to detect collision */
+    A_UINT32 free_slot_expiry_time_ms;  /* FW to notify host at timer expiry after which Host disables bss color */
+} wmi_obss_color_collision_det_config_fixed_param;
+
+/** WMI event to notify host on OBSS Color collision detection, free slot available for AP mode */
+typedef struct  {
+    A_UINT32 tlv_header;                    /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_obss_color_collision_evt_fixed_param */
+    A_UINT32 vdev_id;
+    A_UINT32 evt_type;                      /* WMI_BSS_COLOR_COLLISION_EVT_TYPE */
+    A_UINT32 bss_color_bitmap_bit0to31;     /* Bit set indicating BSS color present */
+    A_UINT32 bss_color_bitmap_bit32to63;    /* Bit set indicating BSS color present */
+} wmi_obss_color_collision_evt_fixed_param;
+
 /**
  * OCB DCC types and structures.
  */
@@ -21183,6 +21226,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
         WMI_RETURN_STRING(WMI_BPF_SET_VDEV_ENABLE_CMDID);
         WMI_RETURN_STRING(WMI_BPF_SET_VDEV_WORK_MEMORY_CMDID);
         WMI_RETURN_STRING(WMI_BPF_GET_VDEV_WORK_MEMORY_CMDID);
+        WMI_RETURN_STRING(WMI_BSS_COLOR_CHANGE_ENABLE_CMDID);
+        WMI_RETURN_STRING(WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID);
     }
 
     return "Invalid WMI cmd";

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