瀏覽代碼

qcacld-3.0: Ignore HW power limit for TPC calculation

Currently, Host considers HW power limit received from
FW via vdev start response along with other parameters
like regulatory channel power, AP constraint, and TPE
IE for TPC power calculation.
FW calculates this power for default LPI power mode.
If Host associates with an SP AP, it still uses this
LPI-specific value and could result in capping tx
power to a lower value than expected if this HW power
limit ends up being the limiting factor in Host.
Thus, ignore this field altogether while calculating
TPC power and Hal Phy will apply other limits
once they receive set tpc WMI from Host.
Note- HW power limit is still valid for tx power
calculation in the case of legacy Host (old WMI
vdev_set_param with WMI_VDEV_PARAM_TX_PWRLIMIT
param id).

Change-Id: Ia3af651a765c5440f3a37c6d1144ef08882e4938
CRs-Fixed: 3312165
Gururaj Pandurangi 2 年之前
父節點
當前提交
dac3c95d0e
共有 1 個文件被更改,包括 2 次插入15 次删除
  1. 2 15
      core/mac/src/pe/lim/lim_process_sme_req_messages.c

+ 2 - 15
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -5662,18 +5662,6 @@ void lim_calculate_tpc(struct mac_context *mac,
 			max_tx_power = QDF_MIN(max_tx_power, tpe_power);
 			pe_debug("TPE: %d", tpe_power);
 		}
-
-		/** If firmware updated max tx power is non zero,
-		 * then allocate the min of firmware updated ap tx
-		 * power and max power derived from above mentioned
-		 * parameters.
-		 */
-		if (mlme_obj->mgmt.generic.tx_pwrlimit)
-			max_tx_power =
-				QDF_MIN(max_tx_power, (int8_t)
-					mlme_obj->mgmt.generic.tx_pwrlimit);
-		else
-			pe_err("HW power limit from FW is zero");
 		mlme_obj->reg_tpc_obj.chan_power_info[i].tx_power =
 						(uint8_t)max_tx_power;
 
@@ -5686,9 +5674,8 @@ void lim_calculate_tpc(struct mac_context *mac,
 	mlme_obj->reg_tpc_obj.eirp_power = reg_max;
 	mlme_obj->reg_tpc_obj.power_type_6g = ap_power_type_6g;
 
-	pe_debug("num_pwr_levels: %d, is_psd_power: %d, total eirp_power: %d, ap_pwr_type: %d tx_pwrlimit: %d",
-		 num_pwr_levels, is_psd_power, reg_max, ap_power_type_6g,
-		 mlme_obj->mgmt.generic.tx_pwrlimit);
+	pe_debug("num_pwr_levels: %d, is_psd_power: %d, total eirp_power: %d, ap_pwr_type: %d",
+		 num_pwr_levels, is_psd_power, reg_max, ap_power_type_6g);
 }
 
 bool send_disassoc_frame = 1;