Loading fw/htt.h +155 −1 Original line number Original line Diff line number Diff line Loading @@ -233,9 +233,10 @@ * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def. * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def. * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. */ */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 108 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_NUM_TX_FRAG_DESC 1024 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -5177,6 +5178,7 @@ enum htt_srng_ring_id { HTT_TX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_TX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_RX_MON_HOST2MON_BUF_RING, /* Status buffers and Packet buffers are provided by host */ HTT_RX_MON_HOST2MON_BUF_RING, /* Status buffers and Packet buffers are provided by host */ HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_LPASS_TO_FW_RXBUF_RING, /* new LPASS to FW refill ring to recycle rx buffers */ /* Add Other SRING which can't be directly configured by host software above this line */ /* Add Other SRING which can't be directly configured by host software above this line */ }; }; Loading Loading @@ -9903,6 +9905,8 @@ enum htt_t2h_msg_type { HTT_T2H_SAWF_MSDUQ_INFO_IND = 0x2e, /* alias */ HTT_T2H_SAWF_MSDUQ_INFO_IND = 0x2e, /* alias */ HTT_T2H_MSG_TYPE_STREAMING_STATS_IND = 0x2f, HTT_T2H_MSG_TYPE_STREAMING_STATS_IND = 0x2f, HTT_T2H_PPDU_ID_FMT_IND = 0x30, HTT_T2H_PPDU_ID_FMT_IND = 0x30, HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31, HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32, HTT_T2H_MSG_TYPE_TEST, HTT_T2H_MSG_TYPE_TEST, Loading Loading @@ -13400,6 +13404,156 @@ typedef enum { #define HTT_RX_DELBA_BYTES 4 #define HTT_RX_DELBA_BYTES 4 /** * @brief target -> host rx ADDBA / DELBA message definitions * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN * * @details * The following diagram shows the format of the rx ADDBA extn message sent * from the target to the host: * * |31 20|19 16|15 13|12 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_DELBA_EXTN * * The following diagram shows the format of the rx DELBA message sent * from the target to the host: * * |31 20|19 16|15 13|12 10|9 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | IR| msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * The following field definitions describe the format of the rx ADDBA * and DELBA messages sent from the target to the host. * - MSG_TYPE * Bits 7:0 * Purpose: identifies this as an rx ADDBA or DELBA message * Value: ADDBA -> 0x31 (HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN), * DELBA -> 0x32 (HTT_T2H_MSG_TYPE_RX_DELBA_EXTN) * - IR (initiator / recipient) * Bits 9:8 (DELBA only) * Purpose: specify whether the DELBA handshake was initiated by the * local STA/AP, or by the peer STA/AP * Value: * 0 - unspecified * 1 - initiator (a.k.a. originator) * 2 - recipient (a.k.a. responder) * 3 - unused / reserved * Value: * block ack window length specified by the received ADDBA/DELBA * management message. * - TID * Bits 19:16 * Purpose: Specifies which traffic identifier the ADDBA / DELBA is for. * Value: * TID specified by the received ADDBA or DELBA management message. * - PEER_ID * Bits 31:20 * Purpose: Identifies which peer sent the ADDBA / DELBA. * Value: * ID (hash value) used by the host for fast, direct lookup of * host SW peer info, including rx reorder states. * == DWORD 1 * - WIN_SIZE * Bits 12:0 for ADDBA, bits 12:0 for DELBA * Purpose: Specifies the length of the block ack window (max = 8191). */ #define HTT_RX_ADDBA_EXTN_TID_M 0xf0000 #define HTT_RX_ADDBA_EXTN_TID_S 16 #define HTT_RX_ADDBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_ADDBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_ADDBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_TID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_TID_M) >> HTT_RX_ADDBA_EXTN_TID_S) #define HTT_RX_ADDBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_PEER_ID_M) >> HTT_RX_ADDBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_ADDBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_ADDBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_ADDBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_ADDBA_WIN_SIZE_M) >> HTT_RX_ADDBA_WIN_SIZE_S) #define HTT_RX_ADDBA_EXTN_BYTES 8 #define HTT_RX_DELBA_EXTN_INITIATOR_M 0x00000300 #define HTT_RX_DELBA_EXTN_INITIATOR_S 8 #define HTT_RX_DELBA_EXTN_TID_M 0xf0000 #define HTT_RX_DELBA_EXTN_TID_S 16 #define HTT_RX_DELBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_DELBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_DELBA_INITIATOR_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value); \ (word) |= (value) << HTT_RX_DELBA_INITIATOR_S; \ } while (0) #define HTT_RX_DELBA_INITIATOR_GET(word) \ (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S) #define HTT_RX_DELBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_TID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_TID_M) >> HTT_RX_DELBA_EXTN_TID_S) #define HTT_RX_DELBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_PEER_ID_M) >> HTT_RX_DELBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_DELBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_DELBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_DELBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_DELBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_WIN_SIZE_M) >> HTT_RX_DELBA_EXTN_WIN_SIZE_S) #define HTT_RX_DELBA_EXTN_BYTES 8 /** /** * @brief tx queue group information element definition * @brief tx queue group information element definition * * fw/wlan_module_ids.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -136,6 +136,8 @@ typedef enum { WLAN_MODULE_OEM6, /* 0x62 */ WLAN_MODULE_OEM6, /* 0x62 */ WLAN_MODULE_OEM7, /* 0x63 */ WLAN_MODULE_OEM7, /* 0x63 */ WLAN_MODULE_T2LM, /* 0x64 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, } WLAN_MODULE_ID; } WLAN_MODULE_ID; Loading fw/wmi_services.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -591,6 +591,7 @@ typedef enum { WMI_SERVICE_TDLS_6GHZ_SUPPORT = 338, /* FW supports 6GHz TDLS both on base channel and offchannel */ WMI_SERVICE_TDLS_6GHZ_SUPPORT = 338, /* FW supports 6GHz TDLS both on base channel and offchannel */ WMI_SERVICE_LINKSPEED_ROAM_TRIGGER_SUPPORT = 339, /* FW supports linkspeed trigger roam */ WMI_SERVICE_LINKSPEED_ROAM_TRIGGER_SUPPORT = 339, /* FW supports linkspeed trigger roam */ WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT = 340, /* FW supports recovering system from UMAC hang condition */ WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT = 340, /* FW supports recovering system from UMAC hang condition */ WMI_SERVICE_COAP_OFFLOAD_SUPPORT = 341, /* FW supports CoAP (the Constrained Application Protocol) offload */ WMI_MAX_EXT2_SERVICE WMI_MAX_EXT2_SERVICE Loading fw/wmi_tlv_defs.h +58 −0 Original line number Original line Diff line number Diff line Loading @@ -1275,6 +1275,13 @@ typedef enum { WMITLV_TAG_STRUC_wmi_request_halphy_ctrl_path_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_request_halphy_ctrl_path_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_halphy_ctrl_path_stats_event_fixed_param, WMITLV_TAG_STRUC_wmi_halphy_ctrl_path_stats_event_fixed_param, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param, WMITLV_TAG_STRUC_wmi_coap_tuple, } WMITLV_TAG_ID; } WMITLV_TAG_ID; /* /* Loading Loading @@ -1773,6 +1780,11 @@ typedef enum { OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID) \ OP(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID) \ OP(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID) \ OP(WMI_PEER_FLUSH_POLICY_CMDID) \ OP(WMI_PEER_FLUSH_POLICY_CMDID) \ OP(WMI_WOW_COAP_ADD_PATTERN_CMDID) \ OP(WMI_WOW_COAP_DEL_PATTERN_CMDID) \ OP(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID) \ OP(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID) \ OP(WMI_WOW_COAP_GET_BUF_INFO_CMDID) \ /* add new CMD_LIST elements above this line */ /* add new CMD_LIST elements above this line */ Loading Loading @@ -2061,6 +2073,7 @@ typedef enum { OP(WMI_VDEV_LATENCY_LEVEL_EVENTID) \ OP(WMI_VDEV_LATENCY_LEVEL_EVENTID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID) \ OP(WMI_HALPHY_CTRL_PATH_STATS_EVENTID) \ OP(WMI_HALPHY_CTRL_PATH_STATS_EVENTID) \ OP(WMI_WOW_COAP_BUF_INFO_EVENTID) \ /* add new EVT_LIST elements above this line */ /* add new EVT_LIST elements above this line */ Loading Loading @@ -5056,6 +5069,43 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, wmi_peer_flush_policy_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, wmi_peer_flush_policy_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_FLUSH_POLICY_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_PEER_FLUSH_POLICY_CMDID); /** COAP Add Pattern Cmd * TLV (tag length value ) parameters follow the coap_add_pattern * structure. The TLV's are: * A_UINT8 verify_string[]; * A_UINT8 coapmsg[]; */ #define WMITLV_TABLE_WMI_WOW_COAP_ADD_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param, WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, verify_string, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, coapmsg, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_ADD_PATTERN_CMDID); /* COAP Del Pattern Cmd */ #define WMITLV_TABLE_WMI_WOW_COAP_DEL_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param, WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_DEL_PATTERN_CMDID); /** COAP Add Keepalive Pattern Cmd * TLV (tag length value ) parameters follow the coap_add_keepalive_pattern * structure. The TLV's are: * A_UINT8 coapmsg[]; */ #define WMITLV_TABLE_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param, WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, coapmsg, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID); /* COAP Del Keepalive Pattern Cmd */ #define WMITLV_TABLE_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param, WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID); /* COAP Get Buffer Info Cmd */ #define WMITLV_TABLE_WMI_WOW_COAP_GET_BUF_INFO_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_GET_BUF_INFO_CMDID); /************************** TLV definitions of WMI events *******************************/ /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -6855,6 +6905,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PMM_AVAILABLE_SCRATCH_REG_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_COMPLETE_EVENTID); WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_COMPLETE_EVENTID); /* COAP buffer info event */ #define WMITLV_TABLE_WMI_WOW_COAP_BUF_INFO_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param, WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_coap_tuple, coap_tuple, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, payloads, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_BUF_INFO_EVENTID); #ifdef __cplusplus #ifdef __cplusplus } } Loading fw/wmi_unified.h +120 −1 Original line number Original line Diff line number Diff line Loading @@ -960,6 +960,29 @@ typedef enum { /* Set which action category should wake the host from suspend */ /* Set which action category should wake the host from suspend */ WMI_WOW_SET_ACTION_WAKE_UP_CMDID, WMI_WOW_SET_ACTION_WAKE_UP_CMDID, /* * Set a pattern to match broadcast CoAP packet in WoW mode. * If match and verify pass, cache the packet and then reply * a unicast response in local with pre-configured packet. */ WMI_WOW_COAP_ADD_PATTERN_CMDID, /* Delete a pattern match broadcast CoAP packet */ WMI_WOW_COAP_DEL_PATTERN_CMDID, /* * Add a CoAP keepalive pattern to send a CoAP broadcast packet * when configured timeout occured. */ WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID, /* Delete a CoAP keepalive pattern */ WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID, /* Host read the cached CoAP packets after resume */ WMI_WOW_COAP_GET_BUF_INFO_CMDID, /* RTT measurement related cmd */ /* RTT measurement related cmd */ /** request to make an RTT measurement */ /** request to make an RTT measurement */ WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RTT), WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RTT), Loading Loading @@ -1886,6 +1909,7 @@ typedef enum { WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), WMI_D0_WOW_DISABLE_ACK_EVENTID, WMI_D0_WOW_DISABLE_ACK_EVENTID, WMI_WOW_INITIAL_WAKEUP_EVENTID, WMI_WOW_INITIAL_WAKEUP_EVENTID, WMI_WOW_COAP_BUF_INFO_EVENTID, /* RTT related event ID */ /* RTT related event ID */ /** RTT measurement report */ /** RTT measurement report */ Loading Loading @@ -2323,6 +2347,7 @@ typedef enum { #define WMI_CHAN_FLAG_PSC 18 /* Indicate it is a PSC (preferred scanning channel) */ #define WMI_CHAN_FLAG_PSC 18 /* Indicate it is a PSC (preferred scanning channel) */ #define WMI_CHAN_FLAG_NAN_DISABLED 19 /* Indicates that NAN operations are disabled on this channel */ #define WMI_CHAN_FLAG_NAN_DISABLED 19 /* Indicates that NAN operations are disabled on this channel */ #define WMI_CHAN_FLAG_STA_DFS 20 /* Indicates if STA should process radar signals */ #define WMI_CHAN_FLAG_STA_DFS 20 /* Indicates if STA should process radar signals */ #define WMI_CHAN_FLAG_ALLOW_EHT 21 /* EHT (11be) is allowed on this channel */ #define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \ #define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \ (pwmi_channel)->info |= (1 << flag); \ (pwmi_channel)->info |= (1 << flag); \ Loading Loading @@ -14192,6 +14217,13 @@ typedef enum { */ */ WMI_VDEV_PARAM_MCAST_STEERING, /* 0x800E */ WMI_VDEV_PARAM_MCAST_STEERING, /* 0x800E */ /* * 0 - XPAN disabled * 1 - XPAN Lossless audio profile * 2 - XPAN Gaming profile */ WMI_VDEV_PARAM_XPAN_PROFILE, /* 0x800F */ /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ } WMI_VDEV_PARAM; } WMI_VDEV_PARAM; Loading Loading @@ -19230,6 +19262,88 @@ typedef struct { */ */ } WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param; } WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; A_UINT32 cache_timeout; /* the cached packet expire timeout in ms */ A_UINT32 dest_udp_port; /* dest UDP port to match recived CoAP messsage */ A_UINT32 verify_offset; /* UDP payload offset to verify */ A_UINT32 verify_len; /* UDP payload length to verofy*/ A_UINT32 coapmsg_len; /* CoAP reply message length */ /* The below TLV (tag length value) parameters follow this fixed_param TLV: * A_UINT8 verify_string[]; verify content, * length identified by verify_len; * A_UINT8 coapmsg[]; CoAP reply message, * length identified by coapmsg_len; */ } WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; } WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; A_UINT32 ipv4_addr; /* vdev IPv4 address */ A_UINT32 remote_udp_port; /* remote UDP port to send keepalive broadcast CoAP message */ A_UINT32 timeout; /* the period to send keepalive message in ms */ A_UINT32 coapmsg_len; /* keeplive CoAP message length */ /* The below TLV (tag length value) parameters follow this fixed_param TLV: * A_UINT8 coapmsg[]; CoAP keepalive message, * length specifed by coapmsg_len field */ } WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; } WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; } WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param; typedef struct { A_UINT32 tlv_hdr; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coap_tuple */ A_UINT64 tsf; /* host and firmware sync tsf */ A_UINT32 src_ip; A_UINT32 payload_len; } wmi_coap_tuple; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_BUF_INFO_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; /** more_data will be set depending on the number of tuples need transmit */ A_UINT32 more_tuples; /* The below TLV (tag length value) parameters follow this fixed_param TLV: * wmi_coap_tuple coap_tuple[]; <-- Array of coap_tuple. * A_UINT32 payloads[] <-- the cached received CoAP messages. * The number of message payloads combined into the payloads[] * array matches the number of coap tuples. * The length of each message payload is specified by the * "payload_len" field in the corresponding coap_tuple. * The subsequent message payload starts at the next 4-byte aligned * position within payloads[]. * For example, if there are 3 coap_tuples, with * coap_tuples[0].payload_len = 12 * coap_tuples[1].payload_len = 23 * coap_tuples[2].payload_len = 34 * then msg 0 payload will be stored in payloads[0] - payloads[11] * message 1 payload will be stored in payloads[12] - payloads[34] * message 2 payload will be stored in payloads[36] - payloads[69] */ } WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param; typedef struct wow_event_info_s { typedef struct wow_event_info_s { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param */ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param */ A_UINT32 vdev_id; A_UINT32 vdev_id; Loading Loading @@ -31505,6 +31619,11 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID); WMI_RETURN_STRING(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID); WMI_RETURN_STRING(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID); WMI_RETURN_STRING(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID); WMI_RETURN_STRING(WMI_PEER_FLUSH_POLICY_CMDID); WMI_RETURN_STRING(WMI_PEER_FLUSH_POLICY_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_ADD_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_DEL_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_GET_BUF_INFO_CMDID); } } return (A_UINT8 *) "Invalid WMI cmd"; return (A_UINT8 *) "Invalid WMI cmd"; Loading
fw/htt.h +155 −1 Original line number Original line Diff line number Diff line Loading @@ -233,9 +233,10 @@ * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def. * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def. * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. */ */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 108 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_NUM_TX_FRAG_DESC 1024 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -5177,6 +5178,7 @@ enum htt_srng_ring_id { HTT_TX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_TX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_RX_MON_HOST2MON_BUF_RING, /* Status buffers and Packet buffers are provided by host */ HTT_RX_MON_HOST2MON_BUF_RING, /* Status buffers and Packet buffers are provided by host */ HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */ HTT_LPASS_TO_FW_RXBUF_RING, /* new LPASS to FW refill ring to recycle rx buffers */ /* Add Other SRING which can't be directly configured by host software above this line */ /* Add Other SRING which can't be directly configured by host software above this line */ }; }; Loading Loading @@ -9903,6 +9905,8 @@ enum htt_t2h_msg_type { HTT_T2H_SAWF_MSDUQ_INFO_IND = 0x2e, /* alias */ HTT_T2H_SAWF_MSDUQ_INFO_IND = 0x2e, /* alias */ HTT_T2H_MSG_TYPE_STREAMING_STATS_IND = 0x2f, HTT_T2H_MSG_TYPE_STREAMING_STATS_IND = 0x2f, HTT_T2H_PPDU_ID_FMT_IND = 0x30, HTT_T2H_PPDU_ID_FMT_IND = 0x30, HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31, HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32, HTT_T2H_MSG_TYPE_TEST, HTT_T2H_MSG_TYPE_TEST, Loading Loading @@ -13400,6 +13404,156 @@ typedef enum { #define HTT_RX_DELBA_BYTES 4 #define HTT_RX_DELBA_BYTES 4 /** * @brief target -> host rx ADDBA / DELBA message definitions * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN * * @details * The following diagram shows the format of the rx ADDBA extn message sent * from the target to the host: * * |31 20|19 16|15 13|12 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_DELBA_EXTN * * The following diagram shows the format of the rx DELBA message sent * from the target to the host: * * |31 20|19 16|15 13|12 10|9 8|7 0| * |---------------------------------------------------------------------| * | peer ID | TID | reserved | IR| msg type | * |---------------------------------------------------------------------| * | reserved | window size | * |---------------------------------------------------------------------| * * The following field definitions describe the format of the rx ADDBA * and DELBA messages sent from the target to the host. * - MSG_TYPE * Bits 7:0 * Purpose: identifies this as an rx ADDBA or DELBA message * Value: ADDBA -> 0x31 (HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN), * DELBA -> 0x32 (HTT_T2H_MSG_TYPE_RX_DELBA_EXTN) * - IR (initiator / recipient) * Bits 9:8 (DELBA only) * Purpose: specify whether the DELBA handshake was initiated by the * local STA/AP, or by the peer STA/AP * Value: * 0 - unspecified * 1 - initiator (a.k.a. originator) * 2 - recipient (a.k.a. responder) * 3 - unused / reserved * Value: * block ack window length specified by the received ADDBA/DELBA * management message. * - TID * Bits 19:16 * Purpose: Specifies which traffic identifier the ADDBA / DELBA is for. * Value: * TID specified by the received ADDBA or DELBA management message. * - PEER_ID * Bits 31:20 * Purpose: Identifies which peer sent the ADDBA / DELBA. * Value: * ID (hash value) used by the host for fast, direct lookup of * host SW peer info, including rx reorder states. * == DWORD 1 * - WIN_SIZE * Bits 12:0 for ADDBA, bits 12:0 for DELBA * Purpose: Specifies the length of the block ack window (max = 8191). */ #define HTT_RX_ADDBA_EXTN_TID_M 0xf0000 #define HTT_RX_ADDBA_EXTN_TID_S 16 #define HTT_RX_ADDBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_ADDBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_ADDBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_TID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_TID_M) >> HTT_RX_ADDBA_EXTN_TID_S) #define HTT_RX_ADDBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_ADDBA_EXTN_PEER_ID_M) >> HTT_RX_ADDBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_ADDBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_ADDBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_ADDBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_ADDBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_ADDBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_ADDBA_WIN_SIZE_M) >> HTT_RX_ADDBA_WIN_SIZE_S) #define HTT_RX_ADDBA_EXTN_BYTES 8 #define HTT_RX_DELBA_EXTN_INITIATOR_M 0x00000300 #define HTT_RX_DELBA_EXTN_INITIATOR_S 8 #define HTT_RX_DELBA_EXTN_TID_M 0xf0000 #define HTT_RX_DELBA_EXTN_TID_S 16 #define HTT_RX_DELBA_EXTN_PEER_ID_M 0xfff00000 #define HTT_RX_DELBA_EXTN_PEER_ID_S 20 /*--- Dword 0 ---*/ #define HTT_RX_DELBA_INITIATOR_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value); \ (word) |= (value) << HTT_RX_DELBA_INITIATOR_S; \ } while (0) #define HTT_RX_DELBA_INITIATOR_GET(word) \ (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S) #define HTT_RX_DELBA_EXTN_TID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_TID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_TID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_TID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_TID_M) >> HTT_RX_DELBA_EXTN_TID_S) #define HTT_RX_DELBA_EXTN_PEER_ID_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_PEER_ID, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_PEER_ID_S; \ } while (0) #define HTT_RX_DELBA_EXTN_PEER_ID_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_PEER_ID_M) >> HTT_RX_DELBA_EXTN_PEER_ID_S) /*--- Dword 1 ---*/ #define HTT_RX_DELBA_EXTN_WIN_SIZE_M 0x1fff #define HTT_RX_DELBA_EXTN_WIN_SIZE_S 0 #define HTT_RX_DELBA_EXTN_WIN_SIZE_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_WIN_SIZE, value); \ (word) |= (value) << HTT_RX_DELBA_EXTN_WIN_SIZE_S; \ } while (0) #define HTT_RX_DELBA_EXTN_WIN_SIZE_GET(word) \ (((word) & HTT_RX_DELBA_EXTN_WIN_SIZE_M) >> HTT_RX_DELBA_EXTN_WIN_SIZE_S) #define HTT_RX_DELBA_EXTN_BYTES 8 /** /** * @brief tx queue group information element definition * @brief tx queue group information element definition * *
fw/wlan_module_ids.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -136,6 +136,8 @@ typedef enum { WLAN_MODULE_OEM6, /* 0x62 */ WLAN_MODULE_OEM6, /* 0x62 */ WLAN_MODULE_OEM7, /* 0x63 */ WLAN_MODULE_OEM7, /* 0x63 */ WLAN_MODULE_T2LM, /* 0x64 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, } WLAN_MODULE_ID; } WLAN_MODULE_ID; Loading
fw/wmi_services.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -591,6 +591,7 @@ typedef enum { WMI_SERVICE_TDLS_6GHZ_SUPPORT = 338, /* FW supports 6GHz TDLS both on base channel and offchannel */ WMI_SERVICE_TDLS_6GHZ_SUPPORT = 338, /* FW supports 6GHz TDLS both on base channel and offchannel */ WMI_SERVICE_LINKSPEED_ROAM_TRIGGER_SUPPORT = 339, /* FW supports linkspeed trigger roam */ WMI_SERVICE_LINKSPEED_ROAM_TRIGGER_SUPPORT = 339, /* FW supports linkspeed trigger roam */ WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT = 340, /* FW supports recovering system from UMAC hang condition */ WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT = 340, /* FW supports recovering system from UMAC hang condition */ WMI_SERVICE_COAP_OFFLOAD_SUPPORT = 341, /* FW supports CoAP (the Constrained Application Protocol) offload */ WMI_MAX_EXT2_SERVICE WMI_MAX_EXT2_SERVICE Loading
fw/wmi_tlv_defs.h +58 −0 Original line number Original line Diff line number Diff line Loading @@ -1275,6 +1275,13 @@ typedef enum { WMITLV_TAG_STRUC_wmi_request_halphy_ctrl_path_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_request_halphy_ctrl_path_stats_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_halphy_ctrl_path_stats_event_fixed_param, WMITLV_TAG_STRUC_wmi_halphy_ctrl_path_stats_event_fixed_param, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, WMITLV_TAG_STRUC_WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param, WMITLV_TAG_STRUC_wmi_coap_tuple, } WMITLV_TAG_ID; } WMITLV_TAG_ID; /* /* Loading Loading @@ -1773,6 +1780,11 @@ typedef enum { OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID) \ OP(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID) \ OP(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID) \ OP(WMI_PEER_FLUSH_POLICY_CMDID) \ OP(WMI_PEER_FLUSH_POLICY_CMDID) \ OP(WMI_WOW_COAP_ADD_PATTERN_CMDID) \ OP(WMI_WOW_COAP_DEL_PATTERN_CMDID) \ OP(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID) \ OP(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID) \ OP(WMI_WOW_COAP_GET_BUF_INFO_CMDID) \ /* add new CMD_LIST elements above this line */ /* add new CMD_LIST elements above this line */ Loading Loading @@ -2061,6 +2073,7 @@ typedef enum { OP(WMI_VDEV_LATENCY_LEVEL_EVENTID) \ OP(WMI_VDEV_LATENCY_LEVEL_EVENTID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID) \ OP(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID) \ OP(WMI_HALPHY_CTRL_PATH_STATS_EVENTID) \ OP(WMI_HALPHY_CTRL_PATH_STATS_EVENTID) \ OP(WMI_WOW_COAP_BUF_INFO_EVENTID) \ /* add new EVT_LIST elements above this line */ /* add new EVT_LIST elements above this line */ Loading Loading @@ -5056,6 +5069,43 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, wmi_peer_flush_policy_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_policy_cmd_fixed_param, wmi_peer_flush_policy_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_FLUSH_POLICY_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_PEER_FLUSH_POLICY_CMDID); /** COAP Add Pattern Cmd * TLV (tag length value ) parameters follow the coap_add_pattern * structure. The TLV's are: * A_UINT8 verify_string[]; * A_UINT8 coapmsg[]; */ #define WMITLV_TABLE_WMI_WOW_COAP_ADD_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param, WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, verify_string, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, coapmsg, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_ADD_PATTERN_CMDID); /* COAP Del Pattern Cmd */ #define WMITLV_TABLE_WMI_WOW_COAP_DEL_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param, WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_DEL_PATTERN_CMDID); /** COAP Add Keepalive Pattern Cmd * TLV (tag length value ) parameters follow the coap_add_keepalive_pattern * structure. The TLV's are: * A_UINT8 coapmsg[]; */ #define WMITLV_TABLE_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param, WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, coapmsg, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID); /* COAP Del Keepalive Pattern Cmd */ #define WMITLV_TABLE_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param, WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID); /* COAP Get Buffer Info Cmd */ #define WMITLV_TABLE_WMI_WOW_COAP_GET_BUF_INFO_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_GET_BUF_INFO_CMDID); /************************** TLV definitions of WMI events *******************************/ /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -6855,6 +6905,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PMM_AVAILABLE_SCRATCH_REG_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, wmi_pmm_scratch_reg_allocation_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_COMPLETE_EVENTID); WMITLV_CREATE_PARAM_STRUC(WMI_PMM_SCRATCH_REG_ALLOCATION_COMPLETE_EVENTID); /* COAP buffer info event */ #define WMITLV_TABLE_WMI_WOW_COAP_BUF_INFO_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param, WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_coap_tuple, coap_tuple, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, payloads, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_COAP_BUF_INFO_EVENTID); #ifdef __cplusplus #ifdef __cplusplus } } Loading
fw/wmi_unified.h +120 −1 Original line number Original line Diff line number Diff line Loading @@ -960,6 +960,29 @@ typedef enum { /* Set which action category should wake the host from suspend */ /* Set which action category should wake the host from suspend */ WMI_WOW_SET_ACTION_WAKE_UP_CMDID, WMI_WOW_SET_ACTION_WAKE_UP_CMDID, /* * Set a pattern to match broadcast CoAP packet in WoW mode. * If match and verify pass, cache the packet and then reply * a unicast response in local with pre-configured packet. */ WMI_WOW_COAP_ADD_PATTERN_CMDID, /* Delete a pattern match broadcast CoAP packet */ WMI_WOW_COAP_DEL_PATTERN_CMDID, /* * Add a CoAP keepalive pattern to send a CoAP broadcast packet * when configured timeout occured. */ WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID, /* Delete a CoAP keepalive pattern */ WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID, /* Host read the cached CoAP packets after resume */ WMI_WOW_COAP_GET_BUF_INFO_CMDID, /* RTT measurement related cmd */ /* RTT measurement related cmd */ /** request to make an RTT measurement */ /** request to make an RTT measurement */ WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RTT), WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RTT), Loading Loading @@ -1886,6 +1909,7 @@ typedef enum { WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), WMI_D0_WOW_DISABLE_ACK_EVENTID, WMI_D0_WOW_DISABLE_ACK_EVENTID, WMI_WOW_INITIAL_WAKEUP_EVENTID, WMI_WOW_INITIAL_WAKEUP_EVENTID, WMI_WOW_COAP_BUF_INFO_EVENTID, /* RTT related event ID */ /* RTT related event ID */ /** RTT measurement report */ /** RTT measurement report */ Loading Loading @@ -2323,6 +2347,7 @@ typedef enum { #define WMI_CHAN_FLAG_PSC 18 /* Indicate it is a PSC (preferred scanning channel) */ #define WMI_CHAN_FLAG_PSC 18 /* Indicate it is a PSC (preferred scanning channel) */ #define WMI_CHAN_FLAG_NAN_DISABLED 19 /* Indicates that NAN operations are disabled on this channel */ #define WMI_CHAN_FLAG_NAN_DISABLED 19 /* Indicates that NAN operations are disabled on this channel */ #define WMI_CHAN_FLAG_STA_DFS 20 /* Indicates if STA should process radar signals */ #define WMI_CHAN_FLAG_STA_DFS 20 /* Indicates if STA should process radar signals */ #define WMI_CHAN_FLAG_ALLOW_EHT 21 /* EHT (11be) is allowed on this channel */ #define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \ #define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \ (pwmi_channel)->info |= (1 << flag); \ (pwmi_channel)->info |= (1 << flag); \ Loading Loading @@ -14192,6 +14217,13 @@ typedef enum { */ */ WMI_VDEV_PARAM_MCAST_STEERING, /* 0x800E */ WMI_VDEV_PARAM_MCAST_STEERING, /* 0x800E */ /* * 0 - XPAN disabled * 1 - XPAN Lossless audio profile * 2 - XPAN Gaming profile */ WMI_VDEV_PARAM_XPAN_PROFILE, /* 0x800F */ /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ } WMI_VDEV_PARAM; } WMI_VDEV_PARAM; Loading Loading @@ -19230,6 +19262,88 @@ typedef struct { */ */ } WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param; } WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; A_UINT32 cache_timeout; /* the cached packet expire timeout in ms */ A_UINT32 dest_udp_port; /* dest UDP port to match recived CoAP messsage */ A_UINT32 verify_offset; /* UDP payload offset to verify */ A_UINT32 verify_len; /* UDP payload length to verofy*/ A_UINT32 coapmsg_len; /* CoAP reply message length */ /* The below TLV (tag length value) parameters follow this fixed_param TLV: * A_UINT8 verify_string[]; verify content, * length identified by verify_len; * A_UINT8 coapmsg[]; CoAP reply message, * length identified by coapmsg_len; */ } WMI_WOW_COAP_ADD_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; } WMI_WOW_COAP_DEL_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; A_UINT32 ipv4_addr; /* vdev IPv4 address */ A_UINT32 remote_udp_port; /* remote UDP port to send keepalive broadcast CoAP message */ A_UINT32 timeout; /* the period to send keepalive message in ms */ A_UINT32 coapmsg_len; /* keeplive CoAP message length */ /* The below TLV (tag length value) parameters follow this fixed_param TLV: * A_UINT8 coapmsg[]; CoAP keepalive message, * length specifed by coapmsg_len field */ } WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; } WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMD_fixed_param; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; } WMI_WOW_COAP_GET_BUF_INFO_CMD_fixed_param; typedef struct { A_UINT32 tlv_hdr; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coap_tuple */ A_UINT64 tsf; /* host and firmware sync tsf */ A_UINT32 src_ip; A_UINT32 payload_len; } wmi_coap_tuple; typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_COAP_BUF_INFO_fixed_param */ A_UINT32 vdev_id; A_UINT32 pattern_id; /** more_data will be set depending on the number of tuples need transmit */ A_UINT32 more_tuples; /* The below TLV (tag length value) parameters follow this fixed_param TLV: * wmi_coap_tuple coap_tuple[]; <-- Array of coap_tuple. * A_UINT32 payloads[] <-- the cached received CoAP messages. * The number of message payloads combined into the payloads[] * array matches the number of coap tuples. * The length of each message payload is specified by the * "payload_len" field in the corresponding coap_tuple. * The subsequent message payload starts at the next 4-byte aligned * position within payloads[]. * For example, if there are 3 coap_tuples, with * coap_tuples[0].payload_len = 12 * coap_tuples[1].payload_len = 23 * coap_tuples[2].payload_len = 34 * then msg 0 payload will be stored in payloads[0] - payloads[11] * message 1 payload will be stored in payloads[12] - payloads[34] * message 2 payload will be stored in payloads[36] - payloads[69] */ } WMI_WOW_COAP_BUF_INFO_EVENT_fixed_param; typedef struct wow_event_info_s { typedef struct wow_event_info_s { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param */ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param */ A_UINT32 vdev_id; A_UINT32 vdev_id; Loading Loading @@ -31505,6 +31619,11 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID); WMI_RETURN_STRING(WMI_ROAM_GET_VENDOR_CONTROL_PARAM_CMDID); WMI_RETURN_STRING(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID); WMI_RETURN_STRING(WMI_REQUEST_HALPHY_CTRL_PATH_STATS_CMDID); WMI_RETURN_STRING(WMI_PEER_FLUSH_POLICY_CMDID); WMI_RETURN_STRING(WMI_PEER_FLUSH_POLICY_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_ADD_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_DEL_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_ADD_KEEPALIVE_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_DEL_KEEPALIVE_PATTERN_CMDID); WMI_RETURN_STRING(WMI_WOW_COAP_GET_BUF_INFO_CMDID); } } return (A_UINT8 *) "Invalid WMI cmd"; return (A_UINT8 *) "Invalid WMI cmd";