Przeglądaj źródła

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>
Mark Brown 12 lat temu
rodzic
commit
2b5a24a01d
1 zmienionych plików z 3 dodań i 0 usunięć
  1. 3 0
      drivers/regulator/core.c

+ 3 - 0
drivers/regulator/core.c

@@ -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);