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
This commit is contained in:
Amruta Kulkarni 2019-10-23 12:21:37 -07:00 • committed by nshrivas
commit 5b738c23a3
6 changed files with 125 additions and 28 deletions

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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)

View file

@ -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);

View file

@ -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))