Эх сурвалжийг харах

Merge "qca-wifi: Activate deferred start send to FW"

Linux Build Service Account 4 жил өмнө
parent
commit
fd562dfe74

+ 28 - 17
umac/mlme/vdev_mgr/core/src/vdev_mlme_sm_actions.c

@@ -189,6 +189,23 @@ static QDF_STATUS mlme_stop_pending_start(struct wlan_objmgr_pdev *pdev,
 	return status;
 }
 
+static void wlan_vdev_start_fw_send(struct wlan_objmgr_pdev *pdev,
+				    void *object,
+				    void *arg)
+{
+	struct wlan_objmgr_vdev *vdev = (struct wlan_objmgr_vdev *)object;
+	unsigned long *send_array = (unsigned long *)arg;
+
+	if (wlan_util_map_index_is_set(send_array, wlan_vdev_get_id(vdev)) ==
+					false)
+		return;
+
+	mlme_vdev_start_fw_cmd_send(pdev, vdev, 0);
+
+	 /* Reset the flag */
+	wlan_util_change_map_index(send_array, wlan_vdev_get_id(vdev), 0);
+}
+
 static QDF_STATUS mlme_stop_pending_restart(struct wlan_objmgr_pdev *pdev,
 					    struct wlan_objmgr_vdev *vdev)
 {
@@ -227,7 +244,18 @@ static QDF_STATUS mlme_stop_pending_restart(struct wlan_objmgr_pdev *pdev,
 					 WLAN_PDEV_OP_RESTART_INPROGRESS);
 			wlan_pdev_mlme_op_clear(pdev,
 						WLAN_PDEV_OP_MBSSID_RESTART);
+
+			if (wlan_util_map_is_any_index_set(
+			    pdev_mlme->start_send_vdev_arr,
+			    sizeof(pdev_mlme->start_send_vdev_arr))) {
+				wlan_objmgr_pdev_iterate_obj_list(
+					 pdev, WLAN_VDEV_OP,
+					 wlan_vdev_start_fw_send,
+					 pdev_mlme->start_send_vdev_arr, 0,
+					 WLAN_MLME_NB_ID);
+			}
 		}
+
 	}
 	qdf_spin_unlock_bh(&pdev_mlme->vdev_restart_lock);
 
@@ -250,23 +278,6 @@ static void wlan_vdev_restart_fw_send(struct wlan_objmgr_pdev *pdev,
 	wlan_util_change_map_index(send_array, wlan_vdev_get_id(vdev), 0);
 }
 
-static void wlan_vdev_start_fw_send(struct wlan_objmgr_pdev *pdev,
-				    void *object,
-				    void *arg)
-{
-	struct wlan_objmgr_vdev *vdev = (struct wlan_objmgr_vdev *)object;
-	unsigned long *send_array = (unsigned long *)arg;
-
-	if (wlan_util_map_index_is_set(send_array, wlan_vdev_get_id(vdev)) ==
-					false)
-		return;
-
-	mlme_vdev_start_fw_cmd_send(pdev, vdev, 0);
-
-	 /* Reset the flag */
-	wlan_util_change_map_index(send_array, wlan_vdev_get_id(vdev), 0);
-}
-
 static void wlan_vdev_update_des_chan(struct wlan_objmgr_pdev *pdev,
 				      void *object,
 				      void *arg)