summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorAbhijeet Dharmapurikar <adharmap@codeaurora.org>2017-08-03 15:22:14 -0700
committerNicholas Troast <ntroast@codeaurora.org>2017-08-04 11:17:06 -0700
commitfbd4949949791ab85b648fb1327ecea5d345f99d (patch)
tree148a5fb37828c963ff29b17b1e26d9b377a268b6 /drivers/power
parentc4205fe6be9dc3b998451e4eb44aecf91ef4665f (diff)
qpnp-qnovo: skip taking ESR measurement when disabled
Currently when ptrain_done interrupt is handled, the driver invariably issues a ESR measurement. This is not required if qnovo is disabled. Change-Id: I8c81dadc38da69ba7248905af2d772f7ce918239 Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/supply/qcom/qpnp-qnovo.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/power/supply/qcom/qpnp-qnovo.c b/drivers/power/supply/qcom/qpnp-qnovo.c
index cf90f9041935..b20807990efc 100644
--- a/drivers/power/supply/qcom/qpnp-qnovo.c
+++ b/drivers/power/supply/qcom/qpnp-qnovo.c
@@ -1396,6 +1396,17 @@ static irqreturn_t handle_ptrain_done(int irq, void *data)
union power_supply_propval pval = {0};
/*
+ * In some cases (esp shutting down) the userspace would disable by
+ * setting qnovo_enable=0. Also charger could be removed or there is
+ * an error (i.e. its not okay to run qnovo)-
+ * skip taking ESR measurement in such situations
+ */
+
+ if (get_client_vote(chip->disable_votable, USER_VOTER)
+ || get_effective_result(chip->not_ok_to_qnovo_votable) > 0)
+ return IRQ_HANDLED;
+
+ /*
* hw resets pt_en bit once ptrain_done triggers.
* vote on behalf of QNI to disable it such that
* once QNI enables it, the votable state changes