diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 71ede0c766bb..6adcdbfac4e5 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -736,6 +736,9 @@ typedef enum { WMI_SERVICE_11BI_PMKID_PRIVACY_SUPPORT = 473, WMI_SERVICE_11BI_DS_MAC_ADDR_SUPPORT = 474, + WMI_SERVICE_CCK_RX_SUPPORT_5GHZ = 475, /* Indicates FW supports CCK RX in 5 GHz band */ + WMI_SERVICE_CCK_TX_SUPPORT_5GHZ = 476, /* Indicates FW supports CCK TX in 5 GHZ band */ + WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 12eb730c8aa1..128ee667f305 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -19806,6 +19806,18 @@ typedef enum { */ WMI_VDEV_PARAM_2xLDPC, /* 0xCA */ + /** + * Self-capability support indication for CCK RX/TX in 5GHz band. + * Use with WMI_VDEV_SET_PARAM_CMDID, value: + * BIT 0 - cck_rx_support_5ghz + * BIT 1 - cck_tx_support_5ghz + * + * Host must only set this param when enabled by ini and + * WMI_SERVICE_CCK_RX_SUPPORT_5GHZ/WMI_SERVICE_CCK_TX_SUPPORT_5GHZ + * (FW capability bits) are present. + */ + WMI_VDEV_PARAM_CCK_SUPPORT, /* 0xCB */ + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === * The below vdev param types are used for prototyping, and are @@ -22647,9 +22659,19 @@ typedef struct { /** Peer create flags */ union { struct { - A_UINT32 hw_peer_id_valid : 1, - peer_type_valid : 1, - reserved :30; + A_UINT32 hw_peer_id_valid : 1, + peer_type_valid : 1, + /** + * Host sets these peer_cck [rx,tx] support_5ghz fields + * based on the intersection of AP and self-capabilities. + * Example: + * On the STA, if the peer (AP) supports CCK 5GHz RX + * and the STA supports CCK 5GHz TX, then set + * peer_cck_rx_support_5ghz = 1 + */ + peer_cck_rx_support_5ghz : 1, + peer_cck_tx_support_5ghz : 1, + reserved :28; }; A_UINT32 flags; }; @@ -22691,6 +22713,12 @@ typedef struct { #define WMI_PEER_ASSOC_COMPLETE_CMD_FLAG_PEER_TYPE_VALID_GET(flags) WMI_GET_BITS(flags, 1, 1) #define WMI_PEER_ASSOC_COMPLETE_CMD_FLAG_PEER_TYPE_VALID_SET(flags, value) WMI_GET_BITS(flags, 1, 1, value) +#define WMI_PEER_ASSOC_COMPLETE_CMD_FLAG_PEER_CCK_RX_SUPPORT_5GHZ_GET(flags) WMI_GET_BITS(flags, 2, 1) +#define WMI_PEER_ASSOC_COMPLETE_CMD_FLAG_PEER_CCK_RX_SUPPORT_5GHZ_SET(flags, value) WMI_GET_BITS(flags, 2, 1, value) + +#define WMI_PEER_ASSOC_COMPLETE_CMD_FLAG_PEER_CCK_TX_SUPPORT_5GHZ_GET(flags) WMI_GET_BITS(flags, 3, 1) +#define WMI_PEER_ASSOC_COMPLETE_CMD_FLAG_PEER_CCK_TX_SUPPORT_5GHZ_SET(flags, value) WMI_GET_BITS(flags, 3, 1, value) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_npca_cap_params*/ A_UINT32 sw_peer_id; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 00497bbe9b70..4934e713c4de 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_ 1662 +#define __WMI_REVISION_ 1663 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work