diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-08-25 15:30:47 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-08-25 15:30:47 -0700 |
| commit | b0a54937a92e3ccb8587ced65382c2931fd81bdd (patch) | |
| tree | ba26e5e9755691711793d017b11310cbe57591ba | |
| parent | 90553de39258b48866717cb125848395aa4dfed4 (diff) | |
| parent | 5c1894c01df4cdb853d2ef3a0b1edc7bbb32020b (diff) | |
Merge "qpnp-qnovo: check ptrain_en in restart work"
| -rw-r--r-- | drivers/power/supply/qcom/qpnp-qnovo.c | 20 |
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) { |
