diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index fdeb2b5f5b..c6c620a607 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -812,6 +812,8 @@ typedef enum { WMITLV_TAG_STRUC_rssi_ctl_ext, WMITLV_TAG_STRUC_wmi_single_phyerr_ext_rx_hdr, WMITLV_TAG_STRUC_wmi_coex_bt_activity_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_get_tx_power_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_tx_power_event_fixed_param, } WMITLV_TAG_ID; /* @@ -1139,6 +1141,7 @@ typedef enum { OP(WMI_PDEV_SET_DIVERSITY_GAIN_CMDID) \ OP(WMI_VDEV_SET_ARP_STAT_CMDID) \ OP(WMI_VDEV_GET_ARP_STAT_CMDID) \ + OP(WMI_VDEV_GET_TX_POWER_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1319,6 +1322,7 @@ typedef enum { OP(WMI_PDEV_CHECK_CAL_VERSION_EVENTID) \ OP(WMI_VDEV_GET_ARP_STAT_EVENTID) \ OP(WMI_WLAN_COEX_BT_ACTIVITY_EVENTID) \ + OP(WMI_VDEV_GET_TX_POWER_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -2121,6 +2125,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_CONFIG_CMDID); +/* VDEV Get Tx power Cmd */ +#define WMITLV_TABLE_WMI_VDEV_GET_TX_POWER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_tx_power_cmd_fixed_param, wmi_vdev_get_tx_power_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TX_POWER_CMDID); + /* PDEV Set Base Mac Address Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_BASE_MACADDR_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, wmi_pdev_set_base_macaddr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) @@ -3373,6 +3382,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_WHAL_MIB_STATS_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ratesArray, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TPC_CONFIG_EVENTID); +/* VDEV Tx Power Event */ +#define WMITLV_TABLE_WMI_VDEV_GET_TX_POWER_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_tx_power_event_fixed_param, wmi_vdev_get_tx_power_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TX_POWER_EVENTID); + /* Channel Info Event */ #define WMITLV_TABLE_WMI_CHAN_INFO_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, wmi_chan_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 81a38c7eb0..59b68da8a5 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -423,6 +423,9 @@ typedef enum { WMI_VDEV_SET_ARP_STAT_CMDID, WMI_VDEV_GET_ARP_STAT_CMDID, + /** get tx power for the current vdev */ + WMI_VDEV_GET_TX_POWER_CMDID, + /* peer specific commands */ /** create a peer */ @@ -1143,6 +1146,9 @@ typedef enum { /* event for ARP stats collection */ WMI_VDEV_GET_ARP_STAT_EVENTID, + /** get tx power event in response to VDEV_GET_TX_POWER request */ + WMI_VDEV_GET_TX_POWER_EVENTID, + /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ WMI_PEER_STA_KICKOUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PEER), @@ -3606,6 +3612,18 @@ typedef struct { A_UINT32 enable_cmd; } wmi_vdev_spectral_enable_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_tx_power_cmd_fixed_param */ + A_UINT32 vdev_id; +} wmi_vdev_get_tx_power_cmd_fixed_param; + +/** common structure used for wmi_vedv_get_tx_power_event */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_tx_power_event_fixed_param */ + A_UINT32 tx_power; /** units: 0.5 dBm, per-chain tx power */ + A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller */ +} wmi_vdev_get_tx_power_event_fixed_param; + #define WMI_CSA_EVENT_QSBW_ISE_ID_MASK 0x000000FF /* information sub element id for QSBW, expected value is 0x02 */ #define WMI_CSA_EVENT_QSBW_ISE_LEN_MASK 0x0000FF00 /* length of QSBW ISE data, expected value is 0x02 */ #define WMI_CSA_EVENT_QSBW_ISE_CAP_MASK 0x00FF0000 /* capabilities, 0x01 for 5MHz, 0x02 for 10MHz, 0x01|0x2 for both (see WMI_CSA_EVENT_QSBW_ISE bitmask defs) */ @@ -5890,15 +5908,14 @@ typedef struct { * For STA/client vdevs, it indicates that sta will * associate with AP with RMF enabled. */ #define WMI_UNIFIED_VDEV_START_PMF_ENABLED (1<<1) -/** Indicates if LDPC RX will be advertized inside HT/VHT Capabilities IE - * of assoc request/response - */ -#define WMI_UNIFIED_VDEV_START_LDPC_RX_ENABLED (1<<2) - /* * Host is sending bcn_tx_rate to override the beacon tx rates. */ #define WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT (1<<2) +/** Indicates if LDPC RX will be advertized inside HT/VHT Capabilities IE + * of assoc request/response + */ +#define WMI_UNIFIED_VDEV_START_LDPC_RX_ENABLED (1<<3) /* BSS color 0-6 */ #define WMI_HEOPS_COLOR_GET(he_ops) WMI_GET_BITS(he_ops, 0, 6) @@ -18405,6 +18422,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_SET_DIVERSITY_GAIN_CMDID); WMI_RETURN_STRING(WMI_VDEV_SET_ARP_STAT_CMDID); WMI_RETURN_STRING(WMI_VDEV_GET_ARP_STAT_CMDID); + WMI_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID); } return "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index ace56a8d8f..beb5518ff7 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 364 +#define __WMI_REVISION_ 366 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work