From 561efdbc5c5d1a2d549f4277b762bd53fa1c8d33 Mon Sep 17 00:00:00 2001 From: Krupali Dhanvijay Date: Fri, 8 Sep 2023 12:22:10 +0530 Subject: [PATCH] qcacld-3.0: Fix to halve tx power received from TPE IE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AP advertises TPE IE Tx power as 8-bit unsigned int. STA needs to convert it into an 8-bit 2s complement signed integer in the range –64 dBm to 63 dBm with a 0.5 dB step. Thus, halve the tx power received from AP's TPE IE. Change-Id: Ibd3227a2f11f230b164af3c65a65f5e61879e25d CRs-Fixed: 3313617 --- core/mac/src/pe/lim/lim_process_sme_req_messages.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index b535912d9f3b..e75bf160a7a2 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -2033,7 +2033,7 @@ void lim_calculate_tpc(struct mac_context *mac, qdf_freq_t oper_freq, start_freq = 0; struct ch_params ch_params; struct vdev_mlme_obj *mlme_obj; - uint8_t tpe_power; + int8_t tpe_power; bool skip_tpe = false; mlme_obj = wlan_vdev_mlme_get_cmpt_obj(session->vdev); @@ -2156,7 +2156,14 @@ void lim_calculate_tpc(struct mac_context *mac, tpe_power = mlme_obj->reg_tpc_obj.eirp_power; else tpe_power = mlme_obj->reg_tpc_obj.tpe[i]; - max_tx_power = QDF_MIN(max_tx_power, (int8_t)tpe_power); + /** + * AP advertises TPE IE tx power as 8-bit unsigned int. + * STA needs to convert it into an 8-bit 2s complement + * signed integer in the range –64 dBm to 63 dBm with a + * 0.5 dB step + */ + tpe_power /= 2; + max_tx_power = QDF_MIN(max_tx_power, tpe_power); pe_debug("TPE: %d", tpe_power); }