summaryrefslogtreecommitdiff
path: root/drivers/mfd/palmas.c
diff options
context:
space:
mode:
authorSang-Hun Lee <sanlee@nvidia.com>2014-04-15 19:23:47 -0700
committerRiham Haidar <rhaidar@nvidia.com>2014-05-05 14:11:24 -0700
commit1c387b45cabcd8347b42f6cc95cb0d7cf6e17979 (patch)
tree9c545395a41419ee3135d5735a2217592206c78c /drivers/mfd/palmas.c
parentc3e157f20b2bca68a0f751409ecdc00e0b06bd6a (diff)
mfd: palmas: avoid dead lock
- Avoid waiting for the irqthread to complete while holding a mutex lock irqthread needs Bug 1463497 Change-Id: I6e9b948d9fca43a17d4badb37901ebb292d229ae Signed-off-by: Sang-Hun Lee <sanlee@nvidia.com> Reviewed-on: http://git-master/r/396765 (cherry picked from commit 786a717e885bf975012c2d76aac6ece89e258343) Reviewed-on: http://git-master/r/403127 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'drivers/mfd/palmas.c')
-rw-r--r--drivers/mfd/palmas.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c
index 2e5456d6f329..9ad2213a2ece 100644
--- a/drivers/mfd/palmas.c
+++ b/drivers/mfd/palmas.c
@@ -1323,7 +1323,7 @@ static void palmas_i2c_shutdown(struct i2c_client *i2c)
mutex_lock(&d->shutdown_irq_lock);
d->shutdown_irq = true;
- disable_irq(palmas->irq);
+ disable_irq_nosync(palmas->irq);
dev_info(d->palmas->dev, "masking all palmas interrupts\n");
for (i = 0; i < d->num_mask_regs; i++) {
@@ -1336,6 +1336,7 @@ static void palmas_i2c_shutdown(struct i2c_client *i2c)
d->irq_regs->mask_reg[i].reg_add);
}
mutex_unlock(&d->shutdown_irq_lock);
+ synchronize_irq(palmas->irq);
palmas->shutdown = true;
}