summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-06-23 12:09:24 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-06-23 12:09:24 -0700
commit7e03e0f79ac2829d9dbe971bfeb9f6d8f402e71b (patch)
tree802711467426b80086f4b4e1ed1e41992f31a232
parentfb8f2806f60a966e5a28f1022820d5c5f9c91c20 (diff)
parent831a9547096b45ae3e26edcab8c5b72ffb16c0ae (diff)
Merge "qpnp-smb2: configure DRP mode after interrupt request"
-rw-r--r--drivers/power/supply/qcom/qpnp-smb2.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/drivers/power/supply/qcom/qpnp-smb2.c b/drivers/power/supply/qcom/qpnp-smb2.c
index 49cd7aa6fdac..3faa656691aa 100644
--- a/drivers/power/supply/qcom/qpnp-smb2.c
+++ b/drivers/power/supply/qcom/qpnp-smb2.c
@@ -1466,15 +1466,6 @@ static int smb2_configure_typec(struct smb_charger *chg)
return rc;
}
- /* configure power role for dual-role */
- rc = smblib_masked_write(chg, TYPE_C_INTRPT_ENB_SOFTWARE_CTRL_REG,
- TYPEC_POWER_ROLE_CMD_MASK, 0);
- if (rc < 0) {
- dev_err(chg->dev,
- "Couldn't configure power role for DRP rc=%d\n", rc);
- return rc;
- }
-
/*
* disable Type-C factory mode and stay in Attached.SRC state when VCONN
* over-current happens
@@ -1852,6 +1843,16 @@ static int smb2_init_hw(struct smb2 *chip)
static int smb2_post_init(struct smb2 *chip)
{
struct smb_charger *chg = &chip->chg;
+ int rc;
+
+ /* configure power role for dual-role */
+ rc = smblib_masked_write(chg, TYPE_C_INTRPT_ENB_SOFTWARE_CTRL_REG,
+ TYPEC_POWER_ROLE_CMD_MASK, 0);
+ if (rc < 0) {
+ dev_err(chg->dev,
+ "Couldn't configure power role for DRP rc=%d\n", rc);
+ return rc;
+ }
rerun_election(chg->usb_irq_enable_votable);
@@ -2419,7 +2420,11 @@ static int smb2_probe(struct platform_device *pdev)
goto cleanup;
}
- smb2_post_init(chip);
+ rc = smb2_post_init(chip);
+ if (rc < 0) {
+ pr_err("Failed in post init rc=%d\n", rc);
+ goto cleanup;
+ }
smb2_create_debugfs(chip);