From: Puthikorn Voravootivat Date: Wed, 22 Oct 2014 01:15:37 +0000 (-0700) Subject: bq27x00_battery: Call power_supply_changed only when capacity changed X-Git-Tag: firefly_0821_release~176^2~2370^2~15 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=90f04a28fbadbc179ee6325fd4ee7d5beb27bcf0;p=firefly-linux-kernel-4.4.55.git bq27x00_battery: Call power_supply_changed only when capacity changed In current driver, power_supply_changed() is called whenever any of the battery attribute changed. This causes kernel to increases the '/sys/power/wakeup_count' and make suspend not working correctly. This patch change this behavior to call power_supply_changed() only when the battery capacity changed. Signed-off-by: Puthikorn Voravootivat Reviewed-by: David Riley Reviewed-by: Benson Leung Signed-off-by: Sebastian Reichel --- diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c index baae2151cb9a..b72ba7c1bd69 100644 --- a/drivers/power/bq27x00_battery.c +++ b/drivers/power/bq27x00_battery.c @@ -497,10 +497,11 @@ static void bq27x00_update(struct bq27x00_device_info *di) di->charge_design_full = bq27x00_battery_read_ilmd(di); } - if (memcmp(&di->cache, &cache, sizeof(cache)) != 0) { - di->cache = cache; + if (di->cache.capacity != cache.capacity) power_supply_changed(&di->bat); - } + + if (memcmp(&di->cache, &cache, sizeof(cache)) != 0) + di->cache = cache; di->last_update = jiffies; }