ソースを参照

qcacld-3.0: Print 5Ghz channels and AP bssid in Roam result

During full scan only 2.4Ghz channels are printed.
Along with 2.4Ghz channels print 5Ghz channels.
so, use policy_mgr_get_connected_roaming_vdev_band_mask()
instead of policy_mgr_get_connected_vdev_band_mask()

After Roam result candidate or currently connected
AP bssid is not printed. so, printed candidate or
currently connected AP bssid by changing logic

Change-Id: I800ebdc033480b93150bdeb00a900c373ba333dc
CRs-Fixed: 3185092
Aravind Kishore Sukla 2 年 前
コミット
c4337e7721

+ 13 - 0
components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h

@@ -4247,4 +4247,17 @@ bool policy_mgr_is_hwmode_offload_enabled(struct wlan_objmgr_psoc *psoc);
  */
 bool policy_mgr_is_3rd_conn_on_same_band_allowed(struct wlan_objmgr_psoc *psoc,
 						 enum policy_mgr_con_mode mode);
+
+/**
+ * policy_mgr_get_connected_roaming_vdev_band_mask() - get connected vdev
+ * band mask
+ * @psoc: PSOC object
+ * @vdev_id: Vdev id
+ *
+ * Return: reg wifi band mask
+ */
+uint32_t
+policy_mgr_get_connected_roaming_vdev_band_mask(struct wlan_objmgr_psoc *psoc,
+						uint8_t vdev_id);
+
 #endif /* __WLAN_POLICY_MGR_API_H */

+ 1 - 1
components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c

@@ -1755,7 +1755,7 @@ policy_mgr_get_connected_vdev_band_mask(struct wlan_objmgr_vdev *vdev)
  *
  * Return: reg wifi band mask
  */
-static uint32_t
+uint32_t
 policy_mgr_get_connected_roaming_vdev_band_mask(struct wlan_objmgr_psoc *psoc,
 						uint8_t vdev_id)
 {

+ 5 - 6
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c

@@ -5354,9 +5354,9 @@ void cm_roam_scan_info_event(struct wlan_objmgr_psoc *psoc,
 		if (!vdev)
 			goto out;
 
-		band_mask = policy_mgr_get_connected_vdev_band_mask(vdev);
+		band_mask =
+		policy_mgr_get_connected_roaming_vdev_band_mask(psoc, vdev_id);
 		wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_OBJMGR_ID);
-
 		for (i = 0; i < num_chan; i++) {
 			if (!wlan_is_valid_frequency(chan_freq[i],
 						     band_capability,
@@ -5528,13 +5528,12 @@ void cm_roam_result_info_event(struct wlan_objmgr_psoc *psoc,
 		if (i >= MAX_ROAM_CANDIDATE_AP)
 			break;
 
-		if (scan_data->ap[i].type == WLAN_ROAM_SCAN_ROAMED_AP &&
-		    log_record->roam_result.is_roam_successful) {
+		if (res->status == 0 &&
+		    scan_data->ap[i].type == WLAN_ROAM_SCAN_ROAMED_AP) {
 			log_record->bssid = scan_data->ap[i].bssid;
 			break;
 		} else if (scan_data->ap[i].type ==
-			   WLAN_ROAM_SCAN_CURRENT_AP &&
-			   !log_record->roam_result.is_roam_successful) {
+			   WLAN_ROAM_SCAN_CURRENT_AP) {
 			log_record->bssid = scan_data->ap[i].bssid;
 			bssid = scan_data->ap[i].bssid;
 			break;