This patch disable before stop chargint forcibly when charger cable
is detached and check return value of regulator_enable/disable() fucntion
to confirm correct opertion of enabling/disabling charger(regulator).

Signed-off-by: Chanwoo Choi <[email protected]>
Signed-off-by: Myungjoo Ham <[email protected]>
Signed-off-by: Kyungmin Park <[email protected]>
---
 drivers/power/charger-manager.c |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c
index 526e5c9..f968301 100644
--- a/drivers/power/charger-manager.c
+++ b/drivers/power/charger-manager.c
@@ -271,9 +271,26 @@ static int try_charger_enable(struct charger_manager *cm, 
bool enable)
        if (enable) {
                if (cm->emergency_stop)
                        return -EAGAIN;
-               for (i = 0 ; i < desc->num_charger_regulators ; i++)
-                       regulator_enable(desc->charger_regulators[i].consumer);
+               for (i = 0 ; i < desc->num_charger_regulators ; i++) {
+                       err = regulator_enable(
+                               desc->charger_regulators[i].consumer);
+                       if (err < 0) {
+                               dev_warn(cm->dev,
+                               "Cannot enable %s regulator\n",
+                               desc->charger_regulators[i].regulator_name);
+                       }
+               }
        } else {
+               for (i = 0 ; i < desc->num_charger_regulators ; i++) {
+                       err = regulator_disable(
+                               desc->charger_regulators[i].consumer);
+                       if (err < 0) {
+                               dev_warn(cm->dev,
+                               "Cannot disable %s regulator\n",
+                               desc->charger_regulators[i].regulator_name);
+                       }
+               }
+
                /*
                 * Abnormal battery state - Stop charging forcibly,
                 * even if charger was enabled at the other places
-- 
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
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