ASoC: cs35l56: Call pm_runtime_dont_use_autosuspend()
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Fri, 8 Sep 2023 10:17:16 +0000 (11:17 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 11 Sep 2023 00:23:53 +0000 (01:23 +0100)
Driver remove() must call pm_runtime_dont_use_autosuspend().

Drivers that call pm_runtime_use_autosuspend() must disable
it in driver remove(). Unfortunately until recently this was
only mentioned in 1 line in a 900+ line document so most
people hadn't noticed this. It has only recently been added
to the kerneldoc of pm_runtime_use_autosuspend().

THIS WON'T APPLY CLEANLY TO V6.5 AND EARLIER:
We will send a separate backported patch to stable.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20230908101716.2658582-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs35l56.c

index 600b79c62ec48a5dec9d843cb036477c7867f20a..f2e7c6d0be46c8b57e3701505196e7862d8f05a8 100644 (file)
@@ -1207,6 +1207,7 @@ void cs35l56_remove(struct cs35l56_private *cs35l56)
        flush_workqueue(cs35l56->dsp_wq);
        destroy_workqueue(cs35l56->dsp_wq);
 
+       pm_runtime_dont_use_autosuspend(cs35l56->base.dev);
        pm_runtime_suspend(cs35l56->base.dev);
        pm_runtime_disable(cs35l56->base.dev);