diff options
-rw-r--r-- | drivers/mfd/sec-core.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/mfd/sec-core.c b/drivers/mfd/sec-core.c index 09fd256abcf6..01beae8af255 100644 --- a/drivers/mfd/sec-core.c +++ b/drivers/mfd/sec-core.c | |||
@@ -374,19 +374,18 @@ static int sec_pmic_suspend(struct device *dev) | |||
374 | struct i2c_client *i2c = container_of(dev, struct i2c_client, dev); | 374 | struct i2c_client *i2c = container_of(dev, struct i2c_client, dev); |
375 | struct sec_pmic_dev *sec_pmic = i2c_get_clientdata(i2c); | 375 | struct sec_pmic_dev *sec_pmic = i2c_get_clientdata(i2c); |
376 | 376 | ||
377 | if (device_may_wakeup(dev)) { | 377 | if (device_may_wakeup(dev)) |
378 | enable_irq_wake(sec_pmic->irq); | 378 | enable_irq_wake(sec_pmic->irq); |
379 | /* | 379 | /* |
380 | * PMIC IRQ must be disabled during suspend for RTC alarm | 380 | * PMIC IRQ must be disabled during suspend for RTC alarm |
381 | * to work properly. | 381 | * to work properly. |
382 | * When device is woken up from suspend by RTC Alarm, an | 382 | * When device is woken up from suspend, an |
383 | * interrupt occurs before resuming I2C bus controller. | 383 | * interrupt occurs before resuming I2C bus controller. |
384 | * The interrupt is handled by regmap_irq_thread which tries | 384 | * The interrupt is handled by regmap_irq_thread which tries |
385 | * to read RTC registers. This read fails (I2C is still | 385 | * to read RTC registers. This read fails (I2C is still |
386 | * suspended) and RTC Alarm interrupt is disabled. | 386 | * suspended) and RTC Alarm interrupt is disabled. |
387 | */ | 387 | */ |
388 | disable_irq(sec_pmic->irq); | 388 | disable_irq(sec_pmic->irq); |
389 | } | ||
390 | 389 | ||
391 | return 0; | 390 | return 0; |
392 | } | 391 | } |
@@ -396,10 +395,9 @@ static int sec_pmic_resume(struct device *dev) | |||
396 | struct i2c_client *i2c = container_of(dev, struct i2c_client, dev); | 395 | struct i2c_client *i2c = container_of(dev, struct i2c_client, dev); |
397 | struct sec_pmic_dev *sec_pmic = i2c_get_clientdata(i2c); | 396 | struct sec_pmic_dev *sec_pmic = i2c_get_clientdata(i2c); |
398 | 397 | ||
399 | if (device_may_wakeup(dev)) { | 398 | if (device_may_wakeup(dev)) |
400 | disable_irq_wake(sec_pmic->irq); | 399 | disable_irq_wake(sec_pmic->irq); |
401 | enable_irq(sec_pmic->irq); | 400 | enable_irq(sec_pmic->irq); |
402 | } | ||
403 | 401 | ||
404 | return 0; | 402 | return 0; |
405 | } | 403 | } |