Skip to content

Commit bb3c847

Browse files
crojewsk-intelbroonie
authored andcommitted
ASoC: codecs: pcm3168a: Prevent regulator double-disable in S4
The SLEEP_PM_OPS are unset for the driver. Hibernation (S4) causes no resume (skipped thanks to smart_suspend=true) yet still performs the suspend sequence unconditionally, see device_complete() in drivers/base/power/main.c. If S4 runs for already suspended pcm3168a device, we end up with "unbalanced disables" warning from the regulators. Assigning the operations fixes the problem. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://patch.msgid.link/20260525201801.1336936-2-cezary.rojewski@intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent e43ffb6 commit bb3c847

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

sound/soc/codecs/pcm3168a.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -907,6 +907,7 @@ static int pcm3168a_rt_suspend(struct device *dev)
907907

908908
EXPORT_GPL_DEV_PM_OPS(pcm3168a_pm_ops) = {
909909
RUNTIME_PM_OPS(pcm3168a_rt_suspend, pcm3168a_rt_resume, NULL)
910+
SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
910911
};
911912

912913
MODULE_DESCRIPTION("PCM3168A codec driver");

0 commit comments

Comments
 (0)