Add info->charging validation to avoid repeated charge or discharge
operation.

Signed-off-by: Baolin Wang <[email protected]>
---
 drivers/power/supply/sc2731_charger.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/power/supply/sc2731_charger.c 
b/drivers/power/supply/sc2731_charger.c
index a012d6c..49b3f0c 100644
--- a/drivers/power/supply/sc2731_charger.c
+++ b/drivers/power/supply/sc2731_charger.c
@@ -328,7 +328,7 @@ static void sc2731_charger_work(struct work_struct *data)
 
        mutex_lock(&info->lock);
 
-       if (info->limit > 0) {
+       if (info->limit > 0 && !info->charging) {
                /* set current limitation and start to charge */
                ret = sc2731_charger_set_current_limit(info, info->limit);
                if (ret)
@@ -343,7 +343,7 @@ static void sc2731_charger_work(struct work_struct *data)
                        goto out;
 
                info->charging = true;
-       } else {
+       } else if (!info->limit && info->charging) {
                /* Stop charging */
                info->charging = false;
                sc2731_charger_stop_charge(info);
-- 
1.7.9.5

Reply via email to