Forráskód Böngészése

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 5 éve
szülő
commit
dbe255ce1e
1 módosított fájl, 11 hozzáadás és 7 törlés
  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 */