qcacld-3.0: Use common scan api to wait on scan to get completed

Add changes to use common scan api to wait on scan to get completed

Change-Id: I45181908a6a81de21e4ba906f54ae3190aa212d0
CRs-Fixed: 2038093
This commit is contained in:
Abhishek Singh 2017-04-25 11:58:16 +05:30 • committed by snandini
commit 69ccb5164f
7 changed files with 24 additions and 78 deletions

View file

@ -14756,9 +14756,8 @@ static int __wlan_hdd_cfg80211_disconnect(struct wiphy *wiphy,
pScanInfo = &pAdapter->scan_info;
if (pScanInfo->mScanPending) {
hdd_debug("Disconnect is in progress, Aborting Scan");
hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
pAdapter->sessionId, INVALID_SCAN_ID, false);
}
wlan_hdd_cleanup_remain_on_channel_ctx(pAdapter);
#ifdef FEATURE_WLAN_TDLS

View file

@ -1675,9 +1675,8 @@ QDF_STATUS hdd_hostapd_sap_event_cb(tpSap_Event pSapEvent,
pScanInfo = &pHostapdAdapter->scan_info;
/* Lets abort scan to ensure smooth authentication for client */
if ((pScanInfo != NULL) && pScanInfo->mScanPending) {
hdd_abort_mac_scan(pHddCtx, pHostapdAdapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
pHostapdAdapter->sessionId, INVALID_SCAN_ID, false);
}
if (pHostapdAdapter->device_mode == QDF_P2P_GO_MODE) {
/* send peer status indication to oem app */
@ -8042,7 +8041,6 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy,
tSirUpdateIE updateIE;
beacon_data_t *old;
int ret;
unsigned long rc;
hdd_adapter_list_node_t *pAdapterNode = NULL;
hdd_adapter_list_node_t *pNext = NULL;
@ -8101,19 +8099,8 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy,
if (pScanInfo && pScanInfo->mScanPending) {
hdd_debug("Aborting pending scan for device mode:%d",
staAdapter->device_mode);
INIT_COMPLETION(pScanInfo->abortscan_event_var);
hdd_abort_mac_scan(staAdapter->pHddCtx,
staAdapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
rc = wait_for_completion_timeout(
&pScanInfo->abortscan_event_var,
msecs_to_jiffies(
WLAN_WAIT_TIME_ABORTSCAN));
if (!rc) {
hdd_err("Timeout occurred while waiting for abortscan");
QDF_ASSERT(pScanInfo->mScanPending);
}
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
staAdapter->sessionId, INVALID_SCAN_ID, true);
}
}

View file

@ -438,19 +438,8 @@ static int __hdd_netdev_notifier_call(struct notifier_block *nb,
case NETDEV_GOING_DOWN:
if (adapter->scan_info.mScanPending != false) {
unsigned long rc;
INIT_COMPLETION(adapter->scan_info.
abortscan_event_var);
hdd_abort_mac_scan(adapter->pHddCtx,
adapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
rc = wait_for_completion_timeout(
&adapter->scan_info.abortscan_event_var,
msecs_to_jiffies(WLAN_WAIT_TIME_ABORTSCAN));
if (!rc)
hdd_err("Timeout occurred while waiting for abortscan");
wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID,
adapter->sessionId, INVALID_SCAN_ID, true);
} else {
hdd_debug("Scan is not Pending from user");
}
@ -4898,9 +4887,8 @@ QDF_STATUS hdd_abort_mac_scan_all_adapters(hdd_context_t *hdd_ctx)
(adapter->device_mode == QDF_P2P_DEVICE_MODE) ||
(adapter->device_mode == QDF_SAP_MODE) ||
(adapter->device_mode == QDF_P2P_GO_MODE)) {
hdd_abort_mac_scan(hdd_ctx, adapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID,
adapter->sessionId, INVALID_SCAN_ID, false);
}
status = hdd_get_next_adapter(hdd_ctx, adapterNode, &pNext);
adapterNode = pNext;

View file

@ -2289,9 +2289,8 @@ struct wireless_dev *__wlan_hdd_add_virtual_intf(struct wiphy *wiphy,
!(wlan_hdd_validate_session_id(pAdapter->sessionId))) {
scan_info = &pAdapter->scan_info;
if (scan_info->mScanPending) {
hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
pAdapter->sessionId, INVALID_SCAN_ID, false);
hdd_debug("Abort Scan while adding virtual interface");
}
}

View file

@ -1832,23 +1832,9 @@ next_adapter:
return -EAGAIN;
}
if (pScanInfo->mScanPending) {
INIT_COMPLETION(pScanInfo->abortscan_event_var);
hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DEFAULT);
status =
wait_for_completion_timeout(&pScanInfo->
abortscan_event_var,
msecs_to_jiffies(WLAN_WAIT_TIME_ABORTSCAN));
if (!status) {
hdd_err("Timeout occurred while waiting for abort scan");
wlan_hdd_inc_suspend_stats(pHddCtx,
SUSPEND_FAIL_SCAN);
return -ETIME;
}
}
if (pScanInfo->mScanPending)
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
pAdapter->sessionId, INVALID_SCAN_ID, true);
status = hdd_get_next_adapter(pHddCtx, pAdapterNode, &pNext);
pAdapterNode = pNext;
}

View file

@ -1031,7 +1031,8 @@ void hdd_abort_mac_scan(hdd_context_t *pHddCtx, uint8_t sessionId,
#ifndef NAPIER_SCAN
sme_abort_mac_scan(pHddCtx->hHal, sessionId, scan_id, reason);
#else
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, sessionId, scan_id);
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
sessionId, scan_id, false);
#endif
}
/**
@ -2430,10 +2431,8 @@ static int __wlan_hdd_vendor_abort_scan(
cookie);
if (ret != 0)
return ret;
hdd_abort_mac_scan(hdd_ctx,
HDD_SESSION_ID_INVALID,
scan_id,
eCSR_SCAN_ABORT_DEFAULT);
wlan_abort_scan(hdd_ctx->hdd_pdev, INVAL_PDEV_ID,
HDD_SESSION_ID_INVALID, scan_id, false);
}
#else
wlan_vendor_abort_scan(hdd_ctx->hdd_pdev, data,
@ -2480,23 +2479,12 @@ int wlan_hdd_scan_abort(hdd_adapter_t *pAdapter)
{
hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter);
hdd_scaninfo_t *pScanInfo = NULL;
unsigned long rc;
pScanInfo = &pAdapter->scan_info;
if (pScanInfo->mScanPending) {
INIT_COMPLETION(pScanInfo->abortscan_event_var);
hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId,
INVALID_SCAN_ID, eCSR_SCAN_ABORT_DEFAULT);
rc = wait_for_completion_timeout(
&pScanInfo->abortscan_event_var,
msecs_to_jiffies(5000));
if (!rc) {
hdd_err("Timeout occurred while waiting for abort scan");
return -ETIME;
}
}
if (pScanInfo->mScanPending)
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
pAdapter->sessionId, INVALID_SCAN_ID, true);
return 0;
}

View file

@ -12374,9 +12374,8 @@ int hdd_set_band(struct net_device *dev, u8 ui_band)
while (NULL != pAdapterNode && QDF_STATUS_SUCCESS == status) {
pAdapter = pAdapterNode->pAdapter;
hHal = WLAN_HDD_GET_HAL_CTX(pAdapter);
hdd_abort_mac_scan(pHddCtx, pAdapter->sessionId,
INVALID_SCAN_ID,
eCSR_SCAN_ABORT_DUE_TO_BAND_CHANGE);
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID,
pAdapter->sessionId, INVALID_SCAN_ID, false);
connectedBand =
hdd_conn_get_connected_band
(WLAN_HDD_GET_STATION_CTX_PTR(pAdapter));