qcacld-3.0: Refactor station mode initialization

Introduce a new API to move HT VHT IEs initialization
code from hdd_init_station_mode() function.

The new API will have vdev objmgr as function parameter
which can be used to operate on per vdev instead of adapter.

Change-Id: Ifc6766f0d2ae8c0b272099a56b38ea71236eea08
CRs-Fixed: 3297555
Esse commit está contido em:
Vinod Kumar Pirla
2022-09-22 12:23:27 +05:30
commit de Madan Koyyalamudi
commit b2a58e1b88

Ver arquivo

@@ -6395,6 +6395,23 @@ static void hdd_store_vdev_info(struct hdd_adapter *adapter,
qdf_spin_unlock_bh(&adapter->vdev_lock);
}
static void hdd_vdev_set_ht_vht_ies(mac_handle_t mac_handle,
struct wlan_objmgr_vdev *vdev)
{
QDF_STATUS status;
struct wlan_objmgr_psoc *psoc;
bool bval = false;
psoc = wlan_vdev_get_psoc(vdev);
status = ucfg_mlme_get_vht_enable2x2(psoc, &bval);
if (QDF_IS_STATUS_ERROR(status))
hdd_err("unable to get vht_enable2x2");
sme_set_pdev_ht_vht_ies(mac_handle, bval);
sme_set_vdev_ies_per_band(mac_handle, wlan_vdev_get_id(vdev),
wlan_vdev_mlme_get_opmode(vdev));
}
#if defined(WLAN_FEATURE_11BE_MLO) && defined(CFG80211_11BE_BASIC)
static void
hdd_populate_vdev_create_params(struct hdd_adapter *adapter,
@@ -6564,21 +6581,18 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
QDF_STATUS status;
int ret_val;
mac_handle_t mac_handle;
bool bval = false;
uint8_t enable_sifs_burst = 0;
uint32_t fine_time_meas_cap = 0, roam_triggers;
struct wlan_objmgr_vdev *vdev;
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
mac_handle = hdd_ctx->mac_handle;
status = ucfg_mlme_get_vht_enable2x2(hdd_ctx->psoc, &bval);
if (!QDF_IS_STATUS_SUCCESS(status))
hdd_err("unable to get vht_enable2x2");
sme_set_pdev_ht_vht_ies(mac_handle, bval);
sme_set_vdev_ies_per_band(mac_handle, adapter->vdev_id,
adapter->device_mode);
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_INIT_DEINIT_ID);
if (!vdev)
return QDF_STATUS_E_NULL_VALUE;
hdd_vdev_set_ht_vht_ies(mac_handle, vdev);
hdd_roam_profile_init(adapter);
hdd_register_wext(adapter->dev);
@@ -6596,15 +6610,8 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
/* Make the default Auth Type as OPEN */
sta_ctx->conn_info.auth_type = eCSR_AUTH_TYPE_OPEN_SYSTEM;
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_DP_ID);
if (!vdev) {
status = QDF_STATUS_E_INVAL;
goto error_init_txrx;
}
status = ucfg_dp_init_txrx(vdev);
if (QDF_STATUS_SUCCESS != status) {
hdd_objmgr_put_vdev_by_user(vdev, WLAN_DP_ID);
hdd_err("ucfg_dp_init_txrx() failed, status code %d", status);
goto error_init_txrx;
}
@@ -6654,14 +6661,14 @@ QDF_STATUS hdd_init_station_mode(struct hdd_adapter *adapter)
VDEV_CMD);
}
hdd_objmgr_put_vdev_by_user(vdev, WLAN_DP_ID);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_INIT_DEINIT_ID);
return QDF_STATUS_SUCCESS;
error_wmm_init:
clear_bit(INIT_TX_RX_SUCCESS, &adapter->event_flags);
ucfg_dp_deinit_txrx(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_DP_ID);
error_init_txrx:
hdd_objmgr_put_vdev_by_user(vdev, WLAN_INIT_DEINIT_ID);
hdd_unregister_wext(adapter->dev);
QDF_BUG(!hdd_vdev_destroy(adapter));