diff options
-rw-r--r-- | drivers/power/ab8500_fg.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/power/ab8500_fg.c b/drivers/power/ab8500_fg.c index ce7d9606667..e192893764a 100644 --- a/drivers/power/ab8500_fg.c +++ b/drivers/power/ab8500_fg.c @@ -1158,9 +1158,14 @@ static void ab8500_fg_check_capacity_limits(struct ab8500_fg *di, bool init) } } - if (changed) + if (changed) { power_supply_changed(&di->fg_psy); - + if (di->flags.fully_charged) { + dev_dbg(di->dev, "Full, notifying..: %d\n", + di->flags.fully_charged); + sysfs_notify(&di->fg_kobject, NULL, "charge_full"); + } + } } static void ab8500_fg_charge_state_to(struct ab8500_fg *di, @@ -1794,8 +1799,6 @@ static int ab8500_fg_get_ext_psy_data(struct device *dev, void *data) di->flags.fully_charged = true; /* Save current capacity as maximum */ di->bat_cap.max_mah = di->bat_cap.mah; - sysfs_notify(&di->fg_kobject, - NULL, "charge_full"); queue_work(di->fg_wq, &di->fg_work); break; case POWER_SUPPLY_STATUS_CHARGING: |