|
|
@@ -414,20 +414,18 @@ static int max14577_suspend(struct device *dev)
|
|
|
struct i2c_client *i2c = container_of(dev, struct i2c_client, dev);
|
|
|
struct max14577 *max14577 = i2c_get_clientdata(i2c);
|
|
|
|
|
|
- if (device_may_wakeup(dev)) {
|
|
|
+ if (device_may_wakeup(dev))
|
|
|
enable_irq_wake(max14577->irq);
|
|
|
- /*
|
|
|
- * MUIC IRQ must be disabled during suspend if this is
|
|
|
- * a wake up source because it will be handled before
|
|
|
- * resuming I2C.
|
|
|
- *
|
|
|
- * When device is woken up from suspend (e.g. by ADC change),
|
|
|
- * an interrupt occurs before resuming I2C bus controller.
|
|
|
- * Interrupt handler tries to read registers but this read
|
|
|
- * will fail because I2C is still suspended.
|
|
|
- */
|
|
|
- disable_irq(max14577->irq);
|
|
|
- }
|
|
|
+ /*
|
|
|
+ * MUIC IRQ must be disabled during suspend because if it happens
|
|
|
+ * while suspended it will be handled before resuming I2C.
|
|
|
+ *
|
|
|
+ * When device is woken up from suspend (e.g. by ADC change),
|
|
|
+ * an interrupt occurs before resuming I2C bus controller.
|
|
|
+ * Interrupt handler tries to read registers but this read
|
|
|
+ * will fail because I2C is still suspended.
|
|
|
+ */
|
|
|
+ disable_irq(max14577->irq);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -437,10 +435,9 @@ static int max14577_resume(struct device *dev)
|
|
|
struct i2c_client *i2c = container_of(dev, struct i2c_client, dev);
|
|
|
struct max14577 *max14577 = i2c_get_clientdata(i2c);
|
|
|
|
|
|
- if (device_may_wakeup(dev)) {
|
|
|
+ if (device_may_wakeup(dev))
|
|
|
disable_irq_wake(max14577->irq);
|
|
|
- enable_irq(max14577->irq);
|
|
|
- }
|
|
|
+ enable_irq(max14577->irq);
|
|
|
|
|
|
return 0;
|
|
|
}
|