Merge remote-tracking branches 'regulator/fix/ad5398', 'regulator/fix/da9210', 'regul...
[cascardo/linux.git] / drivers / regulator / da9210-regulator.c
index 8b3cc9f..01c0e37 100644 (file)
@@ -132,6 +132,8 @@ static irqreturn_t da9210_irq_handler(int irq, void *data)
        if (error < 0)
                goto error_i2c;
 
+       mutex_lock(&chip->rdev->mutex);
+
        if (val & DA9210_E_OVCURR) {
                regulator_notifier_call_chain(chip->rdev,
                                              REGULATOR_EVENT_OVER_CURRENT,
@@ -155,6 +157,9 @@ static irqreturn_t da9210_irq_handler(int irq, void *data)
                                              NULL);
                handled |= DA9210_E_VMAX;
        }
+
+       mutex_unlock(&chip->rdev->mutex);
+
        if (handled) {
                /* Clear handled events */
                error = regmap_write(chip->regmap, DA9210_REG_EVENT_B, handled);