mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-17 18:56:24 +00:00
power: supply: ab8500_fg: Init battery data in bind()
We were assigning some battery data state in probe() but this is insecure as it depends on the proper probe order between the components: the charger must probe first so that the battery data is populated. Move the init to the bind() call which is certain to happen after the probe of the master and all components has happened. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
2a5f41830a
commit
fc81c435a8
@ -3023,6 +3023,10 @@ static int ab8500_fg_bind(struct device *dev, struct device *master,
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
di->bat_cap.max_mah_design = di->bm->bi.charge_full_design_uah;
|
||||
di->bat_cap.max_mah = di->bat_cap.max_mah_design;
|
||||
di->vbat_nom_uv = di->bm->bi.voltage_max_design_uv;
|
||||
|
||||
/* Start the coulomb counter */
|
||||
ab8500_fg_coulomb_counter(di, true);
|
||||
/* Run the FG algorithm */
|
||||
@ -3082,10 +3086,6 @@ static int ab8500_fg_probe(struct platform_device *pdev)
|
||||
psy_cfg.num_supplicants = ARRAY_SIZE(supply_interface);
|
||||
psy_cfg.drv_data = di;
|
||||
|
||||
di->bat_cap.max_mah_design = di->bm->bi.charge_full_design_uah;
|
||||
di->bat_cap.max_mah = di->bat_cap.max_mah_design;
|
||||
di->vbat_nom_uv = di->bm->bi.voltage_max_design_uv;
|
||||
|
||||
di->init_capacity = true;
|
||||
|
||||
ab8500_fg_charge_state_to(di, AB8500_FG_CHARGE_INIT);
|
||||
|
Loading…
x
Reference in New Issue
Block a user