regulator: core: Fast path non-deferred disables
Users (especially framework code) may end up passing in a zero deferral time depending on runtime conditions or configuration. If they do then just call regulator_disable() directly to save scheduling. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
This commit is contained in:
parent
f2889e650a
commit
2b5a24a01d
|
@ -1724,6 +1724,9 @@ int regulator_disable_deferred(struct regulator *regulator, int ms)
|
||||||
if (regulator->always_on)
|
if (regulator->always_on)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (!ms)
|
||||||
|
return regulator_disable(regulator);
|
||||||
|
|
||||||
mutex_lock(&rdev->mutex);
|
mutex_lock(&rdev->mutex);
|
||||||
rdev->deferred_disables++;
|
rdev->deferred_disables++;
|
||||||
mutex_unlock(&rdev->mutex);
|
mutex_unlock(&rdev->mutex);
|
||||||
|
|
Loading…
Reference in New Issue