mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 15:11:48 -04:00
fw-api: CL 10576300 - update fw common interface files
Change-Id: Ida2132ec17ed16d5c0b3cd4d5c6ff016e7ac4588 WMI: add PDEV_GET_TPC_STATS CMD,EVENT msg defs CRs-Fixed: 2262693
This commit is contained in:
parent
19440b920b
commit
866cdf19f5
4 changed files with 180 additions and 1 deletions
|
|
@ -443,6 +443,7 @@ typedef enum {
|
|||
WMI_SERVICE_MU_PREAMBLE_PUNCTURE_SUPPORT = 248, /* Indicates FW supports MU preamble puncture */
|
||||
WMI_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT = 249, /* Support for SRG, SRP based spatial reuse support */
|
||||
WMI_REQUEST_CTRL_PATH_STATS_REQUEST = 250, /* FW supports control path stats */
|
||||
WMI_SERVICE_TPC_STATS_EVENT = 251, /* FW support to dump the TPC tables */
|
||||
|
||||
|
||||
/******* ADD NEW SERVICES UP TO 256 HERE *******/
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ typedef enum {
|
|||
WMITLV_TAG_ARRAY_BYTE,
|
||||
WMITLV_TAG_ARRAY_STRUC,
|
||||
WMITLV_TAG_ARRAY_FIXED_STRUC,
|
||||
WMITLV_TAG_ARRAY_INT16,
|
||||
WMITLV_TAG_LAST_ARRAY_ENUM = 31, /* Last entry of ARRAY type tags */
|
||||
WMITLV_TAG_STRUC_wmi_service_ready_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_HAL_REG_CAPABILITIES,
|
||||
|
|
@ -1081,6 +1082,12 @@ typedef enum {
|
|||
WMITLV_TAG_STRUC_wmi_request_ctrl_path_stats_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_ctrl_path_stats_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_stats_struct,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_cmd_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_event_fixed_param,
|
||||
WMITLV_TAG_STRUC_wmi_tpc_configs,
|
||||
WMITLV_TAG_STRUC_wmi_max_reg_power_allowed,
|
||||
WMITLV_TAG_STRUC_wmi_tpc_rates_array,
|
||||
WMITLV_TAG_STRUC_wmi_tpc_ctl_pwr_table,
|
||||
} WMITLV_TAG_ID;
|
||||
|
||||
/*
|
||||
|
|
@ -1526,6 +1533,7 @@ typedef enum {
|
|||
OP(WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID) \
|
||||
OP(WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID) \
|
||||
OP(WMI_REQUEST_CTRL_PATH_STATS_CMDID) \
|
||||
OP(WMI_PDEV_GET_TPC_STATS_CMDID) \
|
||||
/* add new CMD_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -1777,6 +1785,7 @@ typedef enum {
|
|||
OP(WMI_PDEV_SSCAN_FW_PARAM_EVENTID) \
|
||||
OP(WMI_ROAM_CAPABILITY_REPORT_EVENTID) \
|
||||
OP(WMI_CTRL_PATH_STATS_EVENTID) \
|
||||
OP(WMI_PDEV_GET_TPC_STATS_EVENTID) \
|
||||
/* add new EVT_LIST elements above this line */
|
||||
|
||||
|
||||
|
|
@ -4428,6 +4437,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_non_srg_obss_bssid_enable_bitmap_cmd_fixed_param, wmi_pdev_non_srg_obss_bssid_enable_bitmap_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID);
|
||||
|
||||
/* PDEV Get TPC STATS Cmd */
|
||||
#define WMITLV_TABLE_WMI_PDEV_GET_TPC_STATS_CMDID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_cmd_fixed_param, wmi_pdev_get_tpc_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_STATS_CMDID);
|
||||
|
||||
|
||||
/************************** TLV definitions of WMI events *******************************/
|
||||
|
||||
|
|
@ -5963,6 +5977,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SSCAN_FW_PARAM_EVENTID);
|
|||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_capability_report_event_fixed_param, wmi_roam_capability_report_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CAPABILITY_REPORT_EVENTID);
|
||||
|
||||
/* PDEV TPC STATS Event */
|
||||
#define WMITLV_TABLE_WMI_PDEV_GET_TPC_STATS_EVENTID(id,op,buf,len) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_event_fixed_param, wmi_pdev_get_tpc_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tpc_configs, tpc_configs, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_max_reg_power_allowed, regulatory_power, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_INT16, A_INT16, reg_buf, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tpc_rates_array, tpc_rates, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_INT16, A_UINT16, rates_buf, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tpc_ctl_pwr_table, ctl_power, WMITLV_SIZE_VAR) \
|
||||
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, ctl_buf, WMITLV_SIZE_VAR)
|
||||
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_STATS_EVENTID);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
152
fw/wmi_unified.h
152
fw/wmi_unified.h
|
|
@ -434,6 +434,8 @@ typedef enum {
|
|||
WMI_PDEV_SET_NON_SRG_OBSS_COLOR_ENABLE_BITMAP_CMDID,
|
||||
/** OBSS BSSID enable bitmap for NON_SRG based spatial reuse feature */
|
||||
WMI_PDEV_SET_NON_SRG_OBSS_BSSID_ENABLE_BITMAP_CMDID,
|
||||
/** TPC stats display command */
|
||||
WMI_PDEV_GET_TPC_STATS_CMDID,
|
||||
|
||||
/* VDEV (virtual device) specific commands */
|
||||
/** vdev create */
|
||||
|
|
@ -1446,6 +1448,10 @@ typedef enum {
|
|||
*/
|
||||
WMI_PDEV_MULTIPLE_VDEV_RESTART_RESP_EVENTID,
|
||||
|
||||
/** WMI event in response to TPC STATS command */
|
||||
WMI_PDEV_GET_TPC_STATS_EVENTID,
|
||||
|
||||
|
||||
/* VDEV specific events */
|
||||
/** VDEV started event in response to VDEV_START request */
|
||||
WMI_VDEV_START_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VDEV),
|
||||
|
|
@ -6940,6 +6946,151 @@ typedef struct {
|
|||
wmi_mac_addr macaddr;
|
||||
} wmi_pdev_div_get_rssi_antid_fixed_param;
|
||||
|
||||
typedef enum {
|
||||
WMI_TPC_STATS_EVENT_SEND_REG = 0x00000001,
|
||||
WMI_TPC_STATS_EVENT_SEND_RATE = 0x00000002,
|
||||
WMI_TPC_STATS_EVENT_SEND_CTL = 0x00000004,
|
||||
WMI_TPC_STATS_EVENT_SEND_REG_RATE_CTL = 0x00000007, /* REG | RATE | CTL */
|
||||
} WMI_PDEV_TPC_STATS_PARAMS;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_cmd_fixed_param */
|
||||
/** pdev_id for identifying the MAC
|
||||
* See macros starting with WMI_PDEV_ID_ for values.
|
||||
*/
|
||||
A_UINT32 pdev_id;
|
||||
/** parameter -
|
||||
* This is to specify whether we want only the target power
|
||||
* information (rates array) or the CTL power or the regulatory
|
||||
* power information. At present, we send all of them.
|
||||
*/
|
||||
A_UINT32 param; /* Currently expect WMI_TPC_STATS_EVENT_SEND_REG_RATE_CTL
|
||||
* as a host specification that rates array, regulatory
|
||||
* power array, and ctl power array are all to be sent.
|
||||
* See WMI_PDEV_TPC_STATS_PARAMS.
|
||||
*/
|
||||
} wmi_pdev_get_tpc_stats_cmd_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_tpc_stats_event_fixed_param */
|
||||
A_UINT32 pdev_id; /* pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values */
|
||||
A_UINT32 end_of_event; /* The total response to the WMI command will be split into multiple event chunks to fit into the WMI svc msg size limit: 0 indicates more events to follow: 1 indicates end of event */
|
||||
A_UINT32 event_count; /* Incremented for every event chunk for Host to know the sequence */
|
||||
/* wmi_tpc_configs TLV to optionally follow */
|
||||
/* wmi_max_reg_power_allowed TLVs to optionally follow */
|
||||
/* wmi_tpc_rates_array TLVs to optionally follow */
|
||||
/* wmi_tpc_ctl_pwr_table TLVs to optionally follow */
|
||||
} wmi_pdev_get_tpc_stats_event_fixed_param;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tpc_configs */
|
||||
A_UINT32 regDomain;
|
||||
A_UINT32 chanFreq; /* current channel in MHz */
|
||||
A_UINT32 phyMode; /* current phy mode - See WLAN_PHY_MODE for the different phy modes */
|
||||
A_UINT32 maxAntennaGain; /* Maximum antenna gain for the current regulatory in 0.25 dBm steps */
|
||||
A_UINT32 twiceMaxRDPower; /* Maximum transmit power allowed in the regulatory domain in 0.25 dBm steps */
|
||||
A_INT32 userAntennaGain; /* User specified antenna gain in 0.25 dBm steps */
|
||||
A_UINT32 powerLimit; /* The overall power limit in 0.25 dBm steps */
|
||||
A_UINT32 rateMax; /* The total number of rates supported */
|
||||
A_UINT32 numTxChain; /* The total number of active chains */
|
||||
A_UINT32 ctl; /* See CONFORMANCE_TEST_LIMITS enumeration */
|
||||
A_UINT32 flags; /* See WMI_TPC_CONFIG_EVENT_FLAG */
|
||||
} wmi_tpc_configs;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_max_reg_power_allowed */
|
||||
A_UINT32 reg_power_type; /* 0: maxRegAllowedPower (1D array),
|
||||
* 1: maxRegAllowedPowerAGCDD (2D array),
|
||||
* 2: maxRegAllowedPowerAGSTBC (2D array),
|
||||
* 3: maxRegAllowedPowerAGTXBF (2D array)
|
||||
*/
|
||||
A_UINT32 reg_power_array_len; /* Length of the regulatory power array being sent in bytes */
|
||||
A_UINT32 d1; /* the length of 1st (innermost) dimension array */
|
||||
A_UINT32 d2; /* the length of 2nd dimension array */
|
||||
A_UINT32 d3; /* the length of 3rd dimension array (for future use) */
|
||||
A_UINT32 d4; /* the length of 4th dimension array (for future use) */
|
||||
/*
|
||||
* This TLV is followed by an A_INT16 TLV-array that will carry
|
||||
* one of the four types of regulatory power arrays.
|
||||
*
|
||||
* The multi-dimensional regulatory power array will be communicated
|
||||
* as a flat array: Host to stitch it back as 2D array.
|
||||
* For an array[a][b][c][d], d1 = d, d2 = c, d3 = b, d4 = a
|
||||
* For a 2D array, array[a][b], d1 = b, d2 = a, d3 = 1, d4 = 1
|
||||
* The possible types of following A_INT16 TLV arrays are
|
||||
* 1. A_INT16 maxRegAllowedPower[WHAL_TPC_TX_NUM_CHAIN];
|
||||
* 2. A_INT16 maxRegAllowedPowerAGCDD[WHAL_TPC_TX_NUM_CHAIN - 1][WHAL_TPC_TX_NUM_CHAIN - 1];
|
||||
* 3. A_INT16 maxRegAllowedPowerAGSTBC[WHAL_TPC_TX_NUM_CHAIN - 1][WHAL_TPC_TX_NUM_CHAIN - 1];
|
||||
* 4. A_INT16 maxRegAllowedPowerAGTXBF[WHAL_TPC_TX_NUM_CHAIN - 1][WHAL_TPC_TX_NUM_CHAIN - 1];
|
||||
* where WHAL_TPC_TX_NUM_CHAIN=2 for CYP and 8 for HK.
|
||||
*/
|
||||
} wmi_max_reg_power_allowed;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tpc_rates_array */
|
||||
A_UINT32 rate_array_type; /* 0: ratesArray,
|
||||
* 1: ratesArray2 (for chain > 4),
|
||||
* 2: dl_ofdma rate array
|
||||
*/
|
||||
A_UINT32 rate_array_len;
|
||||
/* This TLV will be followed by an A_UINT16 TLV array that will
|
||||
* carry one of the types of TPC rate arrays.
|
||||
* All the rates arrays are 1D arrays.
|
||||
* The possible types of following A_UINT16 TLV arrays are
|
||||
* 1. A_UINT16 ratesArray[WHAL_TPC_RATE_MAX];
|
||||
* This array has to be referred when number of active chains is < 4
|
||||
* 2. A_UINT16 ratesArray2[WHAL_TPC_RATE_MAX];
|
||||
* This array has to be referred when number of active chains is > 4
|
||||
* 3. A_UINT16 ratesArray_DL_OFDMA[72];
|
||||
* WHAL_TPC_RATE_MAX is 748 for HK (considering PHY A0 8x8)
|
||||
* WHAL_TPC_RATE_MAX is 188 for CYP (considering PHY A0 2x2)
|
||||
* Each 16 bit value in the rates array carries both SU and MU
|
||||
* target power information.
|
||||
* Bits 0:7 contained the SU target power (signed value, 0.25 dBm units),
|
||||
* bits 8:15 denote the MU target power (signed value, 0.25 dBm units).
|
||||
*/
|
||||
} wmi_tpc_rates_array;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tpc_ctl_pwr_table */
|
||||
A_UINT32 ctl_array_type; /* 0: ctl_array,
|
||||
* 1: ctl_160 array,
|
||||
* 2: ctl_dlOfdma array,
|
||||
* 3: ctl_ulOfdma array
|
||||
*/
|
||||
A_UINT32 ctl_array_len; /* Length of the CTL array being sent in bytes */
|
||||
A_UINT32 end_of_ctl_pwr; /* Message MAY be split into smaller chunks
|
||||
* to fit in the WMI svc msg size limit:
|
||||
* 0 indicates more chunks of CTL info to follow,
|
||||
* 1 indicates end of CTL info.
|
||||
*/
|
||||
A_UINT32 ctl_pwr_count; /* Incremented for every CTL info chunk
|
||||
* for Host to know the sequence.
|
||||
*/
|
||||
A_UINT32 d1; /* the length of 1st (innermost) dimension array */
|
||||
A_UINT32 d2; /* the length of 2nd dimension array */
|
||||
A_UINT32 d3; /* the length of 3rd dimension array */
|
||||
A_UINT32 d4; /* the length of 4th dimension array */
|
||||
/* This TLV will be followed by an A_INT8 TLV-array that will
|
||||
* carry one the types of CTL power arrays.
|
||||
* The CTL array will be multi-dimensional, but will be communicated as
|
||||
* a flat array; the host has to stitch it back into a 4D array.
|
||||
* The possible types of following A_INT8 arrays are
|
||||
* 1. A_INT8 ctlEdgePwrBF[WHAL_MAX_NUM_CHAINS][2][10][8];
|
||||
* 2. A_INT8 ctlEdgePwr160[WHAL_MAX_NUM_CHAINS/2][2][2][4];
|
||||
* 3. A_INT8 ctlEdgePwrBF_dlOFDMA[WHAL_MAX_NUM_CHAINS][2][3][8];
|
||||
* For e.g., in ctlEdgePwrBF
|
||||
* D4 = WHAL_MAX_NUM_CHAINS = 8 for HK, 2 for CYP, 4 for Pine
|
||||
* D3 = BF on/off = 2
|
||||
* D2 = 10 which the number of different tx modes,
|
||||
* like cck, legacy, HT20, HT40, VHT80, etc.
|
||||
* D1 = NSS = 8, number of spatial streams
|
||||
* Total number of elements = D4*D3*D2*D1
|
||||
* The same will apply for ctl_dlOfdma array, except that the values
|
||||
* of d1,d2,d3,d4 will be different.
|
||||
*/
|
||||
} wmi_tpc_ctl_pwr_table;
|
||||
|
||||
typedef struct {
|
||||
A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_request_fixed_param */
|
||||
A_UINT32 param; /* 1 = read only, 2= read and clear */
|
||||
|
|
@ -26324,6 +26475,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
|
|||
WMI_RETURN_STRING(WMI_SIMULATION_TEST_CMDID);
|
||||
WMI_RETURN_STRING(WMI_AUDIO_AGGR_SET_RTSCTS_CONFIG_CMDID);
|
||||
WMI_RETURN_STRING(WMI_REQUEST_CTRL_PATH_STATS_CMDID);
|
||||
WMI_RETURN_STRING(WMI_PDEV_GET_TPC_STATS_CMDID);
|
||||
}
|
||||
|
||||
return "Invalid WMI cmd";
|
||||
|
|
|
|||
|
|
@ -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_ 844
|
||||
#define __WMI_REVISION_ 845
|
||||
|
||||
/** The Version Namespace should not be normally changed. Only
|
||||
* host and firmware of the same WMI namespace will work
|
||||
|
|
|
|||
Loading…
Reference in a new issue