From 14a742724fc0f089893c6f70a62d30ab418ed7ff Mon Sep 17 00:00:00 2001 From: Dmitry Osipenko Date: Tue, 20 Nov 2018 04:20:19 +0300 Subject: regulator: core: Export regulator_lock and regulator_unlock This fixes compiling regulator drivers that use these function when these drivers are built as kernel modules. Fixes: f8702f9e4aa7 ("regulator: core: Use ww_mutex for regulators locking") Signed-off-by: Dmitry Osipenko Signed-off-by: Mark Brown --- drivers/regulator/core.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/regulator') diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index fd237bc0fa7c..f937a33e5f02 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -211,6 +211,7 @@ void regulator_lock(struct regulator_dev *rdev) { regulator_lock_nested(rdev, NULL); } +EXPORT_SYMBOL_GPL(regulator_lock); /** * regulator_unlock - unlock a single regulator @@ -232,6 +233,7 @@ void regulator_unlock(struct regulator_dev *rdev) mutex_unlock(®ulator_nesting_mutex); } +EXPORT_SYMBOL_GPL(regulator_unlock); static bool regulator_supply_is_couple(struct regulator_dev *rdev) { -- cgit v1.2.3 From 8ff00ba79283e691ae294a158879237179c683eb Mon Sep 17 00:00:00 2001 From: Douglas Anderson Date: Mon, 19 Nov 2018 16:26:50 -0800 Subject: regulator: core: Don't double-disable supplies in regulator_disable_deferred() In the commit f8702f9e4aa7 ("regulator: core: Use ww_mutex for regulators locking") disabling of the supply was moved into _regulator_disable(). That means regulator_disable_work() shouldn't be disabling since that double-disables the supply. Fixes: f8702f9e4aa7 ("regulator: core: Use ww_mutex for regulators locking") Signed-off-by: Douglas Anderson Reviewed-by: Dmitry Osipenko Signed-off-by: Mark Brown --- drivers/regulator/core.c | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'drivers/regulator') diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index f937a33e5f02..cfc2b8f6453b 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -2670,16 +2670,6 @@ static void regulator_disable_work(struct work_struct *work) regulator_balance_voltage(rdev, PM_SUSPEND_ON); regulator_unlock_dependent(rdev, &ww_ctx); - - if (rdev->supply) { - for (i = 0; i < count; i++) { - ret = regulator_disable(rdev->supply); - if (ret != 0) { - rdev_err(rdev, - "Supply disable failed: %d\n", ret); - } - } - } } /** -- cgit v1.2.3