diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c index 494b105b0e300ecddf988ad73283950ef1f279f5..6b1f92fc4b40b0388ab5183c48e93e3ce974b639 100644 --- a/drivers/power/supply/power_supply_core.c +++ b/drivers/power/supply/power_supply_core.c @@ -96,7 +96,10 @@ static void power_supply_changed_work(struct work_struct *work) power_supply_update_leds(psy); atomic_notifier_call_chain(&power_supply_notifier, PSY_EVENT_PROP_CHANGED, psy); - kobject_uevent(&psy->dev.kobj, KOBJ_CHANGE); + if (likely(psy->dev.kobj.state_add_uevent_sent)) + kobject_uevent(&psy->dev.kobj, KOBJ_CHANGE); + else + kobject_uevent(&psy->dev.kobj, KOBJ_ADD); spin_lock_irqsave(&psy->changed_lock, flags); }