Ver Fonte

qcacld-3.0: Add ini control to honor power constraint

qcacld-2.0 to qcacld-3.0 propagation

Add changes to honor power constraint based on ini. Also, enhance
logging for power sent to fw.

Change-Id: Iefd497d76076527ca4c388cade46644a88a51932
CRs-Fixed: 1016876
Padma, Santhosh Kumar há 8 anos atrás
pai
commit
29df362726

+ 7 - 0
core/hdd/inc/wlan_hdd_cfg.h

@@ -515,6 +515,12 @@ typedef enum {
 /* Not to use CFG default because if no registry setting, this is ignored by SME. */
 /* Not to use CFG default because if no registry setting, this is ignored by SME. */
 #define CFG_MAX_TX_POWER_DEFAULT                WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMAX
 #define CFG_MAX_TX_POWER_DEFAULT                WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMAX
 
 
+/* This ini controls driver to honor/dishonor power constraint from AP */
+#define CFG_TX_POWER_CTRL_NAME                 "gAllowTPCfromAP"
+#define CFG_TX_POWER_CTRL_DEFAULT              (1)
+#define CFG_TX_POWER_CTRL_MIN                  (0)
+#define CFG_TX_POWER_CTRL_MAX                  (1)
+
 #define CFG_LOW_GAIN_OVERRIDE_NAME             "gLowGainOverride"
 #define CFG_LOW_GAIN_OVERRIDE_NAME             "gLowGainOverride"
 #define CFG_LOW_GAIN_OVERRIDE_MIN              WNI_CFG_LOW_GAIN_OVERRIDE_STAMIN
 #define CFG_LOW_GAIN_OVERRIDE_MIN              WNI_CFG_LOW_GAIN_OVERRIDE_STAMIN
 #define CFG_LOW_GAIN_OVERRIDE_MAX              WNI_CFG_LOW_GAIN_OVERRIDE_STAMAX
 #define CFG_LOW_GAIN_OVERRIDE_MAX              WNI_CFG_LOW_GAIN_OVERRIDE_STAMAX
@@ -3550,6 +3556,7 @@ struct hdd_config {
 	uint32_t goLinkMonitorPeriod;
 	uint32_t goLinkMonitorPeriod;
 	uint32_t nBeaconInterval;
 	uint32_t nBeaconInterval;
 	uint8_t nTxPowerCap;    /* In dBm */
 	uint8_t nTxPowerCap;    /* In dBm */
+	bool allow_tpc_from_ap;
 	bool fIsLowGainOverride;
 	bool fIsLowGainOverride;
 	uint8_t disablePacketFilter;
 	uint8_t disablePacketFilter;
 	bool fRrmEnable;
 	bool fRrmEnable;

+ 11 - 0
core/hdd/src/wlan_hdd_cfg.c

@@ -836,6 +836,13 @@ REG_TABLE_ENTRY g_registry_table[] = {
 		     CFG_MAX_TX_POWER_MIN,
 		     CFG_MAX_TX_POWER_MIN,
 		     CFG_MAX_TX_POWER_MAX),
 		     CFG_MAX_TX_POWER_MAX),
 
 
+	REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
+		     struct hdd_config, allow_tpc_from_ap,
+		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+		     CFG_TX_POWER_CTRL_DEFAULT,
+		     CFG_TX_POWER_CTRL_MIN,
+		     CFG_TX_POWER_CTRL_MAX),
+
 	REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
 	REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, fIsLowGainOverride,
 		     struct hdd_config, fIsLowGainOverride,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4951,6 +4958,9 @@ void hdd_cfg_print(hdd_context_t *pHddCtx)
 		  "Name = [gTxPowerCap] Value = [%u] dBm ",
 		  "Name = [gTxPowerCap] Value = [%u] dBm ",
 		  pHddCtx->config->nTxPowerCap);
 		  pHddCtx->config->nTxPowerCap);
 #endif
 #endif
+	QDF_TRACE(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_INFO_HIGH,
+		  "Name = [gAllowTPCfromAP] Value = [%u] ",
+		  pHddCtx->config->allow_tpc_from_ap);
 	QDF_TRACE(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_INFO_HIGH,
 	QDF_TRACE(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_INFO_HIGH,
 		  "Name = [FastRoamEnabled] Value = [%u] ",
 		  "Name = [FastRoamEnabled] Value = [%u] ",
 		  pHddCtx->config->isFastRoamIniFeatureEnabled);
 		  pHddCtx->config->isFastRoamIniFeatureEnabled);
@@ -6921,6 +6931,7 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
 	smeConfig->csrConfig.cbChoice = 0;
 	smeConfig->csrConfig.cbChoice = 0;
 	smeConfig->csrConfig.eBand = pConfig->nBandCapability;
 	smeConfig->csrConfig.eBand = pConfig->nBandCapability;
 	smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
 	smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
+	smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
 	smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
 	smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
 	smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
 	smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
 	smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
 	smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;

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

@@ -1934,16 +1934,12 @@ __lim_process_sme_join_req(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
 			session->htConfig.ht_tx_stbc = 0;
 			session->htConfig.ht_tx_stbc = 0;
 		}
 		}
 
 
-#ifdef FEATURE_WLAN_ESE
 		session->maxTxPower = lim_get_max_tx_power(reg_max,
 		session->maxTxPower = lim_get_max_tx_power(reg_max,
 					local_power_constraint,
 					local_power_constraint,
 					mac_ctx->roam.configParam.nTxPowerCap);
 					mac_ctx->roam.configParam.nTxPowerCap);
-#else
-		session->maxTxPower =
-			QDF_MIN(reg_max, (local_power_constraint));
-#endif
+
 		lim_log(mac_ctx, LOG1,
 		lim_log(mac_ctx, LOG1,
-			FL("Reg max = %d, local power con = %d, max tx = %d"),
+			FL("Reg max %d local power con %d max tx pwr %d"),
 			reg_max, local_power_constraint, session->maxTxPower);
 			reg_max, local_power_constraint, session->maxTxPower);
 
 
 		if (session->gLimCurrentBssUapsd) {
 		if (session->gLimCurrentBssUapsd) {

+ 42 - 14
core/mac/src/pe/lim/lim_prop_exts_utils.c

@@ -56,6 +56,38 @@
 #include "wma.h"
 #include "wma.h"
 
 
 #define LIM_GET_NOISE_MAX_TRY 5
 #define LIM_GET_NOISE_MAX_TRY 5
+
+/**
+ * get_local_power_constraint_probe_response() - extracts local constraint
+ * from probe response
+ * @beacon_struct: beacon structure
+ * @local_constraint: local constraint pointer
+ * @session: A pointer to session entry.
+ *
+ * Return: None
+ */
+#ifdef FEATURE_WLAN_ESE
+static void get_local_power_constraint_probe_response(
+		tpSirProbeRespBeacon beacon_struct,
+		int8_t *local_constraint,
+		tpPESession session)
+{
+	if (beacon_struct->eseTxPwr.present)
+		*local_constraint =
+			beacon_struct->eseTxPwr.power_limit;
+		session->is_ese_version_ie_present =
+			beacon_struct->is_ese_ver_ie_present;
+}
+#else
+static void get_local_power_constraint_probe_response(
+		tpSirProbeRespBeacon beacon_struct,
+		int8_t *local_constraint,
+		tpPESession session)
+{
+
+}
+#endif
+
 /**
 /**
  * lim_extract_ap_capability() - extract AP's HCF/WME/WSM capability
  * lim_extract_ap_capability() - extract AP's HCF/WME/WSM capability
  * @mac_ctx: Pointer to Global MAC structure
  * @mac_ctx: Pointer to Global MAC structure
@@ -289,20 +321,16 @@ lim_extract_ap_capability(tpAniSirGlobal mac_ctx, uint8_t *p_ie,
 	/* Extract the UAPSD flag from WMM Parameter element */
 	/* Extract the UAPSD flag from WMM Parameter element */
 	if (beacon_struct->wmeEdcaPresent)
 	if (beacon_struct->wmeEdcaPresent)
 		*uapsd = beacon_struct->edcaParams.qosInfo.uapsd;
 		*uapsd = beacon_struct->edcaParams.qosInfo.uapsd;
-#if defined FEATURE_WLAN_ESE
-	/* If there is Power Constraint Element specifically,
-	 * adapt to it. Hence there is else condition check
-	 * for this if statement.
-	 */
-	if (beacon_struct->eseTxPwr.present)
-		*local_constraint = beacon_struct->eseTxPwr.power_limit;
-	session->is_ese_version_ie_present =
-		beacon_struct->is_ese_ver_ie_present;
-#endif
-	if (beacon_struct->powerConstraintPresent) {
-		*local_constraint -=
-			beacon_struct->localPowerConstraint.
-			localPowerConstraints;
+
+	if (mac_ctx->roam.configParam.allow_tpc_from_ap) {
+		if (beacon_struct->powerConstraintPresent) {
+			*local_constraint -=
+				beacon_struct->localPowerConstraint.
+					localPowerConstraints;
+		} else {
+			get_local_power_constraint_probe_response(
+				beacon_struct, local_constraint, session);
+		}
 	}
 	}
 	session->country_info_present = false;
 	session->country_info_present = false;
 	/* Initializing before first use */
 	/* Initializing before first use */

+ 49 - 25
core/mac/src/pe/sch/sch_beacon_process.c

@@ -671,6 +671,31 @@ sch_bcn_process_sta_ibss(tpAniSirGlobal mac_ctx,
 	return;
 	return;
 }
 }
 
 
+/**
+ * get_local_power_constraint_beacon() - extracts local constraint
+ * from beacon
+ * @bcn: beacon structure
+ * @local_constraint: local constraint pointer
+ *
+ * Return: None
+ */
+#ifdef FEATURE_WLAN_ESE
+static void get_local_power_constraint_beacon(
+		tpSchBeaconStruct bcn,
+		int8_t *local_constraint)
+{
+	if (bcn->eseTxPwr.present)
+		*local_constraint = bcn->eseTxPwr.power_limit;
+}
+#else
+static void get_local_power_constraint_beacon(
+		tpSchBeaconStruct bcn,
+		int8_t *local_constraint)
+{
+
+}
+#endif
+
 /*
 /*
  * __sch_beacon_process_for_session() - Process the received beacon frame when
  * __sch_beacon_process_for_session() - Process the received beacon frame when
  * station is not scanning and corresponding session is found
  * station is not scanning and corresponding session is found
@@ -715,12 +740,11 @@ static void __sch_beacon_process_for_session(tpAniSirGlobal mac_ctx,
 					     uint8_t *rx_pkt_info,
 					     uint8_t *rx_pkt_info,
 					     tpPESession session)
 					     tpPESession session)
 {
 {
-	int8_t localRRMConstraint = 0;
 	uint8_t bssIdx = 0;
 	uint8_t bssIdx = 0;
 	tUpdateBeaconParams beaconParams;
 	tUpdateBeaconParams beaconParams;
 	uint8_t sendProbeReq = false;
 	uint8_t sendProbeReq = false;
 	tpSirMacMgmtHdr pMh = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
 	tpSirMacMgmtHdr pMh = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
-	int8_t regMax = 0, maxTxPower = 0;
+	int8_t regMax = 0, maxTxPower = 0, local_constraint;
 	qdf_mem_zero(&beaconParams, sizeof(tUpdateBeaconParams));
 	qdf_mem_zero(&beaconParams, sizeof(tUpdateBeaconParams));
 	beaconParams.paramChangeBitmap = 0;
 	beaconParams.paramChangeBitmap = 0;
 
 
@@ -765,35 +789,35 @@ static void __sch_beacon_process_for_session(tpAniSirGlobal mac_ctx,
 	regMax = cfg_get_regulatory_max_transmit_power(mac_ctx,
 	regMax = cfg_get_regulatory_max_transmit_power(mac_ctx,
 					session->currentOperChannel);
 					session->currentOperChannel);
 
 
-	if (mac_ctx->rrm.rrmPEContext.rrmEnable
-	    && bcn->powerConstraintPresent)
-		localRRMConstraint =
-			bcn->localPowerConstraint.localPowerConstraints;
-	else
-		localRRMConstraint = 0;
-	maxTxPower = lim_get_max_tx_power(regMax, regMax - localRRMConstraint,
-					mac_ctx->roam.configParam.nTxPowerCap);
+	local_constraint = regMax;
 
 
-#if defined FEATURE_WLAN_ESE
-	if (session->isESEconnection) {
-		int8_t localESEConstraint = 0;
-		if (bcn->eseTxPwr.present) {
-			localESEConstraint = bcn->eseTxPwr.power_limit;
-			maxTxPower = lim_get_max_tx_power(maxTxPower,
-					localESEConstraint,
-					mac_ctx->roam.configParam.nTxPowerCap);
-		}
-		sch_log(mac_ctx, LOG1,
-			FL("RegMax = %d, localEseCons = %d, MaxTx = %d"),
-			regMax, localESEConstraint, maxTxPower);
+	if (mac_ctx->roam.configParam.allow_tpc_from_ap) {
+		get_local_power_constraint_beacon(bcn, &local_constraint);
+		sch_log(mac_ctx, LOG1, "ESE localPowerConstraint = %d,",
+						local_constraint);
+
+		if (mac_ctx->rrm.rrmPEContext.rrmEnable &&
+				bcn->powerConstraintPresent) {
+			local_constraint = regMax;
+			local_constraint -=
+				bcn->localPowerConstraint.localPowerConstraints;
+			sch_log(mac_ctx, LOG1, "localPowerConstraint = %d,",
+					local_constraint);
+			}
 	}
 	}
-#endif
+
+	maxTxPower = lim_get_max_tx_power(regMax, local_constraint,
+					mac_ctx->roam.configParam.nTxPowerCap);
+
+	sch_log(mac_ctx, LOG1, "RegMax = %d, MaxTx pwr = %d",
+			regMax, maxTxPower);
+
 
 
 	/* If maxTxPower is increased or decreased */
 	/* If maxTxPower is increased or decreased */
 	if (maxTxPower != session->maxTxPower) {
 	if (maxTxPower != session->maxTxPower) {
 		sch_log(mac_ctx, LOG1,
 		sch_log(mac_ctx, LOG1,
-			FL("Local power constraint change..updating new maxTx power %d to HAL"),
-			maxTxPower);
+			FL("Local power constraint change, Updating new maxTx power %d from old pwr %d"),
+			maxTxPower, session->maxTxPower);
 		if (lim_send_set_max_tx_power_req(mac_ctx, maxTxPower, session)
 		if (lim_send_set_max_tx_power_req(mac_ctx, maxTxPower, session)
 		    == eSIR_SUCCESS)
 		    == eSIR_SUCCESS)
 			session->maxTxPower = maxTxPower;
 			session->maxTxPower = maxTxPower;

+ 1 - 0
core/sme/inc/csr_api.h

@@ -1168,6 +1168,7 @@ typedef struct tagCsrConfigParam {
 	 * default setting.
 	 * default setting.
 	 */
 	 */
 	uint8_t nTxPowerCap;
 	uint8_t nTxPowerCap;
+	bool allow_tpc_from_ap;
 	/* stats request frequency from PE while in full power */
 	/* stats request frequency from PE while in full power */
 	uint32_t statsReqPeriodicity;
 	uint32_t statsReqPeriodicity;
 	/* stats request frequency from PE while in power save */
 	/* stats request frequency from PE while in power save */

+ 1 - 0
core/sme/inc/csr_internal.h

@@ -567,6 +567,7 @@ typedef struct tagCsrConfig {
 	 * value & 11d. If 11d is disable, the lesser of this & default setting.
 	 * value & 11d. If 11d is disable, the lesser of this & default setting.
 	 */
 	 */
 	uint8_t nTxPowerCap;
 	uint8_t nTxPowerCap;
+	bool allow_tpc_from_ap;
 	uint32_t statsReqPeriodicity;    /* stats req freq while in fullpower */
 	uint32_t statsReqPeriodicity;    /* stats req freq while in fullpower */
 	uint32_t statsReqPeriodicityInPS;/* stats req freq while in powersave */
 	uint32_t statsReqPeriodicityInPS;/* stats req freq while in powersave */
 	uint32_t dtimPeriod;
 	uint32_t dtimPeriod;

+ 4 - 0
core/sme/src/csr/csr_api_roam.c

@@ -1398,6 +1398,7 @@ static void init_config_param(tpAniSirGlobal pMac)
 		CSR_NUM_P2P_CHAN_COMBINED_CONC;
 		CSR_NUM_P2P_CHAN_COMBINED_CONC;
 #endif
 #endif
 	pMac->roam.configParam.nTxPowerCap = CSR_MAX_TX_POWER;
 	pMac->roam.configParam.nTxPowerCap = CSR_MAX_TX_POWER;
+	pMac->roam.configParam.allow_tpc_from_ap = true;
 	pMac->roam.configParam.statsReqPeriodicity =
 	pMac->roam.configParam.statsReqPeriodicity =
 		CSR_MIN_GLOBAL_STAT_QUERY_PERIOD;
 		CSR_MIN_GLOBAL_STAT_QUERY_PERIOD;
 	pMac->roam.configParam.statsReqPeriodicityInPS =
 	pMac->roam.configParam.statsReqPeriodicityInPS =
@@ -2277,6 +2278,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 			pParam->statsReqPeriodicityInPS;
 			pParam->statsReqPeriodicityInPS;
 		/* Assign this before calling csr_init11d_info */
 		/* Assign this before calling csr_init11d_info */
 		pMac->roam.configParam.nTxPowerCap = pParam->nTxPowerCap;
 		pMac->roam.configParam.nTxPowerCap = pParam->nTxPowerCap;
+		pMac->roam.configParam.allow_tpc_from_ap =
+				pParam->allow_tpc_from_ap;
 		if (csr_is11d_supported(pMac)) {
 		if (csr_is11d_supported(pMac)) {
 			status = csr_init11d_info(pMac, &pParam->Csr11dinfo);
 			status = csr_init11d_info(pMac, &pParam->Csr11dinfo);
 		} else {
 		} else {
@@ -2579,6 +2582,7 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 	pParam->vccRssiThreshold = cfg_params->vccRssiThreshold;
 	pParam->vccRssiThreshold = cfg_params->vccRssiThreshold;
 	pParam->vccUlMacLossThreshold = cfg_params->vccUlMacLossThreshold;
 	pParam->vccUlMacLossThreshold = cfg_params->vccUlMacLossThreshold;
 	pParam->nTxPowerCap = cfg_params->nTxPowerCap;
 	pParam->nTxPowerCap = cfg_params->nTxPowerCap;
+	pParam->allow_tpc_from_ap = cfg_params->allow_tpc_from_ap;
 	pParam->statsReqPeriodicity = cfg_params->statsReqPeriodicity;
 	pParam->statsReqPeriodicity = cfg_params->statsReqPeriodicity;
 	pParam->statsReqPeriodicityInPS = cfg_params->statsReqPeriodicityInPS;
 	pParam->statsReqPeriodicityInPS = cfg_params->statsReqPeriodicityInPS;
 	pParam->addTSWhenACMIsOff = cfg_params->addTSWhenACMIsOff;
 	pParam->addTSWhenACMIsOff = cfg_params->addTSWhenACMIsOff;

+ 3 - 0
core/wma/src/wma_dev_if.c

@@ -2704,6 +2704,9 @@ wma_vdev_set_bss_params(tp_wma_handle wma, int vdev_id,
 		WMA_LOGW("Setting Tx power limit to 0");
 		WMA_LOGW("Setting Tx power limit to 0");
 	}
 	}
 
 
+	WMA_LOGI("Set maxTx pwr [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
+						maxTxPower);
+
 	ret = wma_vdev_set_param(wma->wmi_handle, vdev_id,
 	ret = wma_vdev_set_param(wma->wmi_handle, vdev_id,
 					      WMI_VDEV_PARAM_TX_PWRLIMIT,
 					      WMI_VDEV_PARAM_TX_PWRLIMIT,
 					      maxTxPower);
 					      maxTxPower);

+ 2 - 2
core/wma/src/wma_power.c

@@ -397,7 +397,7 @@ void wma_set_tx_power(WMA_HANDLE handle,
 	if (wma_handle->interfaces[vdev_id].tx_power != tx_pwr_params->power) {
 	if (wma_handle->interfaces[vdev_id].tx_power != tx_pwr_params->power) {
 
 
 		/* tx_power changed, Push the tx_power to FW */
 		/* tx_power changed, Push the tx_power to FW */
-		WMA_LOGW("%s: Set TX power limit [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
+		WMA_LOGI("%s: Set TX pwr limit [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
 			__func__, tx_pwr_params->power);
 			__func__, tx_pwr_params->power);
 		ret = wma_vdev_set_param(wma_handle->wmi_handle,
 		ret = wma_vdev_set_param(wma_handle->wmi_handle,
 						      vdev_id,
 						      vdev_id,
@@ -464,7 +464,7 @@ void wma_set_max_tx_power(WMA_HANDLE handle,
 		ret = QDF_STATUS_SUCCESS;
 		ret = QDF_STATUS_SUCCESS;
 		goto end;
 		goto end;
 	}
 	}
-	WMA_LOGW("Set MAX TX power limit [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
+	WMA_LOGI("Set MAX TX pwr limit [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
 		 wma_handle->interfaces[vdev_id].max_tx_power);
 		 wma_handle->interfaces[vdev_id].max_tx_power);
 	ret = wma_vdev_set_param(wma_handle->wmi_handle, vdev_id,
 	ret = wma_vdev_set_param(wma_handle->wmi_handle, vdev_id,
 				WMI_VDEV_PARAM_TX_PWRLIMIT,
 				WMI_VDEV_PARAM_TX_PWRLIMIT,

+ 1 - 1
core/wma/src/wma_scan_roam.c

@@ -740,7 +740,7 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle,
 
 
 		WMI_SET_CHANNEL_REG_POWER(tchan_info,
 		WMI_SET_CHANNEL_REG_POWER(tchan_info,
 					  chan_list->chanParam[i].pwr);
 					  chan_list->chanParam[i].pwr);
-		WMA_LOGD("Channel TX power[%d] = %u: %d", i, tchan_info->mhz,
+		WMA_LOGI("Channel TX power[%d] = %u: %d", i, tchan_info->mhz,
 			 chan_list->chanParam[i].pwr);
 			 chan_list->chanParam[i].pwr);
 		/*TODO: Set WMI_SET_CHANNEL_MIN_POWER */
 		/*TODO: Set WMI_SET_CHANNEL_MIN_POWER */
 		/*TODO: Set WMI_SET_CHANNEL_ANTENNA_MAX */
 		/*TODO: Set WMI_SET_CHANNEL_ANTENNA_MAX */