瀏覽代碼

qcacmn: Add short SSID and BSSID in hints in scan request for 6 GHz

Currently, short SSID is not added to the hints in scan request
if BSSID hint is present. But there can be cases where both need
to be advertised and expected to be present in the probe request.
So, send short SSID hints also to firmware in scan request.

Change-Id: Ie66e6677185c106817f4d24c2f07730c53ae243a
CRs-Fixed: 3259555
Srinivas Dasari 2 年之前
父節點
當前提交
57edb1e7e9
共有 1 個文件被更改,包括 16 次插入5 次删除
  1. 16 5
      umac/scan/core/src/wlan_scan_manager_6ghz.c

+ 16 - 5
umac/scan/core/src/wlan_scan_manager_6ghz.c

@@ -143,6 +143,7 @@ static void scm_update_rnr_info(struct wlan_objmgr_psoc *psoc,
 	struct scan_rnr_node *rnr_node;
 	struct chan_list *chan_list;
 	QDF_STATUS status;
+	bool hint = false;
 
 	if (!req)
 		return;
@@ -164,19 +165,29 @@ static void scm_update_rnr_info(struct wlan_objmgr_psoc *psoc,
 			    req->scan_req.num_hint_bssid <
 			    WLAN_SCAN_MAX_HINT_BSSID) {
 				qdf_mem_copy(&req->scan_req.hint_bssid[
-							num_bssid++].bssid,
+							num_bssid].bssid,
 					     &rnr_node->entry.bssid,
 					     QDF_MAC_ADDR_SIZE);
+				req->scan_req.hint_bssid[
+					num_bssid++].freq_flags = freq << 16;
 				req->scan_req.num_hint_bssid++;
-				total_count--;
-			} else if (rnr_node->entry.short_ssid &&
-				   req->scan_req.num_hint_s_ssid <
+				hint = true;
+			}
+			if (rnr_node->entry.short_ssid &&
+			    req->scan_req.num_hint_s_ssid <
 				   WLAN_SCAN_MAX_HINT_S_SSID) {
 				req->scan_req.hint_s_ssid[
-					num_ssid++].short_ssid =
+					num_ssid].short_ssid =
 						rnr_node->entry.short_ssid;
+				req->scan_req.hint_s_ssid[
+					num_ssid++].freq_flags = freq << 16;
 				req->scan_req.num_hint_s_ssid++;
+				hint = true;
+			}
+
+			if (hint) {
 				total_count--;
+				hint = false;
 			}
 			status = qdf_list_peek_next(&chan->rnr_list, cur_node,
 						    &next_node);