summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-08-25 15:30:47 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-08-25 15:30:47 -0700
commitb0a54937a92e3ccb8587ced65382c2931fd81bdd (patch)
treeba26e5e9755691711793d017b11310cbe57591ba
parent90553de39258b48866717cb125848395aa4dfed4 (diff)
parent5c1894c01df4cdb853d2ef3a0b1edc7bbb32020b (diff)
Merge "qpnp-qnovo: check ptrain_en in restart work"
-rw-r--r--drivers/power/supply/qcom/qpnp-qnovo.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/power/supply/qcom/qpnp-qnovo.c b/drivers/power/supply/qcom/qpnp-qnovo.c
index b20807990efc..98bb939f47ac 100644
--- a/drivers/power/supply/qcom/qpnp-qnovo.c
+++ b/drivers/power/supply/qcom/qpnp-qnovo.c
@@ -1333,6 +1333,26 @@ static void ptrain_restart_work(struct work_struct *work)
struct qnovo, ptrain_restart_work.work);
u8 pt_t1, pt_t2;
int rc;
+ u8 pt_en;
+
+ rc = qnovo_read(chip, QNOVO_PTRAIN_EN, &pt_en, 1);
+ if (rc < 0) {
+ dev_err(chip->dev, "Couldn't read QNOVO_PTRAIN_EN rc = %d\n",
+ rc);
+ goto clean_up;
+ }
+
+ if (!pt_en) {
+ rc = qnovo_masked_write(chip, QNOVO_PTRAIN_EN,
+ QNOVO_PTRAIN_EN_BIT, QNOVO_PTRAIN_EN_BIT);
+ if (rc < 0) {
+ dev_err(chip->dev, "Couldn't enable pulse train rc=%d\n",
+ rc);
+ goto clean_up;
+ }
+ /* sleep 20ms for the pulse trains to restart and settle */
+ msleep(20);
+ }
rc = qnovo_read(chip, QNOVO_PTTIME_STS, &pt_t1, 1);
if (rc < 0) {