aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/max77693.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/max77693.c')
-rw-r--r--drivers/mfd/max77693.c12
1 files changed, 5 insertions, 7 deletions
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