Commit 1e351a95 authored by Afzal Mohammed's avatar Afzal Mohammed Committed by Samuel Ortiz

mfd: Make TPS65910 usable without interrupts

TPS65910 can be used without interrupts.
Hence let probe succeed in case interrupt can't be
configured and let Kernel only to complain about it
Signed-off-by: default avatarAfzal Mohammed <afzal@ti.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 26cc3ab9
...@@ -215,6 +215,7 @@ int tps65910_irq_init(struct tps65910 *tps65910, int irq, ...@@ -215,6 +215,7 @@ int tps65910_irq_init(struct tps65910 *tps65910, int irq,
int tps65910_irq_exit(struct tps65910 *tps65910) int tps65910_irq_exit(struct tps65910 *tps65910)
{ {
free_irq(tps65910->chip_irq, tps65910); if (tps65910->chip_irq)
free_irq(tps65910->chip_irq, tps65910);
return 0; return 0;
} }
...@@ -172,15 +172,12 @@ static int tps65910_i2c_probe(struct i2c_client *i2c, ...@@ -172,15 +172,12 @@ static int tps65910_i2c_probe(struct i2c_client *i2c,
tps65910_gpio_init(tps65910, pmic_plat_data->gpio_base); tps65910_gpio_init(tps65910, pmic_plat_data->gpio_base);
ret = tps65910_irq_init(tps65910, init_data->irq, init_data); tps65910_irq_init(tps65910, init_data->irq, init_data);
if (ret < 0)
goto err;
kfree(init_data); kfree(init_data);
return ret; return ret;
err: err:
mfd_remove_devices(tps65910->dev);
kfree(tps65910); kfree(tps65910);
kfree(init_data); kfree(init_data);
return ret; return ret;
...@@ -190,8 +187,8 @@ static int tps65910_i2c_remove(struct i2c_client *i2c) ...@@ -190,8 +187,8 @@ static int tps65910_i2c_remove(struct i2c_client *i2c)
{ {
struct tps65910 *tps65910 = i2c_get_clientdata(i2c); struct tps65910 *tps65910 = i2c_get_clientdata(i2c);
mfd_remove_devices(tps65910->dev);
tps65910_irq_exit(tps65910); tps65910_irq_exit(tps65910);
mfd_remove_devices(tps65910->dev);
kfree(tps65910); kfree(tps65910);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment