diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 75c8c592e67e..d481cdc7e3ed 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1507,6 +1507,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_get_ac_queue_depth_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_multi_vdev_ac_queue_depth_event_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_ac_info, + WMITLV_TAG_STRUC_wmi_vdev_get_tpc_ie_power_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2082,6 +2084,7 @@ typedef enum { OP(WMI_PDEV_NPCA_AP_CAP_CMDID) \ OP(WMI_PEER_NPCA_CAP_CMDID) \ OP(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID) \ + OP(WMI_VDEV_GET_TPC_IE_POWER_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2421,6 +2424,7 @@ typedef enum { OP(WMI_PDEV_SUSPEND_EVENTID) \ OP(WMI_PDEV_NPCA_AP_CAP_RESP_EVENTID) \ OP(WMI_PDEV_MULTI_VDEV_AC_QUEUE_DEPTH_EVENTID) \ + OP(WMI_VDEV_TPC_IE_POWER_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5056,6 +5060,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RUNTIME_DPD_RECAL_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_GET_TPC_POWER_CMDID); +/** Get TPC IE TX power value */ +#define WMITLV_TABLE_WMI_VDEV_GET_TPC_IE_POWER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_tpc_ie_power_cmd_fixed_param, wmi_vdev_get_tpc_ie_power_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TPC_IE_POWER_CMDID); + /* TWT enable cmd */ #define WMITLV_TABLE_WMI_TWT_ENABLE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_enable_cmd_fixed_param, wmi_twt_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) @@ -7185,6 +7195,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ANI_OFDM_LEVEL_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tpc, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TPC_EVENTID); +#define WMITLV_TABLE_WMI_VDEV_TPC_IE_POWER_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param, wmi_vdev_tpc_ie_power_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TPC_IE_POWER_EVENTID); + #define WMITLV_TABLE_WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param, wmi_pdev_nfcal_power_all_channels_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_nfdBr, nfdbr, WMITLV_SIZE_VAR) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 8689f00fc002..198ded26b376 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -732,6 +732,7 @@ typedef enum { WMI_VDEV_VBSS_CONFIG_CMDID, + WMI_VDEV_GET_TPC_IE_POWER_CMDID, /* peer specific commands */ @@ -2028,6 +2029,7 @@ typedef enum { /** Connect response */ WMI_VDEV_OOB_CONNECTION_RESP_EVENTID, WMI_VDEV_VBSS_CONFIG_EVENTID, + WMI_VDEV_TPC_IE_POWER_EVENTID, /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ @@ -10315,6 +10317,23 @@ typedef struct { A_UINT32 param; } wmi_pdev_get_tpc_config_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_tpc_ie_power_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + A_UINT32 vdev_id; + A_UINT32 mgmt_rate; /* Values are sent as Ratecode */ +} wmi_vdev_get_tpc_ie_power_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param */ + A_UINT32 pdev_id; + A_UINT32 vdev_id; + A_INT32 tx_pwr; /* return value will be in unit of 0.25 dBm */ +} wmi_vdev_tpc_ie_power_event_fixed_param; + typedef struct { A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_pdev_div_get_rssi_antid_fixed_param */ /** pdev_id for identifying the MAC */ @@ -39613,6 +39632,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_ENERGY_MGMT_PUO_CONFIG_CMDID); WMI_RETURN_STRING(WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID); WMI_RETURN_STRING(WMI_PEER_TID_RATE_CUSTOM_CMDID); + WMI_RETURN_STRING(WMI_VDEV_GET_TPC_IE_POWER_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index e5b46e612e9e..b33e4c99c96f 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_ 1644 +#define __WMI_REVISION_ 1645 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work