summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/ab5500_fg.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/power/ab5500_fg.c b/drivers/power/ab5500_fg.c
index 95f31cb84cb..bb2bfb9e840 100644
--- a/drivers/power/ab5500_fg.c
+++ b/drivers/power/ab5500_fg.c
@@ -1751,13 +1751,6 @@ static int __devinit ab5500_fg_probe(struct platform_device *pdev)
list_add_tail(&di->node, &ab5500_fg_list);
- /* Initialize OVV, and other registers */
- ret = ab5500_fg_init_hw_registers(di);
- if (ret) {
- dev_err(di->dev, "failed to initialize registers\n");
- goto free_fg_wq;
- }
-
/* Consider battery unknown until we're informed otherwise */
di->flags.batt_unknown = true;
@@ -1768,6 +1761,13 @@ static int __devinit ab5500_fg_probe(struct platform_device *pdev)
goto free_fg_wq;
}
+ /* Initialize OVV, and other registers */
+ ret = ab5500_fg_init_hw_registers(di);
+ if (ret) {
+ dev_err(di->dev, "failed to initialize registers\n");
+ goto pow_unreg;
+ }
+
di->fg_samples = SEC_TO_SAMPLE(di->bat->fg_params->init_timer);
ab5500_fg_coulomb_counter(di, true);
@@ -1793,6 +1793,8 @@ static int __devinit ab5500_fg_probe(struct platform_device *pdev)
dev_info(di->dev, "probe success\n");
return ret;
+pow_unreg:
+ power_supply_unregister(&di->fg_psy);
free_fg_wq:
destroy_workqueue(di->fg_wq);
free_device_info: