summary refs log tree commit diff
path: root/drivers/power
diff options
context:
space:
mode:
authorMatt Ranostay <mranostay@gmail.com>2016-09-30 21:45:30 -0700
committerSebastian Reichel <sre@kernel.org>2016-10-19 05:06:28 +0200
commit950b6c2d110e8df65b9d2704cc7039f3d0d9f7b2 (patch)
tree205f5a3dfec7543484920eaf9671f0945c52c595 /drivers/power
parent32c52eff6a27798706487e042fae7bac6dd73576 (diff)
downloadlinux-950b6c2d110e8df65b9d2704cc7039f3d0d9f7b2.tar.gz
power: supply: bq27xxx_battery: don't update poll_interval param if same
To avoid canceling the delayed workqueue needlessly, and scheduling an
immediate polling. Check if the new poll_interval value is different
than the previous setting.

Cc: Tony Lindgren <tony@atomide.com>
Cc: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Matt Ranostay <matt@ranostay.consulting>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/supply/bq27xxx_battery.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/power/supply/bq27xxx_battery.c b/drivers/power/supply/bq27xxx_battery.c
index 3b0dbc689d72..0c343a0c941e 100644
--- a/drivers/power/supply/bq27xxx_battery.c
+++ b/drivers/power/supply/bq27xxx_battery.c
@@ -397,10 +397,11 @@ static LIST_HEAD(bq27xxx_battery_devices);
 static int poll_interval_param_set(const char *val, const struct kernel_param *kp)
 {
 	struct bq27xxx_device_info *di;
+	unsigned int prev_val = *(unsigned int *) kp->arg;
 	int ret;
 
 	ret = param_set_uint(val, kp);
-	if (ret < 0)
+	if (ret < 0 || prev_val == *(unsigned int *) kp->arg)
 		return ret;
 
 	mutex_lock(&bq27xxx_list_lock);