Browse Source

qcacmn: Optimize scan when P2P-GC connect

Cancel scan when P2P scan with BSSID and found BSSID.
Send flag to fw by WMI_SCAN_FLAG_EXT_P2P_REDUCE_TIME_SCAN.

Change the scan flag value align with fw change of:
I4760f4515c07f575df523d7e387c07113b277a6b

Change-Id: I6af3c5ae1027af36e0494f1eaceb7cb5aebec494
CRs-Fixed: 3659688
Chunquan Luo 1 năm trước cách đây
mục cha
commit
6a767ada83

+ 5 - 4
umac/scan/core/src/wlan_scan_main.h

@@ -166,11 +166,12 @@ struct probe_time_dwell_time {
 #define PASSIVE_DWELL_TIME_BT_A2DP_ENABLED 28
 
 /* Aux Scan Flags */
-#define SCAN_FLAG_EXT_AUX_LOW_POWER_SCAN	0x0000020000
-#define SCAN_FLAG_EXT_AUX_LOW_LATENCY_SCAN	0x0000040000
-#define SCAN_FLAG_EXT_AUX_FAST_SCAN		0x0000080000
-#define SCAN_FLAG_EXT_AUX_RELIABLE_SCAN		0x0000100000
+#define SCAN_FLAG_EXT_AUX_LOW_LATENCY_SCAN	0x00008000
+#define SCAN_FLAG_EXT_AUX_RELIABLE_SCAN		0x00010000
+#define SCAN_FLAG_EXT_AUX_LOW_POWER_SCAN	0x00040000
+#define SCAN_FLAG_EXT_AUX_FAST_SCAN		0x00020000
 
+#define SCAN_FLAG_EXT_STOP_IF_BSSID_FOUND	0x00080000
 /**
  * struct cb_handler - defines scan event handler
  * call back function and arguments

+ 7 - 0
umac/scan/core/src/wlan_scan_manager.c

@@ -1242,6 +1242,13 @@ scm_scan_req_update_params(struct wlan_objmgr_vdev *vdev,
 	if (req->scan_req.scan_type == SCAN_TYPE_RRM)
 		req->scan_req.scan_ctrl_flags_ext |= SCAN_FLAG_EXT_RRM_SCAN_IND;
 
+	if ((wlan_vdev_mlme_get_opmode(vdev) == QDF_P2P_DEVICE_MODE ||
+	     wlan_vdev_mlme_get_opmode(vdev) == QDF_P2P_CLIENT_MODE) &&
+	    !qdf_is_macaddr_zero(&req->scan_req.bssid_list[0]) &&
+	    !qdf_is_macaddr_broadcast(&req->scan_req.bssid_list[0]))
+		req->scan_req.scan_ctrl_flags_ext |=
+			SCAN_FLAG_EXT_STOP_IF_BSSID_FOUND;
+
 	scm_req_update_dwell_time_as_per_scan_mode(vdev, req);
 
 	scm_debug("scan_ctrl_flags_ext %0x", req->scan_req.scan_ctrl_flags_ext);