qcacld-3.0: Refactor VDEV opmode config during create
Refactor the hdd_vdev_create() API to move device mode based VDEV config to a new API. The new API calls required configuration functions based on the device mode. Change-Id: I54c5412577b70d92652cb16fcfb10e4d69e6f6fd CRs-Fixed: 3445149
This commit is contained in:

committed by
Madan Koyyalamudi

parent
7ff7bac480
commit
528031916a
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -764,9 +764,7 @@ QDF_STATUS ucfg_fwol_configure_global_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
/**
|
/**
|
||||||
* ucfg_fwol_configure_vdev_params - API to configure vdev specific params
|
* ucfg_fwol_configure_vdev_params - API to configure vdev specific params
|
||||||
* @psoc: pointer to psoc object
|
* @psoc: pointer to psoc object
|
||||||
* @pdev: pointer to pdev object
|
* @vdev: pointer to vdev object
|
||||||
* @device_mode: device mode
|
|
||||||
* @vdev_id: vdev ID
|
|
||||||
*
|
*
|
||||||
* Used to configure per vdev firmware params based on device mode. This is
|
* Used to configure per vdev firmware params based on device mode. This is
|
||||||
* invoked from hdd during vdev creation.
|
* invoked from hdd during vdev creation.
|
||||||
@@ -774,9 +772,7 @@ QDF_STATUS ucfg_fwol_configure_global_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
* Return: QDF Status
|
* Return: QDF Status
|
||||||
*/
|
*/
|
||||||
QDF_STATUS ucfg_fwol_configure_vdev_params(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_fwol_configure_vdev_params(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_vdev *vdev);
|
||||||
enum QDF_OPMODE device_mode,
|
|
||||||
uint8_t vdev_id);
|
|
||||||
#else
|
#else
|
||||||
static inline QDF_STATUS ucfg_fwol_psoc_open(struct wlan_objmgr_psoc *psoc)
|
static inline QDF_STATUS ucfg_fwol_psoc_open(struct wlan_objmgr_psoc *psoc)
|
||||||
{
|
{
|
||||||
@@ -1088,8 +1084,7 @@ ucfg_fwol_configure_global_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
ucfg_fwol_configure_vdev_params(struct wlan_objmgr_psoc *psoc,
|
ucfg_fwol_configure_vdev_params(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_vdev *vdev)
|
||||||
enum QDF_OPMODE device_mode, uint8_t vdev_id)
|
|
||||||
{
|
{
|
||||||
return QDF_STATUS_E_FAILURE;
|
return QDF_STATUS_E_FAILURE;
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1227,25 +1227,27 @@ QDF_STATUS ucfg_fwol_configure_global_params(struct wlan_objmgr_psoc *psoc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS ucfg_fwol_configure_vdev_params(struct wlan_objmgr_psoc *psoc,
|
QDF_STATUS ucfg_fwol_configure_vdev_params(struct wlan_objmgr_psoc *psoc,
|
||||||
struct wlan_objmgr_pdev *pdev,
|
struct wlan_objmgr_vdev *vdev)
|
||||||
enum QDF_OPMODE device_mode,
|
|
||||||
uint8_t vdev_id)
|
|
||||||
{
|
{
|
||||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
QDF_STATUS status;
|
||||||
|
uint8_t vdev_id = wlan_vdev_get_id(vdev);
|
||||||
|
|
||||||
if (device_mode == QDF_SAP_MODE) {
|
switch (wlan_vdev_mlme_get_opmode(vdev)) {
|
||||||
|
case QDF_SAP_MODE:
|
||||||
status = ucfg_fwol_get_sap_sho(psoc, &value);
|
status = ucfg_fwol_get_sap_sho(psoc, &value);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
return status;
|
break;
|
||||||
|
|
||||||
status = fwol_set_sap_sho(psoc, vdev_id, value);
|
status = fwol_set_sap_sho(psoc, vdev_id, value);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
return status;
|
break;
|
||||||
|
|
||||||
status = fwol_set_sap_wds_config(psoc, vdev_id);
|
status = fwol_set_sap_wds_config(psoc, vdev_id);
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
break;
|
||||||
return status;
|
default:
|
||||||
|
status = QDF_STATUS_SUCCESS;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
|
@@ -3251,15 +3251,18 @@ void hdd_update_macaddr(struct hdd_context *hdd_ctx,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* hdd_store_nss_chains_cfg_in_vdev() - Store the per vdev ini cfg in vdev_obj
|
* hdd_store_nss_chains_cfg_in_vdev() - Store the per vdev ini cfg in vdev_obj
|
||||||
* @adapter: Current HDD adapter passed from caller
|
* @hdd_ctx: HDD context passed from caller
|
||||||
|
* @vdev: VDEV passed with caller holding reference.
|
||||||
*
|
*
|
||||||
* This function will store the per vdev nss params to the particular mlme
|
* This function will store the per vdev nss params to the particular mlme
|
||||||
* vdev obj.
|
* vdev obj.
|
||||||
|
* Caller shall acquire the reference for vdev objmgr and release on return.
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
hdd_store_nss_chains_cfg_in_vdev(struct hdd_adapter *adapter);
|
hdd_store_nss_chains_cfg_in_vdev(struct hdd_context *hdd_ctx,
|
||||||
|
struct wlan_objmgr_vdev *vdev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_hdd_disable_roaming() - disable roaming on all STAs except the input one
|
* wlan_hdd_disable_roaming() - disable roaming on all STAs except the input one
|
||||||
|
@@ -83,9 +83,14 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
|
|||||||
sme_update_nss_in_mlme_cfg(mac_handle, nss, nss,
|
sme_update_nss_in_mlme_cfg(mac_handle, nss, nss,
|
||||||
adapter->device_mode, band);
|
adapter->device_mode, band);
|
||||||
sme_update_vdev_type_nss(mac_handle, nss, band);
|
sme_update_vdev_type_nss(mac_handle, nss, band);
|
||||||
hdd_store_nss_chains_cfg_in_vdev(adapter);
|
|
||||||
sme_update_he_cap_nss(mac_handle, adapter->deflink->vdev_id, nss);
|
|
||||||
|
|
||||||
|
status = wlan_objmgr_vdev_try_get_ref(vdev, WLAN_OSIF_ID);
|
||||||
|
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||||
|
hdd_store_nss_chains_cfg_in_vdev(adapter->hdd_ctx, vdev);
|
||||||
|
wlan_objmgr_vdev_release_ref(vdev, WLAN_OSIF_ID);
|
||||||
|
}
|
||||||
|
|
||||||
|
sme_update_he_cap_nss(mac_handle, adapter->deflink->vdev_id, nss);
|
||||||
freq = hdd_get_adapter_home_channel(adapter);
|
freq = hdd_get_adapter_home_channel(adapter);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1135,6 +1135,7 @@ hdd_update_nss_in_vdev(struct hdd_adapter *adapter, mac_handle_t mac_handle,
|
|||||||
uint8_t tx_nss, uint8_t rx_nss)
|
uint8_t tx_nss, uint8_t rx_nss)
|
||||||
{
|
{
|
||||||
uint8_t band, max_supp_nss = MAX_VDEV_NSS;
|
uint8_t band, max_supp_nss = MAX_VDEV_NSS;
|
||||||
|
struct wlan_objmgr_vdev *vdev;
|
||||||
|
|
||||||
for (band = NSS_CHAINS_BAND_2GHZ; band < NSS_CHAINS_BAND_MAX;
|
for (band = NSS_CHAINS_BAND_2GHZ; band < NSS_CHAINS_BAND_MAX;
|
||||||
band++) {
|
band++) {
|
||||||
@@ -1152,7 +1153,12 @@ hdd_update_nss_in_vdev(struct hdd_adapter *adapter, mac_handle_t mac_handle,
|
|||||||
* This API will change the ini and dynamic nss params in
|
* This API will change the ini and dynamic nss params in
|
||||||
* mlme vdev priv obj.
|
* mlme vdev priv obj.
|
||||||
*/
|
*/
|
||||||
hdd_store_nss_chains_cfg_in_vdev(adapter);
|
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
|
||||||
|
if (!vdev)
|
||||||
|
return;
|
||||||
|
|
||||||
|
hdd_store_nss_chains_cfg_in_vdev(adapter->hdd_ctx, vdev);
|
||||||
|
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hdd_set_sap_nss_params(struct hdd_context *hdd_ctx,
|
static void hdd_set_sap_nss_params(struct hdd_context *hdd_ctx,
|
||||||
|
@@ -6374,25 +6374,18 @@ int hdd_vdev_destroy(struct hdd_adapter *adapter)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
hdd_store_nss_chains_cfg_in_vdev(struct hdd_adapter *adapter)
|
hdd_store_nss_chains_cfg_in_vdev(struct hdd_context *hdd_ctx,
|
||||||
|
struct wlan_objmgr_vdev *vdev)
|
||||||
{
|
{
|
||||||
struct wlan_mlme_nss_chains vdev_ini_cfg;
|
struct wlan_mlme_nss_chains vdev_ini_cfg;
|
||||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
||||||
struct wlan_objmgr_vdev *vdev;
|
|
||||||
|
|
||||||
/* Populate the nss chain params from ini for this vdev type */
|
/* Populate the nss chain params from ini for this vdev type */
|
||||||
sme_populate_nss_chain_params(hdd_ctx->mac_handle, &vdev_ini_cfg,
|
sme_populate_nss_chain_params(hdd_ctx->mac_handle, &vdev_ini_cfg,
|
||||||
adapter->device_mode,
|
wlan_vdev_mlme_get_opmode(vdev),
|
||||||
hdd_ctx->num_rf_chains);
|
hdd_ctx->num_rf_chains);
|
||||||
|
|
||||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
|
|
||||||
/* Store the nss chain config into the vdev */
|
/* Store the nss chain config into the vdev */
|
||||||
if (vdev) {
|
|
||||||
sme_store_nss_chains_cfg_in_vdev(vdev, &vdev_ini_cfg);
|
sme_store_nss_chains_cfg_in_vdev(vdev, &vdev_ini_cfg);
|
||||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
|
|
||||||
} else {
|
|
||||||
hdd_err("Vdev is NULL");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool hdd_is_vdev_in_conn_state(struct hdd_adapter *adapter)
|
bool hdd_is_vdev_in_conn_state(struct hdd_adapter *adapter)
|
||||||
@@ -6518,6 +6511,98 @@ static void hdd_vdev_set_ht_vht_ies(mac_handle_t mac_handle,
|
|||||||
wlan_vdev_mlme_get_opmode(vdev));
|
wlan_vdev_mlme_get_opmode(vdev));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
hdd_vdev_configure_rtt_mac_randomization(struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct wlan_objmgr_vdev *vdev)
|
||||||
|
{
|
||||||
|
int errno;
|
||||||
|
QDF_STATUS status;
|
||||||
|
bool bval = false;
|
||||||
|
|
||||||
|
status = ucfg_mlme_get_rtt_mac_randomization(psoc, &bval);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
hdd_err("unable to get RTT MAC randomization value");
|
||||||
|
|
||||||
|
hdd_debug("setting RTT mac randomization param: %d", bval);
|
||||||
|
errno = sme_cli_set_command(
|
||||||
|
wlan_vdev_get_id(vdev),
|
||||||
|
wmi_vdev_param_enable_disable_rtt_initiator_random_mac,
|
||||||
|
bval, VDEV_CMD);
|
||||||
|
|
||||||
|
if (errno)
|
||||||
|
hdd_err("RTT mac randomization param set failed %d", errno);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
hdd_vdev_configure_max_tdls_params(struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct wlan_objmgr_vdev *vdev)
|
||||||
|
{
|
||||||
|
uint16_t max_peer_count;
|
||||||
|
bool target_bigtk_support = false;
|
||||||
|
|
||||||
|
/* Max peer can be tdls peers + self peer + bss peer */
|
||||||
|
max_peer_count = cfg_tdls_get_max_peer_count(psoc);
|
||||||
|
max_peer_count += 2;
|
||||||
|
wlan_vdev_set_max_peer_count(vdev, max_peer_count);
|
||||||
|
|
||||||
|
ucfg_mlme_get_bigtk_support(psoc, &target_bigtk_support);
|
||||||
|
if (target_bigtk_support)
|
||||||
|
mlme_set_bigtk_support(vdev, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
hdd_vdev_configure_nan_params(struct wlan_objmgr_psoc *psoc,
|
||||||
|
struct wlan_objmgr_vdev *vdev)
|
||||||
|
{
|
||||||
|
sme_cli_set_command(
|
||||||
|
wlan_vdev_get_id(vdev),
|
||||||
|
wmi_vdev_param_allow_nan_initial_discovery_of_mp0_cluster,
|
||||||
|
cfg_nan_get_support_mp0_discovery(psoc), VDEV_CMD);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_EXTERNAL_AUTH_MLO_SUPPORT)
|
||||||
|
static void
|
||||||
|
hdd_set_vdev_mlo_external_sae_auth_conversion(struct wlan_objmgr_vdev *vdev,
|
||||||
|
enum QDF_OPMODE mode)
|
||||||
|
{
|
||||||
|
if (mode == QDF_STA_MODE || mode == QDF_SAP_MODE)
|
||||||
|
wlan_vdev_set_mlo_external_sae_auth_conversion(vdev, true);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline void
|
||||||
|
hdd_set_vdev_mlo_external_sae_auth_conversion(struct wlan_objmgr_vdev *vdev,
|
||||||
|
enum QDF_OPMODE mode)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
hdd_vdev_configure_opmode_params(struct hdd_context *hdd_ctx,
|
||||||
|
struct wlan_objmgr_vdev *vdev)
|
||||||
|
{
|
||||||
|
struct wlan_objmgr_psoc *psoc = hdd_ctx->psoc;
|
||||||
|
enum QDF_OPMODE opmode = wlan_vdev_mlme_get_opmode(vdev);
|
||||||
|
|
||||||
|
switch (opmode) {
|
||||||
|
case QDF_STA_MODE:
|
||||||
|
hdd_vdev_configure_rtt_mac_randomization(psoc, vdev);
|
||||||
|
hdd_vdev_configure_max_tdls_params(psoc, vdev);
|
||||||
|
break;
|
||||||
|
case QDF_P2P_CLIENT_MODE:
|
||||||
|
hdd_vdev_configure_max_tdls_params(psoc, vdev);
|
||||||
|
break;
|
||||||
|
case QDF_NAN_DISC_MODE:
|
||||||
|
hdd_vdev_configure_nan_params(psoc, vdev);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ucfg_fwol_configure_vdev_params(psoc, vdev);
|
||||||
|
hdd_set_vdev_mlo_external_sae_auth_conversion(vdev, opmode);
|
||||||
|
hdd_store_nss_chains_cfg_in_vdev(hdd_ctx, vdev);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(CFG80211_11BE_BASIC)
|
#if defined(WLAN_FEATURE_11BE_MLO) && defined(CFG80211_11BE_BASIC)
|
||||||
static void
|
static void
|
||||||
hdd_populate_vdev_create_params(struct hdd_adapter *adapter,
|
hdd_populate_vdev_create_params(struct hdd_adapter *adapter,
|
||||||
@@ -6567,32 +6652,13 @@ hdd_populate_vdev_create_params(struct hdd_adapter *adapter,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_EXTERNAL_AUTH_MLO_SUPPORT)
|
|
||||||
static void
|
|
||||||
hdd_set_vdev_mlo_external_sae_auth_conversion(struct wlan_objmgr_vdev *vdev,
|
|
||||||
enum QDF_OPMODE mode)
|
|
||||||
{
|
|
||||||
if (mode == QDF_STA_MODE || mode == QDF_SAP_MODE)
|
|
||||||
wlan_vdev_set_mlo_external_sae_auth_conversion(vdev, true);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline void
|
|
||||||
hdd_set_vdev_mlo_external_sae_auth_conversion(struct wlan_objmgr_vdev *vdev,
|
|
||||||
enum QDF_OPMODE mode)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int hdd_vdev_create(struct hdd_adapter *adapter)
|
int hdd_vdev_create(struct hdd_adapter *adapter)
|
||||||
{
|
{
|
||||||
QDF_STATUS status;
|
QDF_STATUS status;
|
||||||
int errno = 0;
|
int errno = 0;
|
||||||
bool bval;
|
|
||||||
struct hdd_context *hdd_ctx;
|
struct hdd_context *hdd_ctx;
|
||||||
struct wlan_objmgr_vdev *vdev;
|
struct wlan_objmgr_vdev *vdev;
|
||||||
struct wlan_vdev_create_params vdev_params = {0};
|
struct wlan_vdev_create_params vdev_params = {0};
|
||||||
bool target_bigtk_support = false;
|
|
||||||
uint16_t max_peer_count;
|
|
||||||
|
|
||||||
hdd_nofl_debug("creating new vdev");
|
hdd_nofl_debug("creating new vdev");
|
||||||
|
|
||||||
@@ -6639,57 +6705,7 @@ int hdd_vdev_create(struct hdd_adapter *adapter)
|
|||||||
goto hdd_vdev_destroy_procedure;
|
goto hdd_vdev_destroy_procedure;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (adapter->device_mode == QDF_STA_MODE) {
|
hdd_vdev_configure_opmode_params(hdd_ctx, vdev);
|
||||||
bval = false;
|
|
||||||
status = ucfg_mlme_get_rtt_mac_randomization(hdd_ctx->psoc,
|
|
||||||
&bval);
|
|
||||||
if (QDF_IS_STATUS_ERROR(status))
|
|
||||||
hdd_err("unable to get RTT MAC randomization value");
|
|
||||||
|
|
||||||
hdd_debug("setting RTT mac randomization param: %d", bval);
|
|
||||||
errno = sme_cli_set_command(
|
|
||||||
adapter->deflink->vdev_id,
|
|
||||||
wmi_vdev_param_enable_disable_rtt_initiator_random_mac,
|
|
||||||
bval,
|
|
||||||
VDEV_CMD);
|
|
||||||
if (0 != errno)
|
|
||||||
hdd_err("RTT mac randomization param set failed %d",
|
|
||||||
errno);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (adapter->device_mode == QDF_STA_MODE ||
|
|
||||||
adapter->device_mode == QDF_P2P_CLIENT_MODE) {
|
|
||||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_OSIF_ID);
|
|
||||||
if (!vdev)
|
|
||||||
goto hdd_vdev_destroy_procedure;
|
|
||||||
|
|
||||||
/* Max peer can be tdls peers + self peer + bss peer */
|
|
||||||
max_peer_count = cfg_tdls_get_max_peer_count(hdd_ctx->psoc);
|
|
||||||
max_peer_count += 2;
|
|
||||||
wlan_vdev_set_max_peer_count(vdev, max_peer_count);
|
|
||||||
|
|
||||||
ucfg_mlme_get_bigtk_support(hdd_ctx->psoc, &target_bigtk_support);
|
|
||||||
if (target_bigtk_support)
|
|
||||||
mlme_set_bigtk_support(vdev, true);
|
|
||||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_ID);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (QDF_NAN_DISC_MODE == adapter->device_mode) {
|
|
||||||
sme_cli_set_command(
|
|
||||||
adapter->deflink->vdev_id,
|
|
||||||
wmi_vdev_param_allow_nan_initial_discovery_of_mp0_cluster,
|
|
||||||
cfg_nan_get_support_mp0_discovery(hdd_ctx->psoc),
|
|
||||||
VDEV_CMD);
|
|
||||||
}
|
|
||||||
hdd_store_nss_chains_cfg_in_vdev(adapter);
|
|
||||||
|
|
||||||
hdd_set_vdev_mlo_external_sae_auth_conversion(vdev,
|
|
||||||
adapter->device_mode);
|
|
||||||
|
|
||||||
/* Configure vdev params */
|
|
||||||
ucfg_fwol_configure_vdev_params(hdd_ctx->psoc, hdd_ctx->pdev,
|
|
||||||
adapter->device_mode,
|
|
||||||
adapter->deflink->vdev_id);
|
|
||||||
|
|
||||||
hdd_nofl_debug("vdev %d created successfully",
|
hdd_nofl_debug("vdev %d created successfully",
|
||||||
adapter->deflink->vdev_id);
|
adapter->deflink->vdev_id);
|
||||||
|
Reference in New Issue
Block a user