qcacmn: Abort only host scans on roam start notification

The roam sequence in LFR-3.0 is roam scan start notification
from firmware followed by roam start indication and then
roam synch,roam synch frame events. Roam start is sent
after candidate selection and host driver will disable
queues when roam start is received.
But for emergency roam trigger, firmware sends roam start
indication directly without notifying roam scan start to disable
data path queues immediately after deauth received from the AP.
So roam start is received before roam scan is started at firmware
and before candidate selection is done.

After roam start notification, host sends scan abort for all scan
on vdev by setting scan command request type to
WMI_SCN_STOP_VAP_ALL. This results in roam scan getting aborted at
firmare in emergency deauth roaming case and roaming fails.

Introduce new vdev id value based on which the scan module will
abort only host triggered scans setting the flag
WMI_SCN_STOP_HOST_VAP_ALL in the scan request.

Change-Id: I3a162c55d4a008ff986fd957bed395b39c060bb5
CRs-Fixed: 2636410
这个提交包含在:
Pragaspathi Thilagaraj
2020-03-18 13:05:51 +05:30
提交者 nshrivas
父节点 868ce7c912
当前提交 0150333a89
修改 8 个文件,包含 22 行新增6 行删除

查看文件

@@ -1683,8 +1683,10 @@ QDF_STATUS wlan_abort_scan(struct wlan_objmgr_pdev *pdev,
req->cancel_req.scan_id = scan_id;
req->cancel_req.pdev_id = pdev_id;
req->cancel_req.vdev_id = vdev_id;
if (scan_id != INVAL_SCAN_ID)
if (scan_id != INVAL_SCAN_ID && scan_id != CANCEL_HOST_SCAN_ID)
req->cancel_req.req_type = WLAN_SCAN_CANCEL_SINGLE;
else if (scan_id == CANCEL_HOST_SCAN_ID)
req->cancel_req.req_type = WLAN_SCAN_CANCEL_HOST_VDEV_ALL;
else if (vdev_id == INVAL_VDEV_ID)
req->cancel_req.req_type = WLAN_SCAN_CANCEL_PDEV_ALL;
else