mirror of
https://github.com/torvalds/linux.git
synced 2024-11-02 02:01:29 +00:00
max17042_battery: Fix power supply and irq registration ordering
IRQ registration should happen only after power supply object usable. This patch fixes the ordering of power supply and irq registration calls. Signed-off-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com> Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
This commit is contained in:
parent
0d4ed4e27a
commit
243e3527ff
@ -690,6 +690,12 @@ static int __devinit max17042_probe(struct i2c_client *client,
|
||||
max17042_write_reg(client, MAX17042_LearnCFG, 0x0007);
|
||||
}
|
||||
|
||||
ret = power_supply_register(&client->dev, &chip->battery);
|
||||
if (ret) {
|
||||
dev_err(&client->dev, "failed: power supply register\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (client->irq) {
|
||||
ret = request_threaded_irq(client->irq, NULL,
|
||||
max17042_thread_handler,
|
||||
@ -706,7 +712,6 @@ static int __devinit max17042_probe(struct i2c_client *client,
|
||||
}
|
||||
|
||||
reg = max17042_read_reg(chip->client, MAX17042_STATUS);
|
||||
|
||||
if (reg & STATUS_POR_BIT) {
|
||||
INIT_WORK(&chip->work, max17042_init_worker);
|
||||
schedule_work(&chip->work);
|
||||
@ -714,10 +719,7 @@ static int __devinit max17042_probe(struct i2c_client *client,
|
||||
chip->init_complete = 1;
|
||||
}
|
||||
|
||||
ret = power_supply_register(&client->dev, &chip->battery);
|
||||
if (ret)
|
||||
dev_err(&client->dev, "failed: power supply register\n");
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __devexit max17042_remove(struct i2c_client *client)
|
||||
|
Loading…
Reference in New Issue
Block a user