From cd65453b051b203f3ff86b1fbfb48dbd635a57ed Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 23 Oct 2023 12:01:21 -0700 Subject: [PATCH 01/23] fw-api: CL 25027860 - update fw common interface files WMI: add WOW_REASON_STX_WOW_HIGH_DUTY_CYCLE def Change-Id: I644f11b3a099ee4bfe797735efd2fe1c9440ccb0 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 2 ++ fw/wmi_version.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f466ba65db96..b4e979facbde 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -23366,6 +23366,8 @@ typedef enum wake_reason_e { WOW_REASON_COEX_CHAVD, /* vdev repurpose request event */ WOW_REASON_VDEV_REPURPOSE, + /* STX High duty cycle event */ + WOW_REASON_STX_WOW_HIGH_DUTY_CYCLE, /* add new WOW_REASON_ defs before this line */ WOW_REASON_MAX, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 6a0636cb656c..fffc9fff8c9f 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1405 +#define __WMI_REVISION_ 1406 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From b3f1f9bdca11f12c997ce69056744559de838ce4 Mon Sep 17 00:00:00 2001 From: spuligil Date: Tue, 24 Oct 2023 12:01:13 -0700 Subject: [PATCH 02/23] fw-api: CL 25036225 - update fw common interface files WMI: add AUDIO_TRANSPORT_SWITCH RESP_STATUS_CMD,TYPE_EVENT msg defs Change-Id: I2dcdd9367b5d674b00d6daa1bb61ef31f1423137 CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 14 ++++++++++++++ fw/wmi_unified.h | 36 ++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 96aa4ce897c7..4614204fa3a1 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1412,6 +1412,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_utf_event_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_oob_connection_req_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_oob_connection_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1950,6 +1952,7 @@ typedef enum { OP(WMI_CSA_EVENT_STATUS_INDICATION_CMDID) \ OP(WMI_VDEV_SCHED_MODE_PROBE_REQ_CMDID) \ OP(WMI_VDEV_OOB_CONNECTION_REQ_CMDID) \ + OP(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2269,6 +2272,7 @@ typedef enum { OP(WMI_MLO_LINK_STATE_SWITCH_EVENTID) \ OP(WMI_VDEV_SCHED_MODE_PROBE_RESP_EVENTID) \ OP(WMI_VDEV_OOB_CONNECTION_RESP_EVENTID) \ + OP(WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5402,6 +5406,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, wmi_xgap_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID); +/* WMI cmd to indicate bearer switch response status (succcess, fail or timeout) to the corresponding switch type request */ +#define WMITLV_TABLE_WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param, wmi_audio_transport_switch_resp_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID); + #define WMITLV_TABLE_WMI_ODD_LIVEDUMP_REQUEST_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, wmi_livedump_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, odd_livedump_id_list, WMITLV_SIZE_VAR) @@ -7400,6 +7409,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, wmi_xgap_enable_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_COMPLETE_EVENTID); +/* Event to switch to xpan to ble or ble to xpan */ +#define WMITLV_TABLE_WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param, wmi_audio_transport_switch_type_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID); + /* ODD Livedump */ #define WMITLV_TABLE_WMI_ODD_LIVEDUMP_RESPONSE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, wmi_livedump_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index b4e979facbde..bf82a609d862 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1245,6 +1245,9 @@ typedef enum { /* WMI comamnd for standalone sounding */ WMI_VDEV_STANDALONE_SOUND_CMDID, + /* WMI cmd used by host to send the switch response status to FW */ + WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID, + /* Offload 11k related requests */ WMI_11K_OFFLOAD_REPORT_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_11K_OFFLOAD), /* invoke neighbor report from FW */ @@ -2248,6 +2251,9 @@ typedef enum { /* WMI standalone command complete Event */ WMI_VDEV_STANDALONE_SOUND_COMPLETE_EVENTID, + /* WMI evt to indicate switch type either to WLAN(XPAN) or non_WLAN(BLE) */ + WMI_AUDIO_TRANSPORT_SWITCH_TYPE_EVENTID, + /* GPIO Event */ WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO), @@ -36983,6 +36989,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_CSA_EVENT_STATUS_INDICATION_CMDID); WMI_RETURN_STRING(WMI_VDEV_SCHED_MODE_PROBE_REQ_CMDID); WMI_RETURN_STRING(WMI_VDEV_OOB_CONNECTION_REQ_CMDID); + WMI_RETURN_STRING(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -47087,6 +47094,35 @@ typedef struct { A_UINT32 connect_resp_type; } wmi_vdev_oob_connection_resp_event_fixed_param; +typedef enum { + WMI_AUDIO_TRANSPORT_SWITCH_STATUS_FAIL = 0, + WMI_AUDIO_TRANSPORT_SWITCH_STATUS_SUCCESS, + WMI_AUDIO_TRANSPORT_SWITCH_STATUS_TIMEOUT, +} WMI_AUDIO_TRANSPORT_SWITCH_RESPONSE_STATUS; + +typedef enum { + WMI_AUDIO_TRANSPORT_SWITCH_TYPE_NON_WLAN = 0, + WMI_AUDIO_TRANSPORT_SWITCH_TYPE_WLAN = 1, +} WMI_AUDIO_TRANSPORT_SWITCH_TYPE; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param */ + A_UINT32 tlv_header; + /** This indicates whether FW is requesting for switch to WLAN(XPAN) or non-WLAN(BLE) */ + A_UINT32 switch_type; /*see definition of WMI_AUDIO_TRANSPORT_SWITCH_TYPE */ +} wmi_audio_transport_switch_type_event_fixed_param; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param */ + A_UINT32 tlv_header; + /** This indicates whether switch response status is success, fail, timeout */ + A_UINT32 switch_response_status; /* see definition of WMI_AUDIO_TRANSPORT_SWITCH_RESPONSE_STATUS */ + /** This indicates for which switch type (WLAN(XPAN) or non-WLAN(BLE)) the switch response status is intended to */ + A_UINT32 switch_type; /* see definition of WMI_AUDIO_TRANSPORT_SWITCH_TYPE */ +} wmi_audio_transport_switch_resp_status_cmd_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index fffc9fff8c9f..f9df479ffd6b 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1406 +#define __WMI_REVISION_ 1407 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From f26ad828af4b10208afdd1217f08c340d1ae16dd Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 25 Oct 2023 06:01:27 -0700 Subject: [PATCH 03/23] fw-api: CL 25039724 - update fw common interface files HTT stats: add nf_cal_iteration_counts to phy_reset_stats TLV Change-Id: Ief09fa7c2c923f00c4198735d39457cf208a0797 CRs-Fixed: 2262693 --- fw/htt_stats.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index bc870a81f8c5..3620fa21eba4 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -8292,6 +8292,13 @@ typedef struct { * values are specified by the HTT_WHAL_CONFIG enum type */ A_UINT32 whal_config_flag; + /** nfcal_iteration_counts: + * iteration count for Home/Scan/Periodic Noise Floor calibrations + * nfcal_iteration_counts[0] - home NF iteration counter + * nfcal_iteration_counts[1] - scan NF iteration counter + * nfcal_iteration_counts[2] - periodic NF iteration counter + */ + A_UINT32 nfcal_iteration_counts[3]; } htt_stats_phy_reset_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_phy_reset_stats_tlv htt_phy_reset_stats_tlv; From 097d89c8311493a5530f5a4bf7ecb917c5d5d220 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 25 Oct 2023 18:01:16 -0700 Subject: [PATCH 04/23] fw-api: CL 25039727 - update fw common interface files add WMI_PDEV_PARAM_TID_MAPPING_3LINK_MLO def Change-Id: I1aab1e38ce8331e75611b2b76cc0e65e1518e8af CRs-Fixed: 2262693 --- fw/wmi_unified.h | 3 +++ fw/wmi_version.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index bf82a609d862..1f631675da2d 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9331,6 +9331,9 @@ typedef enum { /** Parameter to set PDEV level UL OFDMA RTD */ WMI_PDEV_PARAM_UL_OFDMA_RTD, + + /** Parameter to enable/disable tid0 and tid3 mapping to work 3 Link MLO */ + WMI_PDEV_PARAM_TID_MAPPING_3LINK_MLO, } WMI_PDEV_PARAM; #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index f9df479ffd6b..8bea4d4d67e0 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1407 +#define __WMI_REVISION_ 1408 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 70d2e993ca18d1ce07313a17e6272f19279c2882 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 25 Oct 2023 18:02:28 -0700 Subject: [PATCH 05/23] fw-api: CL 25043321 - update fw common interface files WMI: add band info bitfield to mgmt_tx_compl_event Change-Id: Ib69fd8fa9767f21956606b983344b422e1507f8e CRs-Fixed: 2262693 --- fw/htt_stats.h | 2 ++ fw/wmi_unified.h | 8 ++++++++ fw/wmi_version.h | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 3620fa21eba4..14e4cb17d2be 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -8297,6 +8297,8 @@ typedef struct { * nfcal_iteration_counts[0] - home NF iteration counter * nfcal_iteration_counts[1] - scan NF iteration counter * nfcal_iteration_counts[2] - periodic NF iteration counter + * These counters are not reset automatically; they are only reset + * when explicitly requested by the host. */ A_UINT32 nfcal_iteration_counts[3]; } htt_stats_phy_reset_stats_tlv; diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 1f631675da2d..cb0e6dd14d0a 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9860,6 +9860,14 @@ typedef struct { /* current 64 bit TSF timestamp */ A_UINT32 tx_tsf_l32; A_UINT32 tx_tsf_u32; + /* info: + * Bit[0:2] - band on which frame is sent, band value will be + * one of the wmi_mlo_band_info_t enum constants. + * Macros WMI_ROAM_BTM_RESP_MLO_BAND_INFO_GET,SET + * can be reused for setting mlo band info. + * Bit[3:31] - reserved + */ + A_UINT32 info; } wmi_mgmt_tx_compl_event_fixed_param; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 8bea4d4d67e0..4e366e129b1c 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1408 +#define __WMI_REVISION_ 1409 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 74b6f48d49feef95684a464d64227cc24c7c0b5c Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 25 Oct 2023 18:03:44 -0700 Subject: [PATCH 06/23] fw-api: CL 25045621 - update fw common interface files add WMI_VDEV_PARAM_MLO_MAX_RECOM_ACTIVE_LINKS def Change-Id: I7b509b2b327ec77a1b093dee6a4558db163f0610 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 5 +++++ fw/wmi_version.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index cb0e6dd14d0a..de538c1c1b00 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -18227,6 +18227,11 @@ typedef enum { */ WMI_VDEV_PARAM_DISABLE_TWT_INFO_FRAME, /* 0xC0 */ + /* + * Set the Recommended Max allowed active links + */ + WMI_VDEV_PARAM_MLO_MAX_RECOM_ACTIVE_LINKS, /* 0xC1 */ + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === * The below vdev param types are used for prototyping, and are diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 4e366e129b1c..0fc6335fba95 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1409 +#define __WMI_REVISION_ 1410 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 7232c74e1fd2dec6d8e2e352c1e6fe92f2a541f4 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 1 Nov 2023 06:01:50 -0700 Subject: [PATCH 07/23] fw-api: CL 25104553 - update fw common interface files WMI: add dbw_chan info to vdev start msgs Change-Id: Ifa94cf66c0f1e7fd43917be108bd23fb84bfe1dc CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 13 ++++++++++--- fw/wmi_unified.h | 14 ++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index d904a30ccf84..8f098f38c7d9 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -645,6 +645,7 @@ typedef enum { WMI_SERVICE_5GHZ_HI_RSSI_ROAM_SUPPORT = 392, /* Indicate FW supports High RSSI Roam from 5 GHz Band to 6 GHz Band */ WMI_SERVICE_BOTH_PSD_EIRP_FOR_AP_SP_CLIENT_SP_SUPPORT = 393, /* Support for CTL regeneration where both PSD and EIRP will be sent in 6GHZ SET_TPC WMI for SP and SP_CLIENT power modes */ WMI_SERVICE_PDEV_PARAM_IN_UTF_WMI = 394, /* FW supports receiving and sending pdev_id parameter in WMI_PDEV_UTF_(CMD/EVENT) */ + WMI_SERVICE_SW_PROG_DFS_SUPPORT = 395, /* Indicate FW support SW progressive DFS */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 4614204fa3a1..41e1e785f0c7 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1414,6 +1414,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_oob_connection_resp_event_fixed_param, WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param, + WMITLV_TAG_STRUC_wmi_dbw_chan_info, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2656,7 +2657,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, mlo_params, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID); @@ -2664,7 +2667,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID); #define WMITLV_TABLE_WMI_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_RESTART_REQUEST_CMDID); @@ -4720,7 +4725,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, phymode_list, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_tx_stream_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_rx_stream_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_rx_stream_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID); #define WMITLV_TABLE_WMI_PDEV_UPDATE_PKT_ROUTING_CMDID(id,op,buf,len) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index de538c1c1b00..6b12d1677f05 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -10080,6 +10080,12 @@ typedef struct { wmi_channel chan; } wmi_pdev_set_channel_cmd; +typedef struct { + A_UINT32 tlv_header; + /* DBW puncture bitmap */ + A_UINT32 dbw_puncture_20mhz_bitmap; +} wmi_dbw_chan_info; + typedef enum { WMI_PKTLOG_EVENT_RX = 0x00000001, WMI_PKTLOG_EVENT_TX = 0x00000002, @@ -16971,6 +16977,10 @@ typedef struct { * wmi_partner_link_info link_info[]; <-- partner link info * optional TLV, only present for MLO vdevs, * If the vdev is non-MLO the array length should be 0. + * wmi_channel dbw_chan; <-- WMI channel + * optional TLV for dbw_chan + * wmi_dbw_chan_info dbw_chan_info + * optional TLV used for dbw_chan_info */ } wmi_vdev_start_request_cmd_fixed_param; @@ -37901,6 +37911,10 @@ typedef struct { * with vdev ID as index. * A_UINT32 preferred_rx_streams[]; <-- Array of preferred_rx_streams * with vdev ID as index. + * wmi_channel dbw_chan; <-- WMI channel + * optional TLV for dbw_chan + * wmi_dbw_chan_info dbw_chan_info + * optional TLV used for dbw_chan_info */ } wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 0fc6335fba95..bc112bae515e 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1410 +#define __WMI_REVISION_ 1411 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From b47a400650f6e77ef688c3dc52d9ac33da648564 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 2 Nov 2023 18:01:50 -0700 Subject: [PATCH 08/23] fw-api: CL 25104555 - update fw common interface files HTT: add TX_FW2WBM_REINJECT_REASON_SAWF_SVC_CLASS_ID_ABSENT def Change-Id: Ic32cc26aa152ab6952bdcdee1e66031f770fa9a5 CRs-Fixed: 2262693 --- fw/htt.h | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 6 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index 045efe9dd2a8..dc79499df4f6 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -255,9 +255,10 @@ * 3.127 Add transmit_count fields in htt_tx_wbm_completion_vX structs. * 3.128 Add H2T TX_LATENCY_STATS_CFG + T2H TX_LATENCY_STATS_PERIODIC_IND * msg defs + * 3.129 Add HTT_TX_FW2WBM_REINJECT_REASON_SAWF_SVC_CLASS_ID_ABSENT def. */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 128 +#define HTT_CURRENT_VERSION_MINOR 129 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -2767,6 +2768,7 @@ typedef enum { HTT_TX_FW2WBM_REINJECT_REASON_DHCP, HTT_TX_FW2WBM_REINJECT_REASON_FLOW_CONTROL, HTT_TX_FW2WBM_REINJECT_REASON_MLO_MCAST, + HTT_TX_FW2WBM_REINJECT_REASON_SAWF_SVC_CLASS_ID_ABSENT, HTT_TX_FW2WBM_REINJECT_REASON_MAX, } htt_tx_fw2wbm_reinject_reason_t; @@ -3224,14 +3226,73 @@ PREPACK struct htt_tx_wbm_transmit_status { * used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_REINJECT. */ PREPACK struct htt_tx_wbm_reinject_status { + A_UINT32 + sw_peer_id : 16, + data_length : 16; + A_UINT32 + tid : 5, + msduq_idx : 4, + reserved1 : 23; A_UINT32 - reserved0: 32; - A_UINT32 - reserved1: 32; - A_UINT32 - reserved2: 32; + reserved2: 32; } POSTPACK; +#define HTT_TX_WBM_REINJECT_SW_PEER_ID_M 0x0000ffff +#define HTT_TX_WBM_REINJECT_SW_PEER_ID_S 0 +#define HTT_TX_WBM_REINJECT_DATA_LEN_M 0xffff0000 +#define HTT_TX_WBM_REINJECT_DATA_LEN_S 16 + +#define HTT_TX_WBM_REINJECT_TID_M 0x0000001f +#define HTT_TX_WBM_REINJECT_TID_S 0 +#define HTT_TX_WBM_REINJECT_MSDUQ_ID_M 0x000001e0 +#define HTT_TX_WBM_REINJECT_MSDUQ_ID_S 5 + +#define HTT_TX_WBM_REINJECT_SW_PEER_ID_GET(_var)\ + (((_var) & HTT_TX_WBM_REINJECT_SW_PEER_ID_M) >>\ + HTT_TX_WBM_REINJECT_SW_PEER_ID_S)\ + +#define HTT_TX_WBM_REINJECT_SW_PEER_ID_SET(_var, _val)\ + do {\ + HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_SW_PEER_ID, _val); \ + ((_var) |= ((_val) << HTT_TX_WBM_REINJECT_SW_PEER_ID_S));\ + } while(0) + +#define HTT_TX_WBM_REINJECT_DATA_LEN_GET(_var)\ + (((_var) & HTT_TX_WBM_REINJECT_DATA_LEN_M) >>\ + HTT_TX_WBM_REINJECT_DATA_LEN_S)\ + +#define HTT_TX_WBM_REINJECT_DATA_LEN_SET(_var, _val)\ + do {\ + HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_DATA_LEN, _val); \ + ((_var) |= ((_val) << HTT_TX_WBM_REINJECT_DATA_LEN_S));\ + } while(0) + +#define HTT_TX_WBM_REINJECT_TID_GET(_var)\ + (((_var) & HTT_TX_WBM_REINJECT_TID_M) >>\ + HTT_TX_WBM_REINJECT_TID_S)\ + +#define HTT_TX_WBM_REINJECT_TID_SET(_var, _val)\ + do {\ + HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_TID, _val); \ + ((_var) |= ((_val) << HTT_TX_WBM_REINJECT_TID_S));\ + } while(0) + +#define HTT_TX_WBM_REINJECT_MSDUQ_ID_GET(_var)\ + (((_var) & HTT_TX_WBM_REINJECT_MSDUQ_ID_M) >>\ + HTT_TX_WBM_REINJECT_MSDUQ_ID_S)\ + +#define HTT_TX_WBM_REINJECT_MSDUQ_ID_SET(_var, _val)\ + do {\ + HTT_CHECK_SET_VAL(HTT_TX_WBM_REINJECT_MSDUQ_ID, _val); \ + ((_var) |= ((_val) << HTT_TX_WBM_REINJECT_MSDUQ_ID_S));\ + } while(0) + + + + + + + /** * @brief HTT TX WBM multicast echo check notification from firmware to host * @details From 4f216dbafc8edd80378697376ad74401242cb0f5 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 3 Nov 2023 06:01:44 -0700 Subject: [PATCH 09/23] fw-api: CL 25134675 - update fw common interface files WMI: add PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMD msg def Change-Id: I725cdbc45641b9c4536dc013c3b459063654b598 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 9 +++++++++ fw/wmi_unified.h | 37 +++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 8f098f38c7d9..bbeda80c7edc 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -646,6 +646,7 @@ typedef enum { WMI_SERVICE_BOTH_PSD_EIRP_FOR_AP_SP_CLIENT_SP_SUPPORT = 393, /* Support for CTL regeneration where both PSD and EIRP will be sent in 6GHZ SET_TPC WMI for SP and SP_CLIENT power modes */ WMI_SERVICE_PDEV_PARAM_IN_UTF_WMI = 394, /* FW supports receiving and sending pdev_id parameter in WMI_PDEV_UTF_(CMD/EVENT) */ WMI_SERVICE_SW_PROG_DFS_SUPPORT = 395, /* Indicate FW support SW progressive DFS */ + WMI_SERVICE_MULTIPLE_REORDER_QUEUE_SETUP_SUPPORT = 396, /* Indicate FW supports multiple TID reorder queues setup in one cmd */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 41e1e785f0c7..58f8dc99ddbb 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1415,6 +1415,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_audio_transport_switch_resp_status_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_audio_transport_switch_type_event_fixed_param, WMITLV_TAG_STRUC_wmi_dbw_chan_info, + WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1954,6 +1956,7 @@ typedef enum { OP(WMI_VDEV_SCHED_MODE_PROBE_REQ_CMDID) \ OP(WMI_VDEV_OOB_CONNECTION_REQ_CMDID) \ OP(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID) \ + OP(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4617,6 +4620,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_SETUP_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, wmi_peer_reorder_queue_remove_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID); +/* peer multiple reorder queue setup cmd */ +#define WMITLV_TABLE_WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_per_reorder_q_setup_params_t, reorder_params_list, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID); + /* Filter in monitor mode parameters Cmd */ #define WMITLV_TABLE_WMI_MNT_FILTER_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mnt_filter_cmd_fixed_param, wmi_mnt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 6b12d1677f05..76b5cc488a56 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -761,6 +761,9 @@ typedef enum { /* Group SET cmd for PEERS */ WMI_PEER_BULK_SET_CMDID, + /* WMI command to setup reorder queue for multiple TIDs */ + WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID, + /* beacon/management specific commands */ /** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */ @@ -31748,6 +31751,39 @@ typedef struct { * established or terminated for the TID. */ } wmi_peer_reorder_queue_setup_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t */ + A_UINT32 tid; /* 0 to 15 = QoS TIDs, 16 = non-qos TID */ + A_UINT32 queue_ptr_lo; /* lower 32 bits of queue desc address */ + A_UINT32 queue_ptr_hi; /* upper 32 bits of queue desc address */ + A_UINT32 queue_no; /* 16-bit number assigned by host for queue, + * stored in bits 15:0 of queue_no field */ + A_UINT32 ba_window_size_valid; /* Is ba_window_size valid? + * 0 = Invalid, 1 = Valid */ + A_UINT32 ba_window_size; /* Valid values: 0 to 256 + * Host sends the message when BA session is + * established or terminated for the TID. */ +} wmi_peer_per_reorder_q_setup_params_t; + +/** + * This command is sent from WLAN host driver to firmware for + * plugging in reorder queue desc to hw for multiple TIDs in one shot. + * + * Example: plug-in queue desc + * host->target: WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID, + * (vdev_id = PEER vdev id, + * peer_macaddr = PEER mac addr) + */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param */ + A_UINT32 vdev_id; + wmi_mac_addr peer_macaddr; /* peer mac address */ +/* + * This struct is followed by other TLVs: + * wmi_peer_per_reorder_q_setup_params_t q_setup_params[num_queues]; + */ +} wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param; + /** * This command is sent from WLAN host driver to firmware for * removing one or more reorder queue desc to lithium hw. @@ -37016,6 +37052,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_SCHED_MODE_PROBE_REQ_CMDID); WMI_RETURN_STRING(WMI_VDEV_OOB_CONNECTION_REQ_CMDID); WMI_RETURN_STRING(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID); + WMI_RETURN_STRING(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index bc112bae515e..fbd1334f8fff 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1411 +#define __WMI_REVISION_ 1412 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 3d19afdeb7b3b61b6b2f3320dffe09145d777741 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 4 Nov 2023 12:01:43 -0700 Subject: [PATCH 10/23] fw-api: CL 25166743 - update fw common interface files add WMI_SCAN_FLAG_EXT_STOP_IF_BSSID_FOUND def Change-Id: Iddfe8f26cd238281b2ef5dcf07add56a6b5f0771 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 1 + fw/wmi_version.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 76b5cc488a56..aff144e02a14 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -5926,6 +5926,7 @@ typedef enum { #define WMI_SCAN_FLAG_EXT_RELIABLE_SCAN 0x00010000 #define WMI_SCAN_FLAG_EXT_FAST_SCAN 0x00020000 #define WMI_SCAN_FLAG_EXT_LOW_POWER_SCAN 0x00040000 +#define WMI_SCAN_FLAG_EXT_STOP_IF_BSSID_FOUND 0x00080000 /** diff --git a/fw/wmi_version.h b/fw/wmi_version.h index fbd1334f8fff..83ea47af2271 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1412 +#define __WMI_REVISION_ 1413 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From b1d6f5963fdfa25ac6a9794cedcb7c0451827513 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 4 Nov 2023 18:01:26 -0700 Subject: [PATCH 11/23] fw-api: CL 25170657 - update fw common interface files HTT stats: add avg_chan_acc_lat_hist[] in pdev_sched_algo_ofdma_stats TLV Change-Id: I9ac0a5f18bf8588208dcdbedf785125da08dab0a CRs-Fixed: 2262693 --- fw/htt_stats.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 14e4cb17d2be..d1e1b94de749 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -9350,6 +9350,8 @@ typedef enum { HTT_STATS_SCHED_OFDMA_TXBF_INELIGIBILITY_MAX, } htt_stats_sched_ofdma_txbf_ineligibility_t; +#define HTT_MAX_NUM_CHAN_ACC_LAT_INTR 9 + typedef struct { htt_tlv_hdr_t tlv_hdr; /** @@ -9393,6 +9395,19 @@ typedef struct { /** Num of instances where dl ofdma is disabled because there are consecutive mpdu failure */ A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM]; A_UINT32 txbf_ofdma_ineligibility_stat[HTT_STATS_SCHED_OFDMA_TXBF_INELIGIBILITY_MAX]; + /** Average channel access latency histogram stats + * + * avg_chan_acc_lat_hist[0]: channel access latency is < 100 us + * avg_chan_acc_lat_hist[1]: 100 us <= channel access latency < 200 us + * avg_chan_acc_lat_hist[2]: 200 us <= channel access latency < 300 us + * avg_chan_acc_lat_hist[3]: 300 us <= channel access latency < 400 us + * avg_chan_acc_lat_hist[4]: 400 us <= channel access latency < 500 us + * avg_chan_acc_lat_hist[5]: 500 us <= channel access latency < 1000 us + * avg_chan_acc_lat_hist[6]: 1000 us <= channel access latency < 1500 us + * avg_chan_acc_lat_hist[7]: 1500 us <= channel access latency < 2000 us + * avg_chan_acc_lat_hist[8]: channel access latency is >= 2000 us + */ + A_UINT32 avg_chan_acc_lat_hist[HTT_MAX_NUM_CHAN_ACC_LAT_INTR]; } htt_stats_pdev_sched_algo_ofdma_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_pdev_sched_algo_ofdma_stats_tlv From 3f667db1ef59cc7dde325479d7eb7df663ea2e6a Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 9 Nov 2023 18:01:44 -0800 Subject: [PATCH 12/23] fw-api: CL 25171661 - update fw common interface files WMI: add COEX_MULTIPLE_CONFIG_CMD msg def Change-Id: I4126bb51025830dcfa0a3d01e21e5808e8fbc626 CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 8 ++++++++ fw/wmi_unified.h | 12 +++++++++++- fw/wmi_version.h | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index bbeda80c7edc..b0e825a49107 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -647,6 +647,7 @@ typedef enum { WMI_SERVICE_PDEV_PARAM_IN_UTF_WMI = 394, /* FW supports receiving and sending pdev_id parameter in WMI_PDEV_UTF_(CMD/EVENT) */ WMI_SERVICE_SW_PROG_DFS_SUPPORT = 395, /* Indicate FW support SW progressive DFS */ WMI_SERVICE_MULTIPLE_REORDER_QUEUE_SETUP_SUPPORT = 396, /* Indicate FW supports multiple TID reorder queues setup in one cmd */ + WMI_SERVICE_MULTIPLE_COEX_CONFIG_SUPPORT = 397, /* FW supports mutiple coex configs in one cmd */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 58f8dc99ddbb..f8632d95bf2a 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1417,6 +1417,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_dbw_chan_info, WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t, + WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1957,6 +1958,7 @@ typedef enum { OP(WMI_VDEV_OOB_CONNECTION_REQ_CMDID) \ OP(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID) \ OP(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID) \ + OP(WMI_COEX_MULTIPLE_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5531,6 +5533,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_CSA_EVENT_STATUS_INDICATION_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_oob_connection_req_cmd_fixed_param, wmi_vdev_oob_connection_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_OOB_CONNECTION_REQ_CMDID); +/* Multiple BTCOEX config commands. */ +#define WMITLV_TABLE_WMI_COEX_MULTIPLE_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param, wmi_coex_multiple_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WMI_COEX_CONFIG_CMD_fixed_param, config_list, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_COEX_MULTIPLE_CONFIG_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index aff144e02a14..e05cc6d4f7a6 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1379,6 +1379,7 @@ typedef enum { WMI_COEX_DBAM_CMDID, WMI_TAS_POWER_HISTORY_CMDID, WMI_ESL_EGID_CMDID, + WMI_COEX_MULTIPLE_CONFIG_CMDID, /** * OBSS scan offload enable/disable commands @@ -34694,7 +34695,7 @@ typedef enum wmi_coex_config_type { } WMI_COEX_CONFIG_TYPE; typedef struct { - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 config_type; /* wmi_coex_config_type enum */ A_UINT32 config_arg1; @@ -34705,6 +34706,14 @@ typedef struct { A_UINT32 config_arg6; } WMI_COEX_CONFIG_CMD_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param */ + /* + * This struct is followed by other TLVs: + * WMI_COEX_CONFIG_CMD_fixed_param config_list[num_config]; + */ +} wmi_coex_multiple_config_cmd_fixed_param; + typedef enum wmi_coex_dbam_mode_type { WMI_COEX_DBAM_DISABLE = 0, WMI_COEX_DBAM_ENABLE = 1, @@ -37054,6 +37063,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_VDEV_OOB_CONNECTION_REQ_CMDID); WMI_RETURN_STRING(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID); WMI_RETURN_STRING(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID); + WMI_RETURN_STRING(WMI_COEX_MULTIPLE_CONFIG_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 83ea47af2271..3ddc48a24c84 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1413 +#define __WMI_REVISION_ 1414 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 162905ef8359b7b276a636c0433a413029b69cfd Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 9 Nov 2023 18:02:49 -0800 Subject: [PATCH 13/23] fw-api: CL 25210870 - update fw common interface files add WMI_PDEV_PARAM_ENABLE_[SMALL,LARGE]_MRU defs Change-Id: Ifad50cea40051e6b65aae372e1c17612893c65bb CRs-Fixed: 2262693 --- fw/wmi_unified.h | 6 ++++++ fw/wmi_version.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index e05cc6d4f7a6..7cce4a54c740 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9339,6 +9339,12 @@ typedef enum { /** Parameter to enable/disable tid0 and tid3 mapping to work 3 Link MLO */ WMI_PDEV_PARAM_TID_MAPPING_3LINK_MLO, + + /** Parameter to enable/disable small OFDMA M-RUs **/ + WMI_PDEV_PARAM_ENABLE_SMALL_MRU, + + /** Parameter to enable/disable large OFDMA M-RUs **/ + WMI_PDEV_PARAM_ENABLE_LARGE_MRU, } WMI_PDEV_PARAM; #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3ddc48a24c84..3cef1029e8d5 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1414 +#define __WMI_REVISION_ 1415 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From d8f38efca5fc5291b174b6dfa20ea3b6962648ce Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 9 Nov 2023 18:03:55 -0800 Subject: [PATCH 14/23] fw-api: CL 25234039 - update fw common interface files WMI: add disallow_mode_param TLV in MLO_LINK_SET_ACTIVE_CMD msg Change-Id: I30f0f806c0ebb9ddfef67ba0bcc5692966c0f860 CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 4 ++- fw/wmi_unified.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 78 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index f8632d95bf2a..0ac379c5f8fd 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1418,6 +1418,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_peer_multiple_reorder_queue_setup_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t, WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -5194,7 +5195,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_DURATION_BASED_TX_MODE_SELECTION_CMDID WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, vdev_id_bitmap2, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_disallowed_mlo_mode_bitmap_param, disallow_mode_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID); /* Request DPD Status */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7cce4a54c740..1f3afa837b71 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -44671,6 +44671,7 @@ typedef enum { WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM = 4, /* Force inactive a number of links, firmware to decide which links to inactive */ WMI_MLO_LINK_NO_FORCE = 5, /* Cancel the force operation of specific links, allow firmware to decide */ WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE = 6, /* combination of force specific links active & force specific links inactive */ + WMI_MLO_LINK_NON_FORCE_UPDATE = 7, /* Used when host wants to update other fields like disallow_mlo_mode_bmap */ } WMI_MLO_LINK_FORCE_MODE; typedef enum { @@ -44764,6 +44765,8 @@ typedef struct wmi_mlo_link_set_active_cmd * For force mode WMI_MLO_LINK_FORCE_ACTIVE_INACTIVE ieee_link_id_bitmap2[] * carry the inactive linkid bitmap. * In other cases the length of the array should be 0. + *--- + * wmi_disallowed_mlo_mode_bitmap_param_t disallow_mlo_mode_bmap[]; */ } wmi_mlo_link_set_active_cmd_fixed_param; @@ -44785,6 +44788,77 @@ typedef struct wmi_mlo_set_active_link_number_param } wmi_mlo_set_active_link_number_param; +#define WMI_MLO_MODE_MLMR 0x1; +#define WMI_MLO_MODE_EMLSR 0x2; + + +#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID1(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 0, 8) +#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 0, 8, value) + +#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID2(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 8, 8) +#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 8, 8, value) + +#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID3(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 16, 8) +#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID3(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 16, 8, value) + +#define WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID4(ieee_link_id_comb) WMI_GET_BITS(ieee_link_id_comb, 24, 8) +#define WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID4(ieee_link_id_comb, value) WMI_SET_BITS(ieee_link_id_comb, 24, 8, value) + + +typedef struct wmi_disallowed_mlo_mode_bitmap_param +{ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param */ + A_UINT32 tlv_header; + /** disallowed_mode_bitmap: + * Bitmap of MLO Modes like MLMR, eMLSR which are not allowed. + * Refer to WMI_MLO_MODE_* + * disallowed_mode_bitmap Meaning + * ====================== ================= + * 0x0 No restriction + * 0x1 MLMR is not allowed + * 0x2 EMLSR is not allowed + * 0x3 MLMR and EMLSR are not allowed + */ + A_UINT32 disallowed_mode_bitmap; + + /** ieee_link_id_comb: + * Give combination of IEEE link IDs for which above disallowed_mode_bitmap + * is applicable. + * Each 8-bits in ieee_link_id_comb represents one link ID. + * Use WMI_MLO_IEEE_LINK_ID_COMB_GET_LINK_ID* and _SET_LINK_ID* to get/set + * link IDs in this field. + */ + A_UINT32 ieee_link_id_comb; + + + /** Example: + * Say there are 3 MLO links with ieee link IDs as 1,2 and 32. + * Say host wants to disallow MLMR between links with IDs 1 and 2, + * disallow eMLSR between links with IDs 1 and 32, + * disallow MLMR and eMLSR for links with IDs 2 and 32. + * There will be 3 TLVs of type wmi_disallowed_mlo_mode_bitmap_param + * like below. + * + * wmi_disallowed_mlo_mode_bitmap_param[0]: + * disallowed_mode_bitmap = 0x1, + * ieee_link_id_comb = 0x00000201 + * WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x1) + * WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x2) + * + * wmi_disallowed_mlo_mode_bitmap_param[1] + * disallowed_mode_bitmap = 0x2, + * ieee_link_id_comb = 0x00002001 + * WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x1) + * WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x20) + * + * wmi_disallowed_mlo_mode_bitmap_param[2] + * disallowed_mode_bitmap = 0x3, + * ieee_link_id_comb = 0x00002002 + * WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID1(ieee_link_id_comb, 0x2) + * WMI_MLO_IEEE_LINK_ID_COMB_SET_LINK_ID2(ieee_link_id_comb, 0x20) + */ +} wmi_disallowed_mlo_mode_bitmap_param; + typedef enum { WMI_MLO_LINK_SET_ACTIVE_STATUS_SUCCESS = 0, WMI_MLO_LINK_SET_ACTIVE_STATUS_HOST_REJECT = 1, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3cef1029e8d5..242edab6aa7d 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1415 +#define __WMI_REVISION_ 1416 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 7eb727d8f2da4059dd463e092a010b403847f478 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 11 Nov 2023 06:01:34 -0800 Subject: [PATCH 15/23] fw-api: CL 25234042 - update fw common interface files HTT stats: add whal_wsi stats TLV Change-Id: Iabb4bb9ceaa0b147fac6ab32814f3e395c0991b9 CRs-Fixed: 2262693 --- fw/htt.h | 1 + fw/htt_stats.h | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/fw/htt.h b/fw/htt.h index dc79499df4f6..3aeba5a65602 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -814,6 +814,7 @@ typedef enum { HTT_STATS_CODEL_MSDUQ_TAG = 189, /* htt_codel_msduq_stats_tlv */ HTT_STATS_MLO_SCHED_STATS_TAG = 190, /* htt_mlo_sched_stats_tlv */ HTT_STATS_PDEV_MLO_IPC_STATS_TAG = 191, /* htt_pdev_mlo_ipc_stats_tlv */ + HTT_STATS_WHAL_WSI_TAG = 192, /* htt_stats_whal_wsi_tlv */ HTT_STATS_MAX_TAG, diff --git a/fw/htt_stats.h b/fw/htt_stats.h index d1e1b94de749..7a456a64f288 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -1353,6 +1353,17 @@ typedef struct { /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_whal_tx_tlv htt_hw_stats_whal_tx_tlv; +typedef struct { + htt_tlv_hdr_t tlv_hdr; + + A_UINT32 wsib_event_watchdog_timeout; + A_UINT32 wsib_event_slave_tlv_length_error; + A_UINT32 wsib_event_slave_parity_error; + A_UINT32 wsib_event_slave_direct_message; + A_UINT32 wsib_event_slave_backpressure_error; + A_UINT32 wsib_event_master_tlv_length_error; +} htt_stats_whal_wsi_tlv; + typedef struct { htt_tlv_hdr_t tlv_hdr; /** From 17cea6488c615dab33965d458c688973fede42d7 Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 11 Nov 2023 06:02:29 -0800 Subject: [PATCH 16/23] fw-api: CL 25266026 - update fw common interface files HTT stats: add tx_ofdma_ppdu_dur_hist in tx_pdev_ppdu_dur TLV struct Change-Id: I186f51faf04d13faa1514e27afd5af03c8e1db9d CRs-Fixed: 2262693 --- fw/htt_stats.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 7a456a64f288..b51006ca534e 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -5493,7 +5493,10 @@ typedef htt_stats_tx_pdev_rate_stats_be_ofdma_tlv typedef struct { htt_tlv_hdr_t tlv_hdr; - /** Tx PPDU duration histogram **/ + /** tx_ppdu_dur_hist: + * Tx PPDU duration histogram, which holds the tx duration of PPDUs + * under histogram bins of interval 250us + */ A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS]; A_UINT32 tx_success_time_us_low; A_UINT32 tx_success_time_us_high; @@ -5501,6 +5504,11 @@ typedef struct { A_UINT32 tx_fail_time_us_high; A_UINT32 pdev_up_time_us_low; A_UINT32 pdev_up_time_us_high; + /** tx_ofdma_ppdu_dur_hist: + * Tx OFDMA PPDU duration histogram, which holds the tx duration of + * OFDMA PPDUs under histogram bins of interval 250us + */ + A_UINT32 tx_ofdma_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS]; } htt_stats_tx_pdev_ppdu_dur_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_tx_pdev_ppdu_dur_tlv htt_tx_pdev_ppdu_dur_stats_tlv; From 4bf7cda430247b69ac28fb1a1274158907e4d4a2 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 13 Nov 2023 06:01:27 -0800 Subject: [PATCH 17/23] fw-api: CL 25272219 - update fw common interface files add WMI_PDEV_PARAM_ENABLE_DELAYED_LMR_FEEDBACK def Change-Id: I1886a341bf714439f10811f19145cd8d761f6c4f CRs-Fixed: 2262693 --- fw/wmi_unified.h | 9 +++++++++ fw/wmi_version.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 1f3afa837b71..c0be1a51b652 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -9345,6 +9345,15 @@ typedef enum { /** Parameter to enable/disable large OFDMA M-RUs **/ WMI_PDEV_PARAM_ENABLE_LARGE_MRU, + + /** Parameter to enable/disable delayed LMR feedback. + * Note: Delayed LMR feedback is supported only up to two ranging peers to + * enable Location certification + * 0 - Immediate LMR feedback is enabled for all ranging peers. + * 1 (non zero) - delayed LMR feedback is enabled. Third peer onward will + * default to immediate LMR feedback. + **/ + WMI_PDEV_PARAM_ENABLE_DELAYED_LMR_FEEDBACK, } WMI_PDEV_PARAM; #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 242edab6aa7d..b678acc74078 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1416 +#define __WMI_REVISION_ 1417 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 0697a4aff8a1ca76b927a4a09419679aa0dceb62 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 13 Nov 2023 06:02:32 -0800 Subject: [PATCH 18/23] fw-api: CL 25273382 - update fw common interface files HTT stats: change emlsr bitfield to is_emlsr_active, add emlsr_support Change-Id: Ib8606ccc771558c01eb75dff2f337f8dce3c3891 CRs-Fixed: 2262693 --- fw/htt_stats.h | 64 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index b51006ca534e..9659bfb437de 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -9012,14 +9012,19 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv; #define HTT_ML_PEER_DETAILS_LINK_INIT_COUNT_S 19 #define HTT_ML_PEER_DETAILS_NON_STR_M 0x00400000 #define HTT_ML_PEER_DETAILS_NON_STR_S 22 -#define HTT_ML_PEER_DETAILS_EMLSR_M 0x00800000 -#define HTT_ML_PEER_DETAILS_EMLSR_S 23 +#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M 0x00800000 +#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S 23 + /* for backwards compatibility, retain the old EMLSR name of the bitfield */ + #define HTT_ML_PEER_DETAILS_EMLSR_M HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M + #define HTT_ML_PEER_DETAILS_EMLSR_S HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S #define HTT_ML_PEER_DETAILS_IS_STA_KO_M 0x01000000 #define HTT_ML_PEER_DETAILS_IS_STA_KO_S 24 #define HTT_ML_PEER_DETAILS_NUM_LOCAL_LINKS_M 0x06000000 #define HTT_ML_PEER_DETAILS_NUM_LOCAL_LINKS_S 25 #define HTT_ML_PEER_DETAILS_ALLOCATED_M 0x08000000 #define HTT_ML_PEER_DETAILS_ALLOCATED_S 27 +#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M 0x10000000 +#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S 28 #define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_M 0x000000ff #define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_S 0 @@ -9090,17 +9095,32 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv; ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_NON_STR_S)); \ } while (0) -#define HTT_ML_PEER_DETAILS_EMLSR_GET(_var) \ - (((_var) & HTT_ML_PEER_DETAILS_EMLSR_M) >> \ - HTT_ML_PEER_DETAILS_EMLSR_S) +#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_GET(_var) \ + (((_var) & HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M) >> \ + HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S) -#define HTT_ML_PEER_DETAILS_EMLSR_SET(_var, _val) \ +#define HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_SET(_var, _val) \ do { \ - HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR, _val); \ - ((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_M)); \ - ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_S)); \ + HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE, _val); \ + ((_var) &= ~(HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_M)); \ + ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_IS_EMLSR_ACTIVE_S)); \ } while (0) + /* start deprecated: + * For backwards compatibility, retain a macro definition that uses + * the old EMLSR name of the bitfield + */ + #define HTT_ML_PEER_DETAILS_EMLSR_GET(_var) \ + (((_var) & HTT_ML_PEER_DETAILS_EMLSR_M) >> \ + HTT_ML_PEER_DETAILS_EMLSR_S) + #define HTT_ML_PEER_DETAILS_EMLSR_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR, _val); \ + ((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_M)); \ + ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_S)); \ + } while (0) + /* end deprecated */ + #define HTT_ML_PEER_DETAILS_IS_STA_KO_GET(_var) \ (((_var) & HTT_ML_PEER_DETAILS_IS_STA_KO_M) >> \ HTT_ML_PEER_DETAILS_IS_STA_KO_S) @@ -9134,6 +9154,18 @@ typedef htt_stats_ml_link_info_details_tlv htt_ml_link_info_tlv; ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_ALLOCATED_S)); \ } while (0) +#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_GET(_var) \ + (((_var) & HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M) >> \ + HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S) + +#define HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_ML_PEER_DETAILS_EMLSR_SUPPORT, _val); \ + ((_var) &= ~(HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_M)); \ + ((_var) |= ((_val) << HTT_ML_PEER_DETAILS_EMLSR_SUPPORT_S)); \ + } while (0) + + #define HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_GET(_var) \ (((_var) & HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_M) >> \ HTT_ML_PEER_DETAILS_PARTICIPATING_CHIPS_BITMAP_S) @@ -9156,11 +9188,21 @@ typedef struct { primary_chip_id : 2, link_init_count : 3, non_str : 1, - emlsr : 1, + is_emlsr_active : 1, is_sta_ko : 1, num_local_links : 2, allocated : 1, - reserved : 4; + emlsr_support : 1, + reserved : 3; + }; + struct { + /* + * For backwards compatibility, use a dummy union element to + * retain the old "emlsr" name for the "is_emlsr_active" bitfield. + */ + A_UINT32 dummy1 : 23, + emlsr : 1, + dummy2 : 8; }; A_UINT32 msg_dword_1; }; From 020857f9da95b4128acf565d7e7390674a7606e0 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 15 Nov 2023 18:01:31 -0800 Subject: [PATCH 19/23] fw-api: CL 25308727 - update fw common interface files HTT stats: add progressive DFS stats in phy_stats TLV Change-Id: Ifa1ca7826001915c08cc9e1733d0afe78a414d63 CRs-Fixed: 2262693 --- fw/htt_stats.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 9659bfb437de..b9e5b370a81a 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -8198,6 +8198,41 @@ typedef struct { A_UINT32 fw_run_time; /** per chain runtime noise floor values in dBm */ A_INT32 runTime_nf_chain[HTT_STATS_MAX_CHAINS]; + + /** DFS SW based progressive stats - start **/ + + /* current AP operating bandwidth (refer to WLAN_PHY_MODE) */ + A_UINT32 current_OBW; + /* current AP device bandwidth (refer to WLAN_PHY_MODE) */ + A_UINT32 current_DBW; + /* last_radar_type: last detected radar type + * This last_radar_type field contains a value whose meaning is not + * exposed to the host; this field is only provided for debug purposes. + */ + A_UINT32 last_radar_type; + /* dfs_reg_domain: curent DFS regulatory domain + * This dfs_reg_domain field contains a value whose meaning is not + * exposed to the host; this field is only provided for debug purposes. + */ + A_UINT32 dfs_reg_domain; + /* radar_mask_bit: Radar mask setting programmed in HW registers. + * Each bit represents a 20 MHz portion of the channel. + * Bit 0 represents the highest 20 MHz portion within the channel. + * For example... + * For a 80 MHz channel, bit0 = highest 20 MHz, bit3 = lowest 20 MHz + * For a 320 MHz channel, bit0 = highest 20 MHz, bit15 = lowest 20 MHz + */ + A_UINT32 radar_mask_bit; + /* DFS radar rssi threshold (units = dBm) */ + A_INT32 radar_rssi; + /* DFS global flags (refer to IEEE80211_CHAN_* defines) */ + A_UINT32 radar_dfs_flags; + /* band center frequency of operating bandwidth (units = MHz) */ + A_UINT32 band_center_frequency_OBW; + /* band center frequency of device bandwidth (units = MHz) */ + A_UINT32 band_center_frequency_DBW; + + /** DFS SW based progressive stats - end **/ } htt_stats_phy_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_phy_stats_tlv htt_phy_stats_tlv; From d1dfc112cc8ec806f070d08f225311d5fdd2abaa Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 20 Nov 2023 00:19:29 -0800 Subject: [PATCH 20/23] fw-api: CL 25314900 - update fw common interface files WMI: add disallow_connect_mode bitmap in roam_mlo_config_cmd_fixed_param Change-Id: I2534d660509abdf87fef6d8a382b286dca0e51d5 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 15 +++++++++++++++ fw/wmi_version.h | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index c0be1a51b652..d333d5f8b859 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -40345,6 +40345,14 @@ typedef struct { A_UINT32 scoring_capability_bitmap; } wmi_roam_capability_report_event_fixed_param; +/* + * Definition of disallow connection modes. + */ +typedef enum { + /* Bit 0: roam to 5GL+5GH MLSR is not allowed if the bit is set. */ + WMI_ROAM_MLO_CONNECTION_MODE_5GL_5GH_MLSR = 0x1, +} WMI_ROAM_MLO_CONNECTION_MODES; + typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_mlo_config_cmd_fixed_param */ wmi_mac_addr partner_link_addr; /* Assigned link address which can be used as self link addr when vdev is not created */ @@ -40364,6 +40372,13 @@ typedef struct { */ A_UINT32 support_link_band; /* Configure the band bitmap of mlo connection supports. */ A_UINT32 max_active_links; /* Max active links supported for STA */ + + /* + * Disallow the specified connection mode(s) when roaming to MLD AP. + * Refer to the WMI_ROAM_MLO_CONNECTION_MODES enum for the connection mode + * each bit represents. + */ + A_UINT32 disallow_connect_modes; } wmi_roam_mlo_config_cmd_fixed_param; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b678acc74078..d2ac9bf7a4fc 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1417 +#define __WMI_REVISION_ 1418 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 4a7ea926f5ad410ef058388a9382af5ebde090f1 Mon Sep 17 00:00:00 2001 From: spuligil Date: Mon, 20 Nov 2023 00:20:29 -0800 Subject: [PATCH 21/23] fw-api: CL 25328958 - update fw common interface files WMI: add PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMD def Change-Id: I3c3db569885ccba61f70d3307fe6a7b02a9ad804 CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 9 +++++++++ fw/wmi_unified.h | 39 +++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 0ac379c5f8fd..ce93e5939ecf 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1419,6 +1419,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_peer_per_reorder_q_setup_params_t, WMITLV_TAG_STRUC_wmi_coex_multiple_config_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_disallowed_mlo_mode_bitmap_param, + WMITLV_TAG_STRUC_wmi_led_blink_rate_table, + WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -1960,6 +1962,7 @@ typedef enum { OP(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID) \ OP(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID) \ OP(WMI_COEX_MULTIPLE_CONFIG_CMDID) \ + OP(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5522,6 +5525,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param, wmi_pdev_wsi_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WSI_STATS_INFO_CMDID); +/* Data Rate based GPIO LED blink and Rate Table Download command */ +#define WMITLV_TABLE_WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param, wmi_enable_led_blink_download_rate_table_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC,wmi_led_blink_rate_table, led_blink_rate_table, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID); + /* CSA status indication command to inform FW about host accepting or rejecting csa event*/ #define WMITLV_TABLE_WMI_CSA_EVENT_STATUS_INDICATION_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_status_ind_fixed_param , wmi_csa_event_status_ind_fixed_param,fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index d333d5f8b859..ad80f387af26 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -516,6 +516,11 @@ typedef enum { WMI_PDEV_SET_RF_PATH_CMDID, /** WSI stats info WMI command */ WMI_PDEV_WSI_STATS_INFO_CMDID, + /* + * WMI cmd to Enable LED blink based on Tx+Rx Data Rate + * and download LED ON/OFF Rate table + */ + WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID, /* VDEV (virtual device) specific commands */ @@ -37079,6 +37084,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_AUDIO_TRANSPORT_SWITCH_RESP_STATUS_CMDID); WMI_RETURN_STRING(WMI_PEER_MULTIPLE_REORDER_QUEUE_SETUP_CMDID); WMI_RETURN_STRING(WMI_COEX_MULTIPLE_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_PDEV_ENABLE_LED_BLINK_DOWNLOAD_TABLE_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -47229,6 +47235,39 @@ typedef struct { A_UINT32 pdev_id; } wmi_pdev_utf_event_fixed_param; +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_led_blink_rate_table */ + A_UINT32 tlv_header; + + A_UINT32 on_time; /* units = milliseconds */ + A_UINT32 off_time; /* units = milliseconds */ +} wmi_led_blink_rate_table; + +typedef struct { + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_enable_led_blink_download_rate_table_fixed_param */ + A_UINT32 tlv_header; + /* Pdev Id 0 or 1 based on split phy */ + A_UINT32 pdev_id; + /* Feature enable or disable flag 0-disable 1-enable */ + A_UINT32 blink_enable_flag; + /* Bandwidth (Mbps) of each index in the blink rate table. + * This quantum specification tells the FW which of the blink rate table + * elements to use; the FW will divide the data rate by this bw_per_index + * and round down, to obtain the index into the rate table for the blink + * rate corresponding to the data rate. + */ + A_UINT32 bw_per_index; + + /** + * Following this fixed_param TLV are the following additional TLVs: + * - wmi_led_blink_rate_table led_blink_rate_table[] + * The led_blink_rate_table[] elements need to be ordered by + * increasing data rate, so that by dividing the data rate by + * bw_per_index, the FW can find which index/element of the + * led_blink_rate_table[] array to use. + */ +} wmi_enable_led_blink_download_rate_table_fixed_param; + typedef enum { /* Used when peer attempts connection with vdev */ VDEV_OOB_CONNECT_REQUEST = 0, diff --git a/fw/wmi_version.h b/fw/wmi_version.h index d2ac9bf7a4fc..bbcabd925b1a 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1418 +#define __WMI_REVISION_ 1419 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From cd3a6e66a64ac05111266ce1cead8de7ba9113d9 Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 22 Nov 2023 06:01:50 -0800 Subject: [PATCH 22/23] fw-api: CL 25394812 - update fw common interface files WMI: add periodic report fields to vdev_tsf_tstamp_action_cmd Change-Id: If86219eeb93909cafa933623eb010235dc756e35 CRs-Fixed: 2262693 --- fw/wmi_unified.h | 14 ++++++++++++++ fw/wmi_version.h | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index ad80f387af26..0c17b3f686dd 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -31294,8 +31294,16 @@ typedef enum { TSF_TSTAMP_QTIMER_CAPTURE_REQ = 4, TSF_TSTAMP_AUTO_REPORT_ENABLE = 5, TSF_TSTAMP_AUTO_REPORT_DISABLE = 6, + TSF_TSTAMP_PERIODIC_REPORT_REQ = 5, } wmi_tsf_tstamp_action; +typedef enum { + TSF_TSTAMP_REPORT_TTIMER = 0x1, /* bit 0: TSF Timer */ + TSF_TSTAMP_REPORT_QTIMER = 0x2, /* bit 1: H/T common Timer */ +} wmi_tsf_tstamp_report_flags; + +#define TSF_TSTAMP_REPORT_PERIOD_MIN 1000 /* ms units */ + typedef struct { /** TLV tag and len; tag equals * WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param */ @@ -31304,6 +31312,12 @@ typedef struct { A_UINT32 vdev_id; /* action type, refer to wmi_tsf_tstamp_action */ A_UINT32 tsf_action; + /* + * The below fields are valid only when tsf_action is + * TSF_TSTAMP_PERIODIC_REPORT_REQ. + */ + A_UINT32 period; /* the period of report timestamp, ms units */ + A_UINT32 flags; /* wmi_tsf_tstamp_report_flags */ } wmi_vdev_tsf_tstamp_action_cmd_fixed_param; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index bbcabd925b1a..dfb75193c9ff 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1419 +#define __WMI_REVISION_ 1420 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work From 43ce3eded400e86c2dfc565aa7cd07c90c2e4e5b Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 22 Nov 2023 06:02:58 -0800 Subject: [PATCH 23/23] fw-api: CL 25397057 - update fw common interface files WMI: add QMS_DLKM_SUPPORT flag in rsc cfg struct + QMS OEM_DATA_EVT cause def Change-Id: Ia72a505e972b4c4a4de3745f241dc0dc8b89030e CRs-Fixed: 2262693 --- fw/wmi_unified.h | 13 ++++++++++++- fw/wmi_version.h | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 0c17b3f686dd..f4ada7828371 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -4632,7 +4632,12 @@ typedef struct { * Refer to the below definitions of the * WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_GET * and _SET macros. - * Bits 31:15 - Reserved + * Bit 15 + * This bit will be set if the has qms_dlkm support enabled. + * Refer to the below definitions of the + * WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_GET + * and _SET macros. + * Bits 31:16 - Reserved */ A_UINT32 host_service_flags; @@ -5080,6 +5085,11 @@ typedef struct { #define WMI_RSRC_CFG_HOST_SERVICE_FLAG_RADAR_FLAGS_FULL_BW_NOL_SET(host_service_flags, val) \ WMI_SET_BITS(host_service_flags, 14, 1, val) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_GET(host_service_flags) \ + WMI_GET_BITS(host_service_flags, 15, 1) +#define WMI_RSRC_CFG_HOST_SERVICE_FLAG_QMS_DLKM_SUPPORT_SET(host_service_flags, val) \ + WMI_SET_BITS(host_service_flags, 15, 1, val) + #define WMI_RSRC_CFG_CARRIER_CFG_CHARTER_ENABLE_GET(carrier_config) \ WMI_GET_BITS(carrier_config, 0, 1) @@ -43888,6 +43898,7 @@ enum wmi_oem_data_evt_cause { WMI_OEM_DATA_EVT_CAUSE_UNSPECIFIED = 0, WMI_OEM_DATA_EVT_CAUSE_CMD_REQ = 1, WMI_OEM_DATA_EVT_CAUSE_ASYNC = 2, + WMI_OEM_DATA_EVT_CAUSE_QMS = 3, }; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index dfb75193c9ff..e898ce8680f4 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1420 +#define __WMI_REVISION_ 1421 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work