Browse Source

qcacld-3.0: Remove wma_txrx_node params(tx_power,max_tx_power)

 Target_if cleanup done for tx_power,max_tx_power params
 Use vdev_mlme_mgmt_generic params(tx_power,maxregpower) instead

Change-Id: I3dc30bbce0026dc88f83009671851a70c1495b30
CRs-Fixed: 2555402
Amruta Kulkarni 5 years ago
parent
commit
5b738c23a3

+ 37 - 0
components/mlme/core/inc/wlan_mlme_vdev_mgr_interface.h

@@ -167,6 +167,43 @@ mlme_set_mbssid_info(struct wlan_objmgr_vdev *vdev,
 void mlme_get_mbssid_info(struct wlan_objmgr_vdev *vdev,
 			  struct vdev_mlme_mbss_11ax *mbss_11ax);
 
+/**
+ * mlme_set_tx_power() - set tx power
+ * @vdev: vdev pointer
+ * @tx_power: tx power to be set
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS mlme_set_tx_power(struct wlan_objmgr_vdev *vdev,
+			     int8_t tx_power);
+
+/**
+ * mlme_get_tx_power() - get tx power
+ * @vdev: vdev pointer
+ * @tx_power: tx power info
+ *
+ * Return: None
+ */
+int8_t mlme_get_tx_power(struct wlan_objmgr_vdev *vdev);
+
+/**
+ * mlme_get_max_reg_power() - get max reg power
+ * @vdev: vdev pointer
+ *
+ * Return: max reg power
+ */
+int8_t mlme_get_max_reg_power(struct wlan_objmgr_vdev *vdev);
+
+/**
+ * mlme_set_max_reg_power() - set max reg power
+ * @vdev: vdev pointer
+ * @max_tx_power: max tx power to be set
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS mlme_set_max_reg_power(struct wlan_objmgr_vdev *vdev,
+				 int8_t max_reg_power);
+
 /**
  * mlme_is_vdev_in_beaconning_mode() - check if vdev is beaconing mode
  * @vdev_opmode: vdev opmode

+ 60 - 0
components/mlme/core/src/wlan_mlme_vdev_mgr_interface.c

@@ -834,6 +834,66 @@ void mlme_get_mbssid_info(struct wlan_objmgr_vdev *vdev,
 	mbss_11ax = &vdev_mlme->mgmt.mbss_11ax;
 }
 
+QDF_STATUS mlme_set_tx_power(struct wlan_objmgr_vdev *vdev,
+			     int8_t tx_power)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+
+	if (!vdev_mlme) {
+		mlme_legacy_err("vdev component object is NULL");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	vdev_mlme->mgmt.generic.tx_power = tx_power;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+int8_t mlme_get_tx_power(struct wlan_objmgr_vdev *vdev)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme) {
+		mlme_legacy_err("vdev component object is NULL");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	return vdev_mlme->mgmt.generic.tx_power;
+}
+
+QDF_STATUS mlme_set_max_reg_power(struct wlan_objmgr_vdev *vdev,
+				 int8_t max_reg_power)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+
+	if (!vdev_mlme) {
+		mlme_legacy_err("vdev component object is NULL");
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	vdev_mlme->mgmt.generic.maxregpower = max_reg_power;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+int8_t mlme_get_max_reg_power(struct wlan_objmgr_vdev *vdev)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme) {
+		mlme_legacy_err("vdev component object is NULL");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	return vdev_mlme->mgmt.generic.maxregpower;
+}
+
 /**
  * vdevmgr_mlme_ext_hdl_create () - Create mlme legacy priv object
  * @vdev_mlme: vdev mlme object

+ 0 - 4
core/wma/inc/wma.h

@@ -716,8 +716,6 @@ struct wma_invalid_peer_params {
  * @nss: nss value
  * @is_channel_switch: is channel switch
  * @pause_bitmap: pause bitmap
- * @tx_power: tx power in dbm
- * @max_tx_power: max tx power in dbm
  * @nwType: network type (802.11a/b/g/n/ac)
  * @staKeyParams: sta key parameters
  * @ps_enabled: is powersave enable/disable
@@ -771,8 +769,6 @@ struct wma_txrx_node {
 	enum tx_rate_info rate_flags;
 	uint8_t nss;
 	uint16_t pause_bitmap;
-	int8_t tx_power;
-	int8_t max_tx_power;
 	uint32_t nwType;
 	tSetStaKeyParams *staKeyParams;
 	uint32_t peer_count;

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

@@ -3345,7 +3345,7 @@ wma_vdev_set_bss_params(tp_wma_handle wma, int vdev_id,
 	if (QDF_IS_STATUS_ERROR(ret))
 		WMA_LOGE("failed to set WMI_VDEV_PARAM_TX_PWRLIMIT");
 	else
-		intr[vdev_id].max_tx_power = maxTxPower;
+		mlme_set_max_reg_power(intr[vdev_id].vdev, maxTxPower);
 
 	/* Slot time */
 	if (shortSlotTimeSupported)

+ 0 - 4
core/wma/src/wma_main.c

@@ -2082,8 +2082,6 @@ static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
 			"aid %d\n"
 			"rate_flags %d\n"
 			"nss %d\n"
-			"tx_power %d\n"
-			"max_tx_power %d\n"
 			"nwType %d\n"
 			"tx_streams %d",
 			vdev_id,
@@ -2109,8 +2107,6 @@ static void wma_state_info_dump(char **buf_ptr, uint16_t *size)
 			iface->aid,
 			rate_flag,
 			iface->nss,
-			iface->tx_power,
-			iface->max_tx_power,
 			iface->nwType,
 			iface->tx_streams);
 		wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_WMA_ID);

+ 27 - 19
core/wma/src/wma_power.c

@@ -337,6 +337,8 @@ void wma_set_tx_power(WMA_HANDLE handle,
 	uint8_t vdev_id;
 	QDF_STATUS ret = QDF_STATUS_E_FAILURE;
 	struct cdp_vdev *vdev;
+	int8_t max_reg_power;
+	struct wma_txrx_node *iface;
 
 	if (tx_pwr_params->dev_mode == QDF_SAP_MODE ||
 	    tx_pwr_params->dev_mode == QDF_P2P_GO_MODE) {
@@ -362,23 +364,25 @@ void wma_set_tx_power(WMA_HANDLE handle,
 		return;
 	}
 
+	iface = &wma_handle->interfaces[vdev_id];
 	if (tx_pwr_params->power == 0) {
 		/* set to default. Since the app does not care the tx power
 		 * we keep the previous setting
 		 */
-		wma_handle->interfaces[vdev_id].tx_power = 0;
+		mlme_set_tx_power(iface->vdev, tx_pwr_params->power);
 		ret = 0;
 		goto end;
 	}
-	if (wma_handle->interfaces[vdev_id].max_tx_power != 0) {
+
+	max_reg_power = mlme_get_max_reg_power(iface->vdev);
+
+	if (max_reg_power != 0) {
 		/* make sure tx_power less than max_tx_power */
-		if (tx_pwr_params->power >
-		    wma_handle->interfaces[vdev_id].max_tx_power) {
-			tx_pwr_params->power =
-				wma_handle->interfaces[vdev_id].max_tx_power;
+		if (tx_pwr_params->power > max_reg_power) {
+			tx_pwr_params->power = max_reg_power;
 		}
 	}
-	if (wma_handle->interfaces[vdev_id].tx_power != tx_pwr_params->power) {
+	if (mlme_get_tx_power(iface->vdev) != tx_pwr_params->power) {
 
 		/* tx_power changed, Push the tx_power to FW */
 		WMA_LOGI("%s: Set TX pwr limit [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
@@ -387,8 +391,7 @@ void wma_set_tx_power(WMA_HANDLE handle,
 					      WMI_VDEV_PARAM_TX_PWRLIMIT,
 					      tx_pwr_params->power);
 		if (ret == QDF_STATUS_SUCCESS)
-			wma_handle->interfaces[vdev_id].tx_power =
-				tx_pwr_params->power;
+			mlme_set_tx_power(iface->vdev, tx_pwr_params->power);
 	} else {
 		/* no tx_power change */
 		ret = QDF_STATUS_SUCCESS;
@@ -414,6 +417,8 @@ void wma_set_max_tx_power(WMA_HANDLE handle,
 	QDF_STATUS ret = QDF_STATUS_E_FAILURE;
 	struct cdp_vdev *vdev;
 	int8_t prev_max_power;
+	int8_t max_reg_power;
+	struct wma_txrx_node *iface;
 
 	vdev = wma_find_vdev_by_addr(wma_handle, tx_pwr_params->bssId.bytes,
 				     &vdev_id);
@@ -436,27 +441,30 @@ void wma_set_max_tx_power(WMA_HANDLE handle,
 		return;
 	}
 
-	if (wma_handle->interfaces[vdev_id].max_tx_power ==
-	    tx_pwr_params->power) {
+	iface = &wma_handle->interfaces[vdev_id];
+	if (mlme_get_max_reg_power(iface->vdev) == tx_pwr_params->power) {
 		ret = QDF_STATUS_SUCCESS;
 		goto end;
 	}
-	prev_max_power = wma_handle->interfaces[vdev_id].max_tx_power;
-	wma_handle->interfaces[vdev_id].max_tx_power = tx_pwr_params->power;
-	if (wma_handle->interfaces[vdev_id].max_tx_power == 0) {
+	prev_max_power = mlme_get_max_reg_power(iface->vdev);
+
+	mlme_set_max_reg_power(iface->vdev, tx_pwr_params->power);
+
+	max_reg_power = mlme_get_max_reg_power(iface->vdev);
+
+	if (max_reg_power == 0) {
 		ret = QDF_STATUS_SUCCESS;
 		goto end;
 	}
 	WMA_LOGI("Set MAX TX pwr limit [WMI_VDEV_PARAM_TX_PWRLIMIT] to %d",
-		 wma_handle->interfaces[vdev_id].max_tx_power);
+		 max_reg_power);
 	ret = wma_vdev_set_param(wma_handle->wmi_handle, vdev_id,
 				WMI_VDEV_PARAM_TX_PWRLIMIT,
-				wma_handle->interfaces[vdev_id].max_tx_power);
+				max_reg_power);
 	if (ret == QDF_STATUS_SUCCESS)
-		wma_handle->interfaces[vdev_id].tx_power =
-			wma_handle->interfaces[vdev_id].max_tx_power;
+		mlme_set_tx_power(iface->vdev, max_reg_power);
 	else
-		wma_handle->interfaces[vdev_id].max_tx_power = prev_max_power;
+		mlme_set_max_reg_power(iface->vdev, prev_max_power);
 end:
 	qdf_mem_free(tx_pwr_params);
 	if (QDF_IS_STATUS_ERROR(ret))