From 87b2d3e4ea9babb01e1d910f19ac3d5a1afcbd36 Mon Sep 17 00:00:00 2001 From: Liangwei Dong Date: Tue, 23 Nov 2021 11:29:38 +0800 Subject: [PATCH] qcacmn: Set retry_limit_ext for MGMT frame send WMI command Some p2p action frame needs big retry count than the default max 15 retry count to get high tx successful ratio. FW allocates 3 extra bits for retry count setup. To use this field needs FW change in CR 3082533. Set the extra 3 bits "retry_limit_ext" to "tx_param_dword0" field for WMI MGMT send command. Existing 4 bits "retry_limit" combines with this new 3 bits "retry_limit_ext" to create a 7 bits retry count: bit 0 - 3: retry_limit bit 4 - 6: retry_limit_ext. So Maximum 127 retries can be specified to a certain mgmt frame. To use this field needs FW change in CR 3082533. Change-Id: I889933ea1750c03701ba8a60340f27e6c2594c1b CRs-Fixed: 3082534 --- wmi/inc/wmi_unified_param.h | 7 ++++++- wmi/src/wmi_unified_tlv.c | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 0befbeff9338..03a5b24689bd 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -1300,6 +1300,10 @@ struct seg_hdr_info { * 0:disable 1:enable * @en_beamforming: flag to enable tx beamforming * 0:disable 1:enable + * @retry_limit_ext: 3 bits of extended retry limit. + * Combined with 4 bits "retry_limit" + * to create 7 bits hw retry count. + * Maximum 127 retries for specific frames. */ struct tx_send_params { uint32_t pwr:8, @@ -1312,7 +1316,8 @@ struct tx_send_params { frame_type:1, cfr_enable:1, en_beamforming:1, - reserved:9; + retry_limit_ext:3, + reserved:6; }; /** diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 35f42c87709a..df3781218048 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -3395,6 +3395,8 @@ static inline QDF_STATUS populate_tx_send_params(uint8_t *bufp, param.cfr_enable); WMI_TX_SEND_PARAM_BEAMFORM_SET(tx_param->tx_param_dword1, param.en_beamforming); + WMI_TX_SEND_PARAM_RETRY_LIMIT_EXT_SET(tx_param->tx_param_dword1, + param.retry_limit_ext); return status; }