From ba0441736d3fb21e89e681b69942198c1edddc28 Mon Sep 17 00:00:00 2001 From: Nicholas Troast Date: Fri, 20 Jan 2017 13:52:10 -0800 Subject: smb-lib: fix Type-C detection after sink removal A misplaced return statement causes an early return from disabling OTG. If OTG is enabled when a source is attached then Type-C detection will fail. Therefore, OTG should never be blocked from being disabled. Remove all of the early returns that could potentially block the register write which disables OTG. Change-Id: I4645210233c7490cf3e1b8f6a629fec60399b250 Signed-off-by: Nicholas Troast --- drivers/power/supply/qcom/smb-lib.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/power/supply/qcom/smb-lib.c b/drivers/power/supply/qcom/smb-lib.c index d3f7e43ea10e..62d8ae0c5f36 100644 --- a/drivers/power/supply/qcom/smb-lib.c +++ b/drivers/power/supply/qcom/smb-lib.c @@ -1216,11 +1216,9 @@ static int _smblib_vbus_regulator_disable(struct regulator_dev *rdev) if (!chg->external_vconn) { rc = smblib_read(chg, RID_CC_CONTROL_7_0_REG, &stat); - if (rc < 0) { + if (rc < 0) smblib_err(chg, "Couldn't read RID_CC_CONTROL_7_0 rc=%d\n", rc); - return rc; - } /* check if VCONN is enabled on either CC pin */ if (stat & VCONN_EN_CC_MASK) { @@ -1229,7 +1227,6 @@ static int _smblib_vbus_regulator_disable(struct regulator_dev *rdev) if (rc < 0) smblib_err(chg, "Couldn't disable VCONN rc=%d\n", rc); - return rc; } } -- cgit v1.2.3