From 4aaf58e0b6cf0a373e7b3d10e80e3d4b75f601ac Mon Sep 17 00:00:00 2001
From: "choongryeol.lee" <choongryeol.lee@lge.com>
Date: Wed, 17 Sep 2014 12:08:55 -0700
Subject: [PATCH] power: qpnp-charger: set usb props before enabling irq

The initial setting of usb psy properties should
be done before enabling usbin_valid irq to prevent
incorrect usb online status.
Also, since the setting of usb present is done in
usbin_valid irq handler previously, remove the usb
present setting in probe.

Change-Id: I11b53f30739a98ebc7b9ac9efd2e7238f0219ecd
Signed-off-by: choongryeol.lee <choongryeol.lee@lge.com>
---
 drivers/power/qpnp-charger.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/power/qpnp-charger.c b/drivers/power/qpnp-charger.c
index b1b02ffc18a0..0b96ca6fe4bc 100644
--- a/drivers/power/qpnp-charger.c
+++ b/drivers/power/qpnp-charger.c
@@ -5402,19 +5402,16 @@ qpnp_charger_probe(struct spmi_device *spmi)
 	if (chip->dc_chgpth_base)
 		qpnp_chg_dc_dcin_valid_irq_handler(chip->dcin_valid.irq, chip);
 
+	/* Set USB psy online to avoid userspace from shutting down if battery
+	 * capacity is at zero and no chargers online. */
+	if (chip->usb_present)
+		power_supply_set_online(chip->usb_psy, 1);
+
 	qpnp_chg_enable_irq(chip, &chip->chg_gone);
 	qpnp_chg_enable_irq(chip, &chip->usbin_valid);
 	if (chip->dc_chgpth_base)
 		qpnp_chg_enable_irq(chip, &chip->dcin_valid);
 
-	power_supply_set_present(chip->usb_psy,
-			qpnp_chg_is_usb_chg_plugged_in(chip));
-
-	/* Set USB psy online to avoid userspace from shutting down if battery
-	 * capacity is at zero and no chargers online. */
-	if (qpnp_chg_is_usb_chg_plugged_in(chip))
-		power_supply_set_online(chip->usb_psy, 1);
-
 	schedule_delayed_work(&chip->aicl_check_work,
 		msecs_to_jiffies(EOC_CHECK_PERIOD_MS));
 	pr_info("success chg_dis = %d, bpd = %d, usb = %d, dc = %d b_health = %d batt_present = %d\n",
-- 
GitLab