qcacmn: Optimize vdev host-fw handshake sequence

Send beacon_tx_rate_code in the vdev_start command.

Change-Id: I53ebdbc8dc4be4dad42eaad9188a231c5d9fb618
This commit is contained in:
Debasis Das
2019-12-10 12:21:42 +05:30
committed by nshrivas
parent 2a5e76f0c6
commit 707b122764
3 changed files with 17 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
@@ -273,6 +273,7 @@ struct vdev_mlme_inactivity_params {
* @max_rate: max bandwidth rate * @max_rate: max bandwidth rate
* @tx_mgmt_rate: Tx Mgmt rate * @tx_mgmt_rate: Tx Mgmt rate
* @bcn_tx_rate: beacon Tx rate * @bcn_tx_rate: beacon Tx rate
* @bcn_tx_rate_code: beacon Tx rate code
* @type: Type of ratemask configuration * @type: Type of ratemask configuration
* @lower32: Lower 32 bits in the 1st 64-bit value * @lower32: Lower 32 bits in the 1st 64-bit value
* @higher32: Higher 32 bits in the 1st 64-bit value * @higher32: Higher 32 bits in the 1st 64-bit value
@@ -286,6 +287,9 @@ struct vdev_mlme_rate_info {
uint32_t max_rate; uint32_t max_rate;
uint32_t tx_mgmt_rate; uint32_t tx_mgmt_rate;
uint32_t bcn_tx_rate; uint32_t bcn_tx_rate;
#ifdef WLAN_BCN_RATECODE_ENABLE
uint32_t bcn_tx_rate_code;
#endif
uint8_t type; uint8_t type;
uint32_t lower32; uint32_t lower32;
uint32_t higher32; uint32_t higher32;

View File

@@ -168,7 +168,7 @@ static QDF_STATUS vdev_mgr_start_param_update(
param->channel.maxregpower = mlme_obj->mgmt.generic.maxregpower; param->channel.maxregpower = mlme_obj->mgmt.generic.maxregpower;
param->channel.antennamax = mlme_obj->mgmt.generic.antennamax; param->channel.antennamax = mlme_obj->mgmt.generic.antennamax;
param->channel.reg_class_id = mlme_obj->mgmt.generic.reg_class_id; param->channel.reg_class_id = mlme_obj->mgmt.generic.reg_class_id;
param->bcn_tx_rate_code = mlme_obj->mgmt.rate_info.bcn_tx_rate; param->bcn_tx_rate_code = vdev_mgr_fetch_ratecode(mlme_obj);
param->ldpc_rx_enabled = mlme_obj->proto.generic.ldpc; param->ldpc_rx_enabled = mlme_obj->proto.generic.ldpc;
if (mlme_obj->mgmt.generic.type == WLAN_VDEV_MLME_TYPE_AP) { if (mlme_obj->mgmt.generic.type == WLAN_VDEV_MLME_TYPE_AP) {
param->hidden_ssid = mlme_obj->mgmt.ap.hidden_ssid; param->hidden_ssid = mlme_obj->mgmt.ap.hidden_ssid;

View File

@@ -239,4 +239,15 @@ QDF_STATUS vdev_mgr_multiple_restart_send(
*/ */
QDF_STATUS vdev_mgr_peer_delete_all_send(struct vdev_mlme_obj *mlme_obj); QDF_STATUS vdev_mgr_peer_delete_all_send(struct vdev_mlme_obj *mlme_obj);
#ifdef WLAN_BCN_RATECODE_ENABLE
static inline uint32_t vdev_mgr_fetch_ratecode(struct vdev_mlme_obj *mlme_obj)
{
return mlme_obj->mgmt.rate_info.bcn_tx_rate_code;
}
#else
static inline uint32_t vdev_mgr_fetch_ratecode(struct vdev_mlme_obj *mlme_obj)
{
return mlme_obj->mgmt.rate_info.bcn_tx_rate;
}
#endif
#endif /* __VDEV_MGR_OPS_H__ */ #endif /* __VDEV_MGR_OPS_H__ */