|
@@ -39,17 +39,17 @@
|
|
|
#endif
|
|
|
|
|
|
static QDF_STATUS vdev_mgr_config_ratemask_update(
|
|
|
- struct vdev_mlme_obj *mlme_obj,
|
|
|
- struct config_ratemask_params *param)
|
|
|
+ uint8_t vdev_id,
|
|
|
+ struct vdev_ratemask_params *rate_params,
|
|
|
+ struct config_ratemask_params *param,
|
|
|
+ uint8_t index)
|
|
|
{
|
|
|
- struct wlan_objmgr_vdev *vdev;
|
|
|
-
|
|
|
- vdev = mlme_obj->vdev;
|
|
|
- param->vdev_id = wlan_vdev_get_id(vdev);
|
|
|
- param->type = mlme_obj->mgmt.rate_info.type;
|
|
|
- param->lower32 = mlme_obj->mgmt.rate_info.lower32;
|
|
|
- param->higher32 = mlme_obj->mgmt.rate_info.higher32;
|
|
|
- param->lower32_2 = mlme_obj->mgmt.rate_info.lower32_2;
|
|
|
+ param->vdev_id = vdev_id;
|
|
|
+ param->type = index;
|
|
|
+ param->lower32 = rate_params->lower32;
|
|
|
+ param->lower32_2 = rate_params->lower32_2;
|
|
|
+ param->higher32 = rate_params->higher32;
|
|
|
+ param->higher32_2 = rate_params->higher32_2;
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
@@ -120,19 +120,35 @@ wlan_util_vdev_get_cdp_txrx_opmode(struct wlan_objmgr_vdev *vdev)
|
|
|
return cdp_txrx_opmode;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * wlan_util_vdev_mlme_set_ratemask_config() - common MLME API to fill
|
|
|
+ * ratemask parameters of vdev_mlme object
|
|
|
+ * @vdev_mlme: pointer to vdev_mlme object
|
|
|
+ * @index: array index of ratemask_params
|
|
|
+ */
|
|
|
QDF_STATUS
|
|
|
-wlan_util_vdev_mlme_set_ratemask_config(struct vdev_mlme_obj *vdev_mlme)
|
|
|
+wlan_util_vdev_mlme_set_ratemask_config(struct vdev_mlme_obj *vdev_mlme,
|
|
|
+ uint8_t index)
|
|
|
{
|
|
|
struct config_ratemask_params rm_param = {0};
|
|
|
+ uint8_t vdev_id;
|
|
|
+ struct vdev_mlme_rate_info *rate_info;
|
|
|
+ struct vdev_ratemask_params *rate_params;
|
|
|
|
|
|
if (!vdev_mlme) {
|
|
|
mlme_err("VDEV MLME is NULL");
|
|
|
return QDF_STATUS_E_FAILURE;
|
|
|
}
|
|
|
|
|
|
- vdev_mgr_config_ratemask_update(vdev_mlme, &rm_param);
|
|
|
+ vdev_id = wlan_vdev_get_id(vdev_mlme->vdev);
|
|
|
+ rate_info = &vdev_mlme->mgmt.rate_info;
|
|
|
+ rate_params = &rate_info->ratemask_params[index];
|
|
|
+ vdev_mgr_config_ratemask_update(vdev_id,
|
|
|
+ rate_params,
|
|
|
+ &rm_param, index);
|
|
|
|
|
|
- return tgt_vdev_mgr_config_ratemask_cmd_send(vdev_mlme, &rm_param);
|
|
|
+ return tgt_vdev_mgr_config_ratemask_cmd_send(vdev_mlme,
|
|
|
+ &rm_param);
|
|
|
}
|
|
|
|
|
|
qdf_export_symbol(wlan_util_vdev_mlme_set_ratemask_config);
|
|
@@ -438,17 +454,23 @@ wlan_util_vdev_mlme_set_param(struct vdev_mlme_obj *vdev_mlme,
|
|
|
WLAN_MLME_CFG_RX_DECAP_TYPE,
|
|
|
mlme_cfg.value);
|
|
|
break;
|
|
|
- case WLAN_MLME_CFG_RATEMASK_TYPE:
|
|
|
- mlme_mgmt->rate_info.type = mlme_cfg.value;
|
|
|
- break;
|
|
|
case WLAN_MLME_CFG_RATEMASK_LOWER32:
|
|
|
- mlme_mgmt->rate_info.lower32 = mlme_cfg.value;
|
|
|
+ if (mlme_cfg.ratemask.index < WLAN_VDEV_RATEMASK_TYPE_MAX)
|
|
|
+ mlme_mgmt->rate_info.ratemask_params[
|
|
|
+ mlme_cfg.ratemask.index].lower32 =
|
|
|
+ mlme_cfg.ratemask.value;
|
|
|
break;
|
|
|
case WLAN_MLME_CFG_RATEMASK_HIGHER32:
|
|
|
- mlme_mgmt->rate_info.higher32 = mlme_cfg.value;
|
|
|
+ if (mlme_cfg.ratemask.index < WLAN_VDEV_RATEMASK_TYPE_MAX)
|
|
|
+ mlme_mgmt->rate_info.ratemask_params[
|
|
|
+ mlme_cfg.ratemask.index].higher32 =
|
|
|
+ mlme_cfg.ratemask.value;
|
|
|
break;
|
|
|
case WLAN_MLME_CFG_RATEMASK_LOWER32_2:
|
|
|
- mlme_mgmt->rate_info.lower32_2 = mlme_cfg.value;
|
|
|
+ if (mlme_cfg.ratemask.index < WLAN_VDEV_RATEMASK_TYPE_MAX)
|
|
|
+ mlme_mgmt->rate_info.ratemask_params[
|
|
|
+ mlme_cfg.ratemask.index].lower32_2 =
|
|
|
+ mlme_cfg.ratemask.value;
|
|
|
break;
|
|
|
case WLAN_MLME_CFG_BCN_TX_RATE:
|
|
|
mlme_mgmt->rate_info.bcn_tx_rate = mlme_cfg.value;
|