diff options
Diffstat (limited to 'drivers/mfd/max77693.c')
-rw-r--r-- | drivers/mfd/max77693.c | 12 |
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, ®_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 |