This patch check difference value between current voltage of battery
and desc->fullbatt_uV whether positve or negative number. If difference
value is negative number when current voltage of battery is larger than
desc->fullbatt_uV, charger-manager return immediately because battery
is fully charged.

Signed-off-by: Chanwoo Choi <cw00.c...@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo....@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
---
 drivers/power/charger-manager.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c
index ee039b9..17130c7 100644
--- a/drivers/power/charger-manager.c
+++ b/drivers/power/charger-manager.c
@@ -468,7 +468,9 @@ static void fullbatt_vchk(struct work_struct *work)
        struct charger_manager *cm = container_of(dwork,
                        struct charger_manager, fullbatt_vchk_work);
        struct charger_desc *desc = cm->desc;
-       int batt_uV, err, diff;
+       int batt_uV;
+       int err;
+       int diff;
 
        /* remove the appointment for fullbatt_vchk */
        cm->fullbatt_vchk_jiffies_at = 0;
@@ -482,8 +484,9 @@ static void fullbatt_vchk(struct work_struct *work)
                return;
        }
 
-       diff = desc->fullbatt_uV;
-       diff -= batt_uV;
+       diff = desc->fullbatt_uV - batt_uV;
+       if (diff < 0)
+               return;
 
        dev_info(cm->dev, "VBATT dropped %duV after full-batt.\n", diff);
 
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to