Unverified Commit e9c142b0 authored by Michał Mirosław's avatar Michał Mirosław Committed by Mark Brown
Browse files

regulator: remove locking around regulator_notifier_call_chain()



regulator_notifier_call_chain() doesn't need rdev lock and rdev's
existence is assumed in the code anyway. Remove the locks from drivers.

Signed-off-by: default avatarMichał Mirosław <mirq-linux@rere.qmqm.pl>
Acked-by: default avatarAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Reviewed-by: default avatarDmitry Osipenko <digetx@gmail.com>
Link: https://lore.kernel.org/r/42393f66dcc4d80dcd9797be45216b4035aa96cb.1597032945.git.mirq-linux@rere.qmqm.pl


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 3bca239d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -485,10 +485,8 @@ static irqreturn_t da9055_ldo5_6_oc_irq(int irq, void *data)
{
	struct da9055_regulator *regulator = data;

	regulator_lock(regulator->rdev);
	regulator_notifier_call_chain(regulator->rdev,
				      REGULATOR_EVENT_OVER_CURRENT, NULL);
	regulator_unlock(regulator->rdev);

	return IRQ_HANDLED;
}
+0 −2
Original line number Diff line number Diff line
@@ -907,10 +907,8 @@ static irqreturn_t da9062_ldo_lim_event(int irq, void *data)
			continue;

		if (BIT(regl->info->oc_event.lsb) & bits) {
			regulator_lock(regl->rdev);
			regulator_notifier_call_chain(regl->rdev,
					REGULATOR_EVENT_OVER_CURRENT, NULL);
			regulator_unlock(regl->rdev);
			handled = IRQ_HANDLED;
		}
	}
+0 −2
Original line number Diff line number Diff line
@@ -574,10 +574,8 @@ static irqreturn_t da9063_ldo_lim_event(int irq, void *data)
			continue;

		if (BIT(regl->info->oc_event.lsb) & bits) {
			regulator_lock(regl->rdev);
			regulator_notifier_call_chain(regl->rdev,
					REGULATOR_EVENT_OVER_CURRENT, NULL);
			regulator_unlock(regl->rdev);
		}
	}

+0 −4
Original line number Diff line number Diff line
@@ -77,8 +77,6 @@ static irqreturn_t da9210_irq_handler(int irq, void *data)
	if (error < 0)
		goto error_i2c;

	regulator_lock(chip->rdev);

	if (val & DA9210_E_OVCURR) {
		regulator_notifier_call_chain(chip->rdev,
					      REGULATOR_EVENT_OVER_CURRENT,
@@ -103,8 +101,6 @@ static irqreturn_t da9210_irq_handler(int irq, void *data)
		handled |= DA9210_E_VMAX;
	}

	regulator_unlock(chip->rdev);

	if (handled) {
		/* Clear handled events */
		error = regmap_write(chip->regmap, DA9210_REG_EVENT_B, handled);
+0 −4
Original line number Diff line number Diff line
@@ -346,10 +346,8 @@ static irqreturn_t da9211_irq_handler(int irq, void *data)
		goto error_i2c;

	if (reg_val & DA9211_E_OV_CURR_A) {
	        regulator_lock(chip->rdev[0]);
		regulator_notifier_call_chain(chip->rdev[0],
			REGULATOR_EVENT_OVER_CURRENT, NULL);
	        regulator_unlock(chip->rdev[0]);

		err = regmap_write(chip->regmap, DA9211_REG_EVENT_B,
			DA9211_E_OV_CURR_A);
@@ -360,10 +358,8 @@ static irqreturn_t da9211_irq_handler(int irq, void *data)
	}

	if (reg_val & DA9211_E_OV_CURR_B) {
	        regulator_lock(chip->rdev[1]);
		regulator_notifier_call_chain(chip->rdev[1],
			REGULATOR_EVENT_OVER_CURRENT, NULL);
	        regulator_unlock(chip->rdev[1]);

		err = regmap_write(chip->regmap, DA9211_REG_EVENT_B,
			DA9211_E_OV_CURR_B);
Loading