|
@@ -1,6 +1,6 @@
|
|
|
/*
|
|
|
* Copyright (c) 2012-2015, 2020-2021, The Linux Foundation. All rights reserved.
|
|
|
- * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
+ * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
|
*
|
|
|
* Permission to use, copy, modify, and/or distribute this software for any
|
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
@@ -35,6 +35,7 @@
|
|
|
#include "cfg_ucfg_api.h"
|
|
|
#include "wlan_roam_debug.h"
|
|
|
#include "wlan_mlo_mgr_sta.h"
|
|
|
+#include "wlan_mlo_mgr_roam.h"
|
|
|
|
|
|
#ifdef WLAN_FEATURE_FILS_SK
|
|
|
void cm_update_hlp_info(struct wlan_objmgr_vdev *vdev,
|
|
@@ -1377,7 +1378,8 @@ static void cm_process_connect_complete(struct wlan_objmgr_psoc *psoc,
|
|
|
QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_WEP_104) ||
|
|
|
QDF_HAS_PARAM(ucast_cipher, WLAN_CRYPTO_CIPHER_WEP))) {
|
|
|
cm_csr_set_ss_none(vdev_id);
|
|
|
- cm_roam_start_init_on_connect(pdev, vdev_id);
|
|
|
+ if (!wlan_vdev_mlme_is_mlo_vdev(vdev))
|
|
|
+ cm_roam_start_init_on_connect(pdev, vdev_id);
|
|
|
} else {
|
|
|
if (rsp->is_wps_connection)
|
|
|
key_interval =
|
|
@@ -1398,6 +1400,7 @@ cm_connect_complete_ind(struct wlan_objmgr_vdev *vdev,
|
|
|
struct wlan_objmgr_pdev *pdev;
|
|
|
struct wlan_objmgr_psoc *psoc;
|
|
|
enum QDF_OPMODE op_mode;
|
|
|
+ QDF_STATUS status;
|
|
|
|
|
|
if (!vdev || !rsp) {
|
|
|
mlme_err("vdev or rsp is NULL");
|
|
@@ -1435,10 +1438,15 @@ cm_connect_complete_ind(struct wlan_objmgr_vdev *vdev,
|
|
|
wlan_p2p_status_connect(vdev);
|
|
|
}
|
|
|
|
|
|
- if (op_mode == QDF_STA_MODE)
|
|
|
+ if (op_mode == QDF_STA_MODE &&
|
|
|
+ !wlan_vdev_mlme_is_mlo_vdev(vdev))
|
|
|
wlan_cm_roam_state_change(pdev, vdev_id, WLAN_ROAM_INIT,
|
|
|
REASON_CONNECT);
|
|
|
|
|
|
+ status = mlo_enable_rso(pdev, vdev);
|
|
|
+ if (QDF_IS_STATUS_ERROR(status))
|
|
|
+ return status;
|
|
|
+
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|