mfd: max8997: Disable interrupt handling for suspend/resume cycle
Disable IRQs during suspend/resume cycle to ensure handling of wakeup interrupts (i.e. RTC wake alarm) after max8997_resume(). This way it can be properly handled when I2C bus is finally available. This pattern is also used in other MAX PMIC MFD drivers. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
efddff27c8
commit
c1aaaa1cb7
|
@ -448,6 +448,7 @@ static int max8997_suspend(struct device *dev)
|
||||||
struct i2c_client *i2c = to_i2c_client(dev);
|
struct i2c_client *i2c = to_i2c_client(dev);
|
||||||
struct max8997_dev *max8997 = i2c_get_clientdata(i2c);
|
struct max8997_dev *max8997 = i2c_get_clientdata(i2c);
|
||||||
|
|
||||||
|
disable_irq(max8997->irq);
|
||||||
if (device_may_wakeup(dev))
|
if (device_may_wakeup(dev))
|
||||||
irq_set_irq_wake(max8997->irq, 1);
|
irq_set_irq_wake(max8997->irq, 1);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -460,6 +461,7 @@ static int max8997_resume(struct device *dev)
|
||||||
|
|
||||||
if (device_may_wakeup(dev))
|
if (device_may_wakeup(dev))
|
||||||
irq_set_irq_wake(max8997->irq, 0);
|
irq_set_irq_wake(max8997->irq, 0);
|
||||||
|
enable_irq(max8997->irq);
|
||||||
return max8997_irq_resume(max8997);
|
return max8997_irq_resume(max8997);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue