[PATCH 1/2] regulator: core: freeze deferred disable work during suspend

From: Jiale Yao

Date: Fri Oct 16 2026 - 06:11:47 EST


regulator_disable_deferred() schedules hardware access after a
caller-provided delay. The power-efficient system workqueue remains
active during system suspend, so deferred regulator operations can reach
a bus after its controller has been suspended.

Use the freezable power-efficient workqueue to preserve the existing
power policy while deferring regulator access until devices have resumed.

Signed-off-by: Jiale Yao <yaojiale02@xxxxxxx>
---
drivers/regulator/core.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 6a4008f387b5..317f02696e47 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -3465,7 +3465,8 @@ int regulator_disable_deferred(struct regulator *regulator, int ms)

regulator_lock(rdev);
regulator->deferred_disables++;
- mod_delayed_work(system_power_efficient_wq, &rdev->disable_work,
+ mod_delayed_work(system_freezable_power_efficient_wq,
+ &rdev->disable_work,
msecs_to_jiffies(ms));
regulator_unlock(rdev);

--
2.34.1