From 00077b2112c89a2df5c86a910134edd1015ac957 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 12 Dec 2018 01:18:33 -0800 Subject: [PATCH] fw-api: CL 6043355 - update fw common interface files Change-Id: I6978a8c2e973fe19fad9acd7e8a814695b8dbd5a WMI: add PDEV_CSC_SWITCH_COUNT_STATUS_EVENT msg def CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 7 +++++++ fw/wmi_unified.h | 34 ++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 1d0d75fb8c..fce99b263c 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -366,6 +366,7 @@ typedef enum { WMI_SERVICE_FETCH_TX_PN=181, WMI_SERVICE_PEER_UNMAP_RESPONSE_SUPPORT = 182, /* support peer ids unmap response from host */ WMI_SERVICE_TX_PER_PEER_AMPDU_SIZE = 183, /* indicate FW support per peer TX AMPDU size */ + WMI_SERVICE_BSS_COLOR_SWITCH_COUNT = 184, /* Firmware supports bss-color switch count handling */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index dc84c1d234..a20d0ceff6 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -950,6 +950,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_peer_tx_pn_response_event_fixed_param, WMITLV_TAG_STRUC_wmi_tlv_arrays_len_param, WMITLV_TAG_STRUC_wmi_peer_unmap_response_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_csc_switch_count_status_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1554,6 +1555,7 @@ typedef enum { OP(WMI_NDP_EVENTID) \ OP(WMI_VDEV_BCN_RECEPTION_STATS_EVENTID) \ OP(WMI_PEER_TX_PN_RESPONSE_EVENTID) \ + OP(WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5090,6 +5092,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_STATUS_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_ids, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CSA_SWITCH_COUNT_STATUS_EVENTID); +#define WMITLV_TABLE_WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_csc_switch_count_status_event_fixed_param, wmi_pdev_csc_switch_count_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_ids, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID); + /* cal version response event */ #define WMITLV_TABLE_WMI_PDEV_CHECK_CAL_VERSION_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_check_cal_version_event_fixed_param, wmi_pdev_check_cal_version_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index c078cfc80c..4e07673880 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1280,6 +1280,9 @@ typedef enum { /** WMI Event to deliver CTL Failsafe application */ WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID, + /* Event to report the switch count in BSS color of one or more VDEVs */ + WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID, + /* VDEV specific events */ /** VDEV started event in response to VDEV_START request */ @@ -9552,6 +9555,16 @@ typedef struct { A_UINT32 mbssid_ie_offset; /** offset (in octets/bytes) of ESP IE in beacon frame */ A_UINT32 esp_ie_offset; + /** CSC IE color switch count offset from the beginning of data[] + * Value 0 indicates CSC IE is not present in beacon template. + */ + A_UINT32 csc_switch_count_offset; /* units = bytes */ + /** Specify when to send the CSC switch count status from FW to host. + * See WMI_CSC_EVENT_BMAP* below for more information. + * E.g. if CSA switch count event is needed to be sent when the switch count + * is 0, 1, 4 and 5, set the bitmap to (0X80000033) + */ + A_UINT32 csc_event_bitmap; /* * The TLVs follows: @@ -9565,6 +9578,11 @@ typedef struct { Same can also be achieved by setting bitmap to 0X80000001 */ #define WMI_CSA_EVENT_BMAP_ALL 0XFFFFFFFF /* Send CSA switch count event for every update to switch count */ +#define WMI_CSC_EVENT_BMAP_VALID_MASK 0X80000000 /* Follow bitmap for sending the CSC switch count event */ +#define WMI_CSC_EVENT_BMAP_SWITCH_COUNT_ZERO 0 /* Send only when the switch count becomes zero, added for backward compatibility + Same can also be achieved by setting bitmap to 0X80000001 */ +#define WMI_CSC_EVENT_BMAP_ALL 0XFFFFFFFF /* Send CSC switch count event for every update to switch count */ + typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param */ /** unique id identifying the VDEV, generated by the caller */ @@ -23092,6 +23110,22 @@ typedef struct { */ } wmi_pdev_csa_switch_count_status_event_fixed_param; +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_csc_switch_count_status_event_fixed_param */ + A_UINT32 tlv_header; + /** 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; + /** CSC switch count value in the last transmitted beacon */ + A_UINT32 current_switch_count; + + /* The TLVs follows this structure: + * A_UINT32 vdev_ids[]; // IDs of vdevs whose color-switch countdown expired + */ +} wmi_pdev_csc_switch_count_status_event_fixed_param; + /* Operation types for packet routing command */ typedef enum { WMI_PDEV_ADD_PKT_ROUTING, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index f3eea7016a..654350b625 100644 --- 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_ 604 +#define __WMI_REVISION_ 605 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work