Commit 9fbe967d authored by Tzung-Bi Shih's avatar Tzung-Bi Shih
Browse files

platform/chrome: cros_ec: determine `wake_enabled` in cros_ec_suspend()



`wake_enabled` indicates cros_ec_resume() needs to call
disable_irq_wake() to undo enable_irq_wake() in cros_ec_suspend().

Determine `wake_enabled` in cros_ec_suspend() instead of
reset-after-used in cros_ec_resume().

Reviewed-by: default avatarPrashant Malani <pmalani@chromium.org>
Signed-off-by: default avatarTzung-Bi Shih <tzungbi@kernel.org>
parent f47a6113
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -340,6 +340,8 @@ int cros_ec_suspend(struct cros_ec_device *ec_dev)

	if (device_may_wakeup(dev))
		ec_dev->wake_enabled = !enable_irq_wake(ec_dev->irq);
	else
		ec_dev->wake_enabled = false;

	disable_irq(ec_dev->irq);
	ec_dev->suspended = true;
@@ -381,10 +383,9 @@ int cros_ec_resume(struct cros_ec_device *ec_dev)
		dev_dbg(ec_dev->dev, "Error %d sending resume event to ec",
			ret);

	if (ec_dev->wake_enabled) {
	if (ec_dev->wake_enabled)
		disable_irq_wake(ec_dev->irq);
		ec_dev->wake_enabled = 0;
	}

	/*
	 * Let the mfd devices know about events that occur during
	 * suspend. This way the clients know what to do with them.