From: Mark Brown Date: Fri, 7 Sep 2012 03:00:53 +0000 (+0800) Subject: regulator: core: Fast path non-deferred disables X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=2b5a24a01df12fbfa3e702ad7efae27bcb852e33;p=linux-beck.git 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 Acked-by: Liam Girdwood --- diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 50977a69f09a..ed376d9f525d 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -1724,6 +1724,9 @@ int regulator_disable_deferred(struct regulator *regulator, int ms) if (regulator->always_on) return 0; + if (!ms) + return regulator_disable(regulator); + mutex_lock(&rdev->mutex); rdev->deferred_disables++; mutex_unlock(&rdev->mutex);