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: Prashant Malani <pmalani@chromium.org> Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
This commit is contained in:
parent
f47a6113f4
commit
9fbe967d4e
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user