qcacld-3.0: Vendor scan done event should be used for vendor scan

If the scan is triggered by vendor, driver should send vendor scan
done event; otherwise supplicant can't get scan results.

Change-Id: I49403a0b6e056936832a28d90f299e66d5b96340
CRs-Fixed: 2029208
This commit is contained in:
bings 2017-04-05 08:24:29 +08:00 • committed by Sandeep Puligilla
commit 4c6cecf753
2 changed files with 7 additions and 3 deletions

View file

@ -932,6 +932,7 @@ struct hdd_adapter_s {
/* TODO Move this to sta Ctx */
struct wireless_dev wdev;
struct cfg80211_scan_request *request;
uint8_t scan_source;
/** ops checks if Opportunistic Power Save is Enable or Not
* ctw stores ctWindow value once we receive Opps command from

View file

@ -1034,7 +1034,6 @@ void hdd_abort_mac_scan(hdd_context_t *pHddCtx, uint8_t sessionId,
wlan_abort_scan(pHddCtx->hdd_pdev, INVAL_PDEV_ID, sessionId, scan_id);
#endif
}
#ifndef NAPIER_SCAN
/**
* hdd_vendor_scan_callback() - Scan completed callback event
* @hddctx: HDD context
@ -1120,7 +1119,6 @@ nla_put_failure:
qdf_mem_free(req);
return;
}
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 7, 0))
/**
* hdd_cfg80211_scan_done() - Scan completed callback to cfg80211
@ -1392,7 +1390,10 @@ static void wlan_hdd_cfg80211_scan_block_cb(struct work_struct *work)
request->n_channels = 0;
hdd_err("##In DFS Master mode. Scan aborted. Null result sent");
hdd_cfg80211_scan_done(adapter, request, true);
if (NL_SCAN == adapter->scan_source)
hdd_cfg80211_scan_done(adapter, request, true);
else
hdd_vendor_scan_callback(adapter, request, true);
adapter->request = NULL;
}
}
@ -1578,6 +1579,7 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
*/
hdd_err("##In DFS Master mode. Scan aborted");
pAdapter->request = request;
pAdapter->scan_source = source;
INIT_WORK(&pAdapter->scan_block_work,
wlan_hdd_cfg80211_scan_block_cb);
@ -1653,6 +1655,7 @@ static int __wlan_hdd_cfg80211_scan(struct wiphy *wiphy,
wlan_hdd_sap_skip_scan_check(pHddCtx, request)) {
hdd_debug("sap scan skipped");
pAdapter->request = request;
pAdapter->scan_source = source;
INIT_WORK(&pAdapter->scan_block_work,
wlan_hdd_cfg80211_scan_block_cb);
schedule_work(&pAdapter->scan_block_work);