diff options
Diffstat (limited to 'drivers/mfd/lp8788.c')
-rw-r--r-- | drivers/mfd/lp8788.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/mfd/lp8788.c b/drivers/mfd/lp8788.c index 768d556b3fe9..724a5712b36b 100644 --- a/drivers/mfd/lp8788.c +++ b/drivers/mfd/lp8788.c @@ -34,7 +34,7 @@ .num_resources = num_resource, \ } -static struct resource chg_irqs[] = { +static const struct resource chg_irqs[] = { /* Charger Interrupts */ { .start = LP8788_INT_CHG_INPUT_STATE, @@ -58,7 +58,7 @@ static struct resource chg_irqs[] = { }, }; -static struct resource rtc_irqs[] = { +static const struct resource rtc_irqs[] = { { .start = LP8788_INT_RTC_ALARM1, .end = LP8788_INT_RTC_ALARM2, @@ -195,17 +195,24 @@ static int lp8788_probe(struct i2c_client *cl, const struct i2c_device_id *id) if (ret) return ret; - return mfd_add_devices(lp->dev, -1, lp8788_devs, - ARRAY_SIZE(lp8788_devs), NULL, 0, NULL); + ret = mfd_add_devices(lp->dev, -1, lp8788_devs, + ARRAY_SIZE(lp8788_devs), NULL, 0, NULL); + if (ret) + goto err_exit_irq; + + return 0; + +err_exit_irq: + lp8788_irq_exit(lp); + return ret; } -static int lp8788_remove(struct i2c_client *cl) +static void lp8788_remove(struct i2c_client *cl) { struct lp8788 *lp = i2c_get_clientdata(cl); mfd_remove_devices(lp->dev); lp8788_irq_exit(lp); - return 0; } static const struct i2c_device_id lp8788_ids[] = { |