فهرست منبع

qcacld-3.0: Stop the psoc idle timer during the con mode change

During con mode change the driver will perform pld idle shutdown
and restart and if the interface change timer is running which
results in duplicate of idle stop queueing.

To resolve this, add psoc idle timer stop during the con mode change.

Change-Id: I7befefd2cb996d6b3e0b4ee92ecb15e615d33e30
CRs-Fixed: 2491208
Varuneshwar Petlozu 6 سال پیش
والد
کامیت
dbe255ce1e
1فایلهای تغییر یافته به همراه11 افزوده شده و 7 حذف شده
  1. 11 7
      core/hdd/src/wlan_hdd_main.c

+ 11 - 7
core/hdd/src/wlan_hdd_main.c

@@ -14019,16 +14019,20 @@ static int __hdd_driver_mode_change(struct hdd_context *hdd_ctx,
 		return 0;
 	}
 
+	hdd_psoc_idle_timer_stop(hdd_ctx);
+
 	/* ensure adapters are stopped */
 	hdd_stop_present_mode(hdd_ctx, curr_mode);
 
-	is_mode_change_psoc_idle_shutdown = true;
-	errno = pld_idle_shutdown(hdd_ctx->parent_dev,
-				  hdd_mode_change_psoc_idle_shutdown);
-	if (errno) {
-		is_mode_change_psoc_idle_shutdown = false;
-		hdd_err("Stop wlan modules failed");
-		return errno;
+	if (DRIVER_MODULES_CLOSED != hdd_ctx->driver_status) {
+		is_mode_change_psoc_idle_shutdown = true;
+		errno = pld_idle_shutdown(hdd_ctx->parent_dev,
+					  hdd_mode_change_psoc_idle_shutdown);
+		if (errno) {
+			is_mode_change_psoc_idle_shutdown = false;
+			hdd_err("Stop wlan modules failed");
+			return errno;
+		}
 	}
 
 	/* Cleanup present mode before switching to new mode */