diff options
| author | tinlin <tinlin@codeaurora.org> | 2017-12-13 11:09:47 +0800 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2017-12-20 01:16:29 -0800 |
| commit | 7ef2d1d6c3ab1ce2bb81c7331ea1306b9853657b (patch) | |
| tree | 370bfc30e615ddf7c4e67fddba5dc408a4b5f45c | |
| parent | 045203968848fbded4a4421a14ca7eb3f06f56bb (diff) | |
qcacld-2.0: CL 3804270 - Update fw common interface files
Define WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID
Change-Id: Iada3a99ef59efbfef1c289302ac7769023007b0b
CRs-fixed: 865207
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 9 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 59 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
4 files changed, 70 insertions, 1 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index b07c7e5d612c..8d6eac90b1e1 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -861,6 +861,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_stats_period, WMITLV_TAG_STRUC_wmi_ndl_schedule_update_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_msduq_qdepth_thresh_update, } WMITLV_TAG_ID; /* @@ -1209,6 +1211,7 @@ typedef enum { OP(WMI_ENABLE_FILS_CMDID) \ OP(WMI_BCN_OFFLOAD_CTRL_CMDID) \ OP(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID) \ + OP(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -3474,6 +3477,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_WLM_CONFIG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, wmi_pdev_set_ac_tx_queue_optimized_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); +/* Set msduq qdepth threshold value Cmd */ +#define WMITLV_TABLE_WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param, wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_msduq_qdepth_thresh_update, msduq_qdepth_thresh_update, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index ceffb6bb88fd..af7f2200d2e4 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -502,6 +502,8 @@ typedef enum { */ WMI_PEER_ANTDIV_INFO_REQ_CMDID, + /** Peer/Tid/Msduq threshold update */ + WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID, /* beacon/management specific commands */ @@ -14419,6 +14421,62 @@ typedef struct { A_INT32 chain_rssi[8]; } wmi_peer_antdiv_info; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_msduq_qdepth_thresh_update */ + + /** tid_number */ + A_UINT32 tid_num; + + /** msduq_mask to set the value + * bit 0 - HI-PRI msdu flowq qdepth threshold need to update if set + * bit 1 - LOW-PRI msdu flowq qdepth threshold need to update if set + * bit 2 - UDP msdu flowq qdepth threshold need to update if set + * bit 3 - NON-UDP msdu flowq qdepth threshold need to update if set + * rest of bits are reserved and set to 0. + */ + A_UINT32 msduq_update_mask; + + /** Qdepth threshold value + * If number of msdus in a queue excess over qdepth_thresh_value value + * while queuing msdu's then we drop new msdus. + * (Though dropping older (stale) data rather than newer data might be + * preferable, the dropping is performed by MAC HW, and there’s no option + * to configure the HW to do head dropping rather than tail dropping.) + */ + A_UINT32 qdepth_thresh_value; +} wmi_msduq_qdepth_thresh_update; + +/** WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID + * Request FW to update msduq qdepth threshold per TID per peer */ +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param + */ + A_UINT32 tlv_header; + + /** pdev id + * The pdev_id can be determined from the vdev_id, but the pdev_id + * is explicitly provided so it can be used for sanity checking. + */ + A_UINT32 pdev_id; + + /** vdev id */ + A_UINT32 vdev_id; + + /** + * To set the peer msduq qdepth threshold update for a single peer, + * the host shall send mac address for which peer need to be updated. + */ + wmi_mac_addr peer_mac_address; + + /** number of payload update tlvs */ + A_UINT32 num_of_msduq_updates; + + /** Followed by the variable length TLV msduq_qdepth_updates: + * wmi_msduq_qdepth_th_update msduq_qdepth_thshd_update_list[] + */ +} wmi_peer_tid_msduq_qdepth_thresh_update_cmd_fixed_param; + typedef enum { WMI_PEER_IND_SMPS = 0x0, /* spatial multiplexing power save */ WMI_PEER_IND_OMN, /* operating mode notification */ @@ -20907,6 +20965,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PDEV_SEND_FD_CMDID); WMI_RETURN_STRING(WMI_ENABLE_FILS_CMDID); WMI_RETURN_STRING(WMI_PDEV_SET_AC_TX_QUEUE_OPTIMIZED_CMDID); + WMI_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); } return "Invalid WMI cmd"; diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index b0aee44108c5..2d72c2ad23da 100644 --- a/CORE/SERVICES/COMMON/wmi_version.h +++ b/CORE/SERVICES/COMMON/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_ 474 +#define __WMI_REVISION_ 475 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c index 29d7a7b774aa..e81587442010 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -766,6 +766,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(WMI_HB_DHCP_LEASE_RENEW_OFFLOAD_CMDID); CASE_RETURN_STRING(WMI_WLM_CONFIG_CMDID); CASE_RETURN_STRING(WMI_PDEV_UPDATE_PMK_CACHE_CMDID); + CASE_RETURN_STRING(WMI_PEER_TID_MSDUQ_QDEPTH_THRESH_UPDATE_CMDID); } return "Invalid WMI cmd"; } |
