From 1a3659dcd47dab3f2ca9199d07ba7a4603c29ea2 Mon Sep 17 00:00:00 2001 From: Subbaraman Narayanamurthy Date: Wed, 7 Jun 2017 17:51:30 -0700 Subject: [PATCH] power: qpnp-fg-gen3: fix an unbalanced irq disable for delta_bsoc irq Currently, rerun_election() is called on delta_bsoc_irq_en votable to disable delta_bsoc interrupt during probe. However, it doesn't set the internal variable for votable to not allow a similar vote again. When a vote is made later to disable the interrupt again, it can end up in invoking the callback again. This leads to an unbalanced interrupt disable warning. Fix it. CRs-Fixed: 2058754 Change-Id: I30c35be5275b5b310cf9b17ea4660a3e2e89c59a Signed-off-by: Subbaraman Narayanamurthy --- drivers/power/supply/qcom/qpnp-fg-gen3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/power/supply/qcom/qpnp-fg-gen3.c b/drivers/power/supply/qcom/qpnp-fg-gen3.c index 6ef1eb379060..42915c5481e1 100644 --- a/drivers/power/supply/qcom/qpnp-fg-gen3.c +++ b/drivers/power/supply/qcom/qpnp-fg-gen3.c @@ -4419,7 +4419,7 @@ static int fg_gen3_probe(struct platform_device *pdev) disable_irq_nosync(fg_irqs[SOC_UPDATE_IRQ].irq); /* Keep BSOC_DELTA_IRQ irq disabled until we require it */ - rerun_election(chip->delta_bsoc_irq_en_votable); + vote(chip->delta_bsoc_irq_en_votable, DELTA_BSOC_IRQ_VOTER, false, 0); rc = fg_debugfs_create(chip); if (rc < 0) {