From b720a321333be6eae6ccc911b436ed8b6401b3b9 Mon Sep 17 00:00:00 2001 From: Sjoerd Simons <sjoerd.simons@collabora.co.uk> Date: Fri, 16 Aug 2019 17:00:40 +0200 Subject: [PATCH] Ensure an add uevent gets sent the power supply core filters out the add uevent from device_add and as a delayed operation later sends an initial change. Which can confuse userspace as there is a change but no add. Make the first change always be an add. Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk> --- drivers/power/supply/power_supply_core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c index 494b105b0e30..6b1f92fc4b40 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); } -- GitLab