Explorar el Código

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 hace 2 años
padre
commit
57edb1e7e9
Se han modificado 1 ficheros con 16 adiciones y 5 borrados
  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);