qcacld-3.0: Modify connect start code in if mgr

Modify connect start code in interface manager by
moving disable roam and tdls link teardown notify
APIs from HDD to if mgr. Alongside, move tdls link
teardown notify API from HDD to if mgr in start bss API.
Also, move the tdls link teardown API to TDLS module from
HDD module as TDLS should manage the wait logic.

Change-Id: I09fa31878563a3daaa7c5fde46327475829317b3
CRs-Fixed: 2811807
This commit is contained in:
Gururaj Pandurangi
2020-09-30 12:31:01 -07:00
committato da snandini
parent c9cd665a5c
commit 370f376c02
18 ha cambiato i file con 300 aggiunte e 144 eliminazioni

Vedi File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2020 The Linux Foundation. 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
@@ -259,17 +259,6 @@ void hdd_notify_sta_disconnect(uint8_t session_id,
bool user_disconnect,
struct wlan_objmgr_vdev *vdev);
/**
* hdd_notify_teardown_tdls_links() - notify TDLS to teardown links
* @psoc: psoc object
*
* Notify tdls to teardown all the links, due to certain events
* in the system
*
* Return: None
*/
void hdd_notify_teardown_tdls_links(struct wlan_objmgr_psoc *psoc);
#else /* FEATURE_WLAN_TDLS */
static inline
QDF_STATUS wlan_cfg80211_tdls_osif_priv_init(struct wlan_objmgr_vdev *vdev)

Vedi File

@@ -98,52 +98,6 @@ void wlan_cfg80211_tdls_osif_priv_deinit(struct wlan_objmgr_vdev *vdev)
osif_priv->osif_tdls = NULL;
}
void hdd_notify_teardown_tdls_links(struct wlan_objmgr_psoc *psoc)
{
struct vdev_osif_priv *osif_priv;
struct osif_tdls_vdev *tdls_priv;
QDF_STATUS status;
unsigned long rc;
struct wlan_objmgr_vdev *vdev;
vdev = ucfg_get_tdls_vdev(psoc, WLAN_OSIF_TDLS_ID);
if (!vdev)
return;
osif_priv = wlan_vdev_get_ospriv(vdev);
if (!osif_priv || !osif_priv->osif_tdls) {
osif_err("osif priv or tdls priv is NULL");
goto release_ref;
}
tdls_priv = osif_priv->osif_tdls;
reinit_completion(&tdls_priv->tdls_teardown_comp);
status = ucfg_tdls_teardown_links(psoc);
if (QDF_IS_STATUS_ERROR(status)) {
osif_err("ucfg_tdls_teardown_links failed err %d", status);
goto release_ref;
}
osif_debug("Wait for tdls teardown completion. Timeout %u ms",
WAIT_TIME_FOR_TDLS_TEARDOWN_LINKS);
rc = wait_for_completion_timeout(
&tdls_priv->tdls_teardown_comp,
msecs_to_jiffies(WAIT_TIME_FOR_TDLS_TEARDOWN_LINKS));
if (0 == rc) {
osif_err(" Teardown Completion timed out rc: %ld", rc);
goto release_ref;
}
osif_debug("TDLS teardown completion status %ld ", rc);
release_ref:
wlan_objmgr_vdev_release_ref(vdev,
WLAN_OSIF_TDLS_ID);
}
void hdd_notify_tdls_reset_adapter(struct wlan_objmgr_vdev *vdev)
{
ucfg_tdls_notify_reset_adapter(vdev);
@@ -972,9 +926,6 @@ void wlan_cfg80211_tdls_event_callback(void *user_data,
case TDLS_EVENT_SETUP_REQ:
wlan_cfg80211_tdls_indicate_setup(ind);
break;
case TDLS_EVENT_TEARDOWN_LINKS_DONE:
complete(&tdls_priv->tdls_teardown_comp);
break;
case TDLS_EVENT_USER_CMD:
tdls_priv->tdls_user_cmd_len = ind->status;
complete(&tdls_priv->tdls_user_cmd_comp);