aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.com>2012-09-22 09:48:20 +0200
committercodeworkx <codeworkx@cyanogenmod.com>2012-09-22 14:02:16 +0200
commit2489007e7d740ccbc3e0a202914e243ad5178787 (patch)
treeb8e6380ea7b1da63474ad68a5dba997e01146043 /drivers/mfd
parent5f67568eb31e3a813c7c52461dcf66ade15fc2e7 (diff)
downloadkernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.zip
kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.gz
kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.bz2
merge opensource jb u5
Change-Id: I1aaec157aa196f3448eff8636134fce89a814cf2
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/max77686.c4
-rw-r--r--drivers/mfd/max77693.c12
2 files changed, 9 insertions, 7 deletions
diff --git a/drivers/mfd/max77686.c b/drivers/mfd/max77686.c
index 9f5004d..ac95523 100644
--- a/drivers/mfd/max77686.c
+++ b/drivers/mfd/max77686.c
@@ -394,7 +394,11 @@ static int __init max77686_i2c_init(void)
return i2c_add_driver(&max77686_i2c_driver);
}
/* init early so consumer devices can complete system boot */
+#ifdef CONFIG_FAST_RESUME
+beforeresume_initcall(max77686_i2c_init);
+#else
subsys_initcall(max77686_i2c_init);
+#endif
static void __exit max77686_i2c_exit(void)
{
diff --git a/drivers/mfd/max77693.c b/drivers/mfd/max77693.c
index ee13340..769cff2 100644
--- a/drivers/mfd/max77693.c
+++ b/drivers/mfd/max77693.c
@@ -139,9 +139,10 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
max77693->irq_base = pdata->irq_base;
max77693->irq_gpio = pdata->irq_gpio;
max77693->wakeup = pdata->wakeup;
- } else
+ } else {
+ ret = -EIO;
goto err;
-
+ }
mutex_init(&max77693->iolock);
if (max77693_read_reg(i2c, MAX77693_PMIC_REG_PMIC_ID2, &reg_data) < 0) {
@@ -165,7 +166,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
ret = max77693_irq_init(max77693);
if (ret < 0)
- goto err_mfd;
+ goto err_irq_init;
ret = mfd_add_devices(max77693->dev, -1, max77693_devs,
ARRAY_SIZE(max77693_devs), NULL, 0);
@@ -178,6 +179,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
err_mfd:
mfd_remove_devices(max77693->dev);
+err_irq_init:
i2c_unregister_device(max77693->muic);
i2c_unregister_device(max77693->haptic);
err:
@@ -212,8 +214,6 @@ static int max77693_suspend(struct device *dev)
if (device_may_wakeup(dev))
enable_irq_wake(max77693->irq);
- disable_irq(max77693->irq);
-
return 0;
}
@@ -225,8 +225,6 @@ static int max77693_resume(struct device *dev)
if (device_may_wakeup(dev))
disable_irq_wake(max77693->irq);
- enable_irq(max77693->irq);
-
return max77693_irq_resume(max77693);
}
#else