summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Fitzgerald <rf@opensource.cirrus.com>2026-06-09 15:29:46 +0300
committerMark Brown <broonie@kernel.org>2026-06-09 19:13:41 +0300
commit60a1646b38d4d03e4fbdcc2c3fbff8096f5ff406 (patch)
tree9323579030cfbaa091ee4fb7132b57082a3232de
parent04015d0a985dd068d9dd8b513454fa3436ffd64f (diff)
downloadlinux-60a1646b38d4d03e4fbdcc2c3fbff8096f5ff406.tar.xz
ASoC: cs35l56: Increase pm_runtime autosuspend delay
Increase the pm_runtime autosuspend delay to be longer than the timeout of the firmware's own inactivity timer. There is no point attempting to pm_runtime suspend any sooner than the firmware idle timeout because it would only mean the driver has to poll waiting for the firmware idle. Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com> Link: https://patch.msgid.link/20260609122946.288103-1-rf@opensource.cirrus.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--include/sound/cs35l56.h2
-rw-r--r--sound/soc/codecs/cs35l56.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/include/sound/cs35l56.h b/include/sound/cs35l56.h
index c3b10587cb4c..2490b72c0a7a 100644
--- a/include/sound/cs35l56.h
+++ b/include/sound/cs35l56.h
@@ -286,6 +286,8 @@ struct snd_ctl_elem_value;
#define CS35L56_MBOX_TIMEOUT_US 5000
#define CS35L56_MBOX_POLL_US 250
+#define CS35L56_FW_REQ_ACTIVE_TIMEOUT_MS 250
+
#define CS35L56_PS0_POLL_US 500
#define CS35L56_PS0_TIMEOUT_US 50000
#define CS35L56_PS3_POLL_US 500
diff --git a/sound/soc/codecs/cs35l56.c b/sound/soc/codecs/cs35l56.c
index b4b126753c10..0f78b1284eaa 100644
--- a/sound/soc/codecs/cs35l56.c
+++ b/sound/soc/codecs/cs35l56.c
@@ -2027,7 +2027,8 @@ int cs35l56_init(struct cs35l56_private *cs35l56)
if (cs35l56->base.init_done)
return 0;
- pm_runtime_set_autosuspend_delay(cs35l56->base.dev, 100);
+ pm_runtime_set_autosuspend_delay(cs35l56->base.dev,
+ CS35L56_FW_REQ_ACTIVE_TIMEOUT_MS + 50);
pm_runtime_use_autosuspend(cs35l56->base.dev);
pm_runtime_set_active(cs35l56->base.dev);
pm_runtime_enable(cs35l56->base.dev);