qcacld-3.0: Call enable/disable link APIs from connect/disconnect/roam

Call enable/disable link APIs from connect/disconnect/roam etc.

Cleanup policy_mgr_handle_sap_mlo_sta_concurrency and
policy_mgr_handle_sap_plus_ml_sta_connect API as
policy_mgr_handle_sap_cli_go_ml_sta_up_csa and
policy_mgr_re_enable_ml_sta_on_p2p_sap_down will take care of
ML STA + SAP/P2P cases.

Also optimize policy_mgr_handle_ml_sta_link_concurrency to consider
only ML STA+STA cases and called from connect/disconnect/roam etc.

Change-Id: Ib8b9b2a490832ea5cbe1d86e58009e1437b331b9
CRs-Fixed: 3189685
This commit is contained in:
Abhishek Singh
2022-05-05 13:23:59 +05:30
committed by Madan Koyyalamudi
parent 86d1d71e70
commit 12e3558871
6 changed files with 128 additions and 236 deletions

View File

@@ -112,6 +112,7 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
struct wlan_objmgr_psoc *psoc;
struct wlan_objmgr_pdev *pdev;
QDF_STATUS status = event_data->status;
uint8_t vdev_id;
pdev = wlan_vdev_get_pdev(vdev);
if (!pdev)
@@ -121,6 +122,7 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
if (!psoc)
return QDF_STATUS_E_FAILURE;
vdev_id = wlan_vdev_get_id(vdev);
if (QDF_IS_STATUS_SUCCESS(status)) {
/*
* Due to audio share glitch with P2P clients caused by roam
@@ -134,9 +136,9 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
ifmgr_debug("p2p client active, keep roam disabled");
} else {
ifmgr_debug("set pcl when connection on vdev id:%d",
vdev->vdev_objmgr.vdev_id);
policy_mgr_set_pcl_for_connected_vdev(psoc,
vdev->vdev_objmgr.vdev_id, false);
vdev_id);
policy_mgr_set_pcl_for_connected_vdev(psoc, vdev_id,
false);
/*
* Enable roaming on other STA iface except this one.
* Firmware doesn't support connection on one STA iface
@@ -144,9 +146,6 @@ QDF_STATUS if_mgr_connect_complete(struct wlan_objmgr_vdev *vdev,
*/
if_mgr_enable_roaming(pdev, vdev, RSO_CONNECT_START);
}
if (wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE)
policy_mgr_handle_ml_sta_link_concurrency(psoc, vdev,
true);
} else {
/* notify connect failure on final failure */
ucfg_tdls_notify_connect_failure(psoc);
@@ -216,8 +215,5 @@ QDF_STATUS if_mgr_disconnect_complete(struct wlan_objmgr_vdev *vdev,
return status;
}
if (wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE)
policy_mgr_handle_ml_sta_link_concurrency(psoc, vdev, false);
return QDF_STATUS_SUCCESS;
}